最近我开始玩张力板。首先,我只想做一个简单的可视化的损失函数超过几百步。为此,我想使用tf.contrib.summary
API。你知道吗
我的代码可以正常工作,只是有点麻烦——假设我想执行250个optimizer步骤,并且我想记录每个步骤的损失,所以,我会这样做(缺少一些代码块)。你知道吗
graph = tf.Graph()
sess = tf.Session(graph=graph)
with sess.graph.as_default():
... # lines that define the computation graph as well as input dataset and predictions
global_step = tf.train.create_global_step()
rmse = tf.math.sqrt(tf.losses.mean_squared_error(labels=Y, predictions=Y_PRED))
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(rmse, global_step=global_step)
# create summary writer, tensor for recording scalar and initialize everything
summary_writer = tf.contrib.summary.create_file_writer(args.logdir, flush_millis=10 * 1000)
summaries = {}
with summary_writer.as_default(), tf.contrib.summary.always_record_summaries():
summaries["train_rmse"] = tf.contrib.summary.scalar("train/RMSE", rmse)
sess.run(tf.global_variables_initializer())
with summary_writer.as_default():
tf.contrib.summary.initialize(session=sess, graph=graph)
for i in range(250):
train_X_batch, train_Y_batch = # ... retrieve batch of data from dataset
sess.run(optimizer, feed_dict={X : train_X_batch, Y : train_Y_batch})
sess.run(summaries["train_rmse"], {X: train_X, Y: train_Y})
但是当我这样做,然后在tensorboard中可视化结果时,我的train_rmse
只被记录了241次,而不是我使用tf.contrib.summary.always_record_summaries()
时的250次,对吗?(参见图片)。你知道吗
这个问题似乎与数据有关。当我在mnist数据集上尝试类似的事情,并尝试为相同数量的步数记录一些标量时,记录的步数大约是200。你知道吗
我试图在tensorflow文档中找到答案,但没有成功。我还检查了一些问题,比如没有足够的数据来支持250个步骤——这应该不是问题。你知道吗
还有一件事是,即使我使用record_summaries_every_n_global_steps(n)
调用,这种情况也会发生。例如,用n = 5
调用它只记录到第215步的步骤。你知道吗
谁能帮我一下吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐