我能够在三周前运行python程序,但现在每次尝试运行它时,都会出现以下错误:
AttributeError: module 'tensorflow' has no attribute 'placeholder'
我已经安装了tensorflow(版本'2.0.0-alpha0')。 我已经阅读了几个与此问题相关的帖子。他们说我应该卸载tensorflow并重新安装一次。问题是我正在群集计算机上运行此程序,而我没有sudo权限。
有什么主意吗?预先感谢!
答案 0 :(得分:1)
除了@Vishnuvardhan Janapati的答案,您不仅可以将文件夹更新,还可以将文件更新到TensorFlow的版本2。 TensorFlow 1.13和更高版本自动包含升级工具tf_upgrade_v2
。
tf_upgrade_v2 [-h] [--infile INPUT_FILE] [--outfile OUTPUT_FILE]
[--intree INPUT_TREE] [--outtree OUTPUT_TREE]
[--copyotherfiles COPY_OTHER_FILES] [--inplace]
[--reportfile REPORT_FILENAME] [--mode {DEFAULT,SAFETY}]
[--print_all]
有关转换如何修复“占位符”错误的说明:
注意:这可以解决类似的投诉module 'tensorflow' has no attribute 'xxxxx'
(而不仅仅是“占位符”)。
答案 1 :(得分:0)
在Tensorflow 2.0中,没有占位符。您需要将TF1.x代码更新为TF2.0代码,然后在群集上运行它。请查看official doc,将您的TF1.x代码转换为TF2.0。
在TF1.x代码中,您可以使用占位符,常量,变量构建张量流图(静态图)。然后,使用tf.session()命令在会话中运行代码。在该会话期间,您需要提供占位符的值并执行静态图。
在TF2.0中,输入命令时模型会急切运行。这是更pythonic的。检查有关TF 2.0 here的更多详细信息。谢谢!
答案 2 :(得分:0)
改变图书馆对我有用
`#libraries
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()`
如果这不起作用,则可能需要再次安装tensorflow。
我希望对您有帮助
答案 3 :(得分:0)
在包含tensorflow compat v1库之后:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()`
使用v1语法,如下所示:
X = tf.compat.v1.placeholder(dtype="float",shape=[None, n_H0, n_W0, n_C0])
Y = tf.compat.v1.placeholder(dtype="float",shape=[None, n_y])
答案 4 :(得分:0)
不需要调用disable_v2_behavior()
函数
正好
import tensorflow as tf
tf.compat.v1.placeholder()