tensorflow - tensorflow 1x 为什么将会话运行优化器保存为变量?
问题描述
我正在从 DataCamp 教程中学习 tensorflow,在最后的训练阶段,我在下面有这段代码。我的问题是线
opt = sess.run(优化器,feed_dict={x:batch_x,y:batch_y})
为什么我们将 sess.run(optimizer, ...) 保存为变量?变量“opt”不再在任何地方使用......关于 tensorflow 的优化器如何在后台工作的一些解释将非常感谢!
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()
解决方案
推荐阅读
- .htaccess - .htaccess 如何重定向除主页和子目录以外的域
- arrays - 'Array => [...]' 符号是什么意思
- ios - 单击下拉菜单时如何调整tableView的高度?
- javascript - 覆盖函数参数值是一种好习惯吗?
- r - 将字符转换为日期
- python-3.x - 使用 psycopg2 将 python 字典更新为 postgres db 表
- javascript - 如何在html表中选择一行乘以2列并在第三列中显示结果
- django - Django编辑视图不显示
- python - 如何在 SQLAlchemy ORM 中查询多对多关系?
- spring - 当 userRepository 尝试在数据库中保存新用户时,我的验证器失败