gpt4 book ai didi

python - Tensorflow:InvalidArgumentError:您必须使用 dtype int32 为占位符张量 'yy' 提供一个值

转载 作者:行者123 更新时间:2023-11-28 17:13:15 24 4
gpt4 key购买 nike

import tensorflow as tf
y_hat = tf.constant(36, name='y_hat') # Define y_hat constant. Set to 36.
yy = tf.placeholder(tf.int32, shape=[])

loss = tf.Variable((yy - y_hat)**2, name='loss') # Create a variable for the loss

init = tf.global_variables_initializer()

with tf.Session() as session:
session.run(tf.global_variables_initializer(), feed_dict = {yy: 39})
print(session.run(loss, feed_dict={yy: 39}))

作为 Tensorflow 的新手,我很难理解如何在此框架中管理占位符。

如果我第一次运行上面的代码,它会返回 9(正确值)。但是如果我在同一个 jupyter session 中再次运行它,我会收到以下错误。就好像全局变量(在本例中为占位符)没有得到清理,尽管我使用“with”关闭 session

堆栈跟踪:

InvalidArgumentError: You must feed a value for placeholder tensor 'yy' with dtype int32
[[Node: yy = Placeholder[dtype=DT_INT32, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]
Caused by op 'yy', defined at:
File "/opt/conda/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/opt/conda/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)

知道发生了什么以及如何解决它吗?谢谢

最佳答案

import tensorflow as tf 正下方添加 tf.reset_default_graph() 行,这样每次运行代码时您的 tensorflow 图都会重置。那么你就不会得到这个错误。

顺便说一句,您实际上不需要将loss 指定为变量。你可以跑

import tensorflow as tf
y_hat = tf.constant(36, name='y_hat')
yy = tf.placeholder(tf.int32, shape=[])

loss = (yy - y_hat)**2

with tf.Session() as session:
print(session.run(loss, feed_dict={yy: 39}))

上面的代码打印出 9。

关于python - Tensorflow:InvalidArgumentError:您必须使用 dtype int32 为占位符张量 'yy' 提供一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46054918/

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