gpt4 book ai didi

validation - 如何使用 tf.session.run() 进行测试(不更新网络参数)?

转载 作者:行者123 更新时间:2023-11-28 19:52:10 27 4
gpt4 key购买 nike

通常我使用 tf.session.run() 来训练我的网络,并使用 eval() 来获得测试准确性或损失。但我看到人们也使用 session.run() 来获取测试结果,这对我来说很奇怪。我认为 tf.session.run() 仅用于训练,而不是测试。

tf.session.run()下有什么我不知道的 secret 吗?

非常感谢!

最佳答案

tf.session.run() 旨在运行一个或多个 TF 操作,或评估 TF 张量,甚至可能是这两个类别的混合。

当在张量上调用时,它基本上会像 eval() 一样对其求值。您可以使用它进行训练,使用 sess.run(train_op, feed_dict=train_data),这将更新您的变量值,因为这就是 train_op 的作用。但是,如果您调用 sess.run(accuracy, feed_dict=data),当输入值为 给出的值时,它将计算 accuracy 张量的值data,无论这是训练数据、验证数据还是测试数据,它都不会更改变量值,因为您只是在评估张量,而不是运行更改变量值的操作。

所以 tf.session.run() 确实比您想象的要广泛得多,它是运行推理或评估性能的常用方法,即使在测试时也是如此!

您甚至可以一次做多件事,这避免了对同一个输入多次执行正向传递:

_, loss_value, accuracy_value = sess.run([train_op, loss_tensor, accuracy_tensor], feed_dict=data)
print('Loss value: %f' % loss_value)

关于validation - 如何使用 tf.session.run() 进行测试(不更新网络参数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com