为什么会出现AttributeError:模块'tensorflow'没有属性'placeholder'?

时间:2019-05-20 18:24:40

标签: ubuntu tensorflow

我能够在三周前运行python程序,但现在每次尝试运行它时,都会出现以下错误:

AttributeError: module 'tensorflow' has no attribute 'placeholder'

我已经安装了tensorflow(版本'2.0.0-alpha0')。 我已经阅读了几个与此问题相关的帖子。他们说我应该卸载tensorflow并重新安装一次。问题是我正在群集计算机上运行此程序,而我没有sudo权限。

有什么主意吗?预先感谢!

5 个答案:

答案 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]

有关转换如何修复“占位符”错误的说明:

enter image description here

注意:这可以解决类似的投诉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()