tensorflow 1x为什么将会话运行优化器保存为变量?
我正在从DataCamp教程学习tensorflow,在最后的培训阶段,我有以下代码。我的问题是台词 opt=sess.run(优化器,feed_dict={x:batch_x,y:batch_y}) 为什么我们要将sess.run(优化器,…)保存为变量?变量“opt”不会在任何地方再次使用。。。关于tensorflow优化器如何在引擎盖下工作的一些解释将非常棒,谢谢tensorflow 1x为什么将会话运行优化器保存为变量?,tensorflow,optimization,Tensorflow,Optimization,我正在从DataCamp教程学习tensorflow,在最后的培训阶段,我有以下代码。我的问题是台词 opt=sess.run(优化器,feed_dict={x:batch_x,y:batch_y}) 为什么我们要将sess.run(优化器,…)保存为变量?变量“opt”不会在任何地方再次使用。。。关于tensorflow优化器如何在引擎盖下工作的一些解释将非常棒,谢谢 cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(l
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)
training_iters = 20
saver = tf.train.Saver()
# tf.reset_default_graph()
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
train_loss = []
test_loss = []
train_accuracy = []
test_accuracy = []
summary_writer = tf.summary.FileWriter('./Output', sess.graph)
for i in range(training_iters):
for batch in range(len(train_X)//batch_size):
batch_x = train_X[batch*batch_size:min((batch+1)*batch_size,len(train_X))]
batch_y = train_y[batch*batch_size:min((batch+1)*batch_size,len(train_y))]
opt = sess.run(optimizer, feed_dict={x: batch_x, y: batch_y})
# print(type(opt)) # class 'NoneType'
loss, acc = sess.run([cost, accuracy], feed_dict={x: batch_x, y: batch_y})
print("Iter " + str(i) + \
", Loss= " + "{:.6f}".format(loss) + \
", Training Accuracy= " + "{:.5f}".format(acc)) # prints the loss and training accuracy after each epoch
print("Optimization Finished!")
# Calculate accuracy for all 10000 mnist test images
test_acc, valid_loss = sess.run([accuracy,cost], feed_dict={x: val_X, y: val_y})
train_loss.append(loss)
test_loss.append(valid_loss)
train_accuracy.append(acc)
test_accuracy.append(test_acc)
print("Testing Accuracy:","{:.5f}".format(test_acc))
saved_path = saver.save(sess, './my-model', global_step=training_iters)
summary_writer.close()