我一直在尝试使用tensorflow两天,现在在python2.7和3.4中反复安装和重新安装它。无论我做什么,我在尝试使用tensorflow.placeholder()
时都会收到此错误消息这是非常的样板代码:
tf_in = tf.placeholder("float", [None, A]) # Features
无论我做什么,我总会得到回溯:
Traceback (most recent call last):
File "/home/willim/PycharmProjects/tensorflow/tensorflow.py", line 2, in <module>
import tensorflow as tf
File "/home/willim/PycharmProjects/tensorflow/tensorflow.py", line 53, in <module>
tf_in = tf.placeholder("float", [None, A]) # Features
AttributeError: 'module' object has no attribute 'placeholder'
任何人都知道如何解决这个问题?
答案 0 :(得分:36)
解决方案:不要使用&#34; tensorflow&#34;作为你的文件名。
请注意,您使用tensorflow.py作为文件名。我猜你写的代码如下:
import tensorflow as tf
然后你实际上导入了脚本文件&#34; tensorflow.py&#34;这是在你当前的工作目录下,而不是&#34;真正的&#34;来自Google的tensorflow模块。
以下是导入时搜索模块的顺序:
包含输入脚本的目录(或未指定文件时的当前目录)。
PYTHONPATH(目录名列表, 使用与shell变量PATH相同的语法。
- 醇>
依赖于安装的默认值。
答案 1 :(得分:8)
代替tf.placeholder(shape=[None, 2], dtype=tf.float32)
使用类似
tf.compat.v1.placeholder(shape=[None, 2], dtype=tf.float32)
,如果您不想完全禁用v2。
答案 2 :(得分:7)
它也发生在我身上。我有张量流,它工作得很好,但是当我安装tensorflow-gpu时,前面的张量流出现了这个错误,然后我做了这3个步骤,它开始没有问题:
答案 3 :(得分:7)
如果在升级到TensorFlow 2.0后出现此错误,您仍然可以通过替换以下内容来使用1.X API:
import tensorflow as tf
作者
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
答案 4 :(得分:4)
避免在tensorflow = 2.0中使用以下删除的语句
导入̶t̶e̶n̶s̶o̶r̶f̶l̶o̶w̶作为TF X̶=̶̶t̶f̶.̶p̶l̶a̶c̶e̶h̶o̶l̶d̶e̶r̶(形状=̶[NONE,̶2]̶,̶DTYPE =̶t̶f̶.̶f̶l̶o̶a̶t̶3̶2̶)̶
您可以使用以下代码禁用v2行为
这个对我来说很完美。
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
x = tf.placeholder(shape=[None, 2], dtype=tf.float32)
答案 5 :(得分:2)
似乎在版本2中删除了.placeholder(),.reset_default_graph()和其他版本。我使用Docker映像:tensorflow/tensorflow:latest-gpu-py3
遇到了此问题,该映像会自动拉出最新版本。我在1.13.1中工作,并自动“升级到2”并开始收到错误消息。我通过更具体的图像来解决此问题:tensorflow/tensorflow:1.13.1-gpu-py3
。
更多信息可以在这里找到:https://www.tensorflow.org/alpha/guide/effective_tf2
答案 6 :(得分:2)
我也遇到了同样的错误。可能是由于tensorflow的版本。 安装tensorflow 1.4.0后,我从错误中得到了缓解。
pip install tensorflow==1.4.0
答案 7 :(得分:2)
出现错误是因为我们正在使用tensorflow版本2并且命令来自版本1。因此,如果我们使用:
tf.compat.v1.summary.(method_name)
可以使用
答案 8 :(得分:2)
您需要在tensorflow 2上使用keras模型,如此处
import tensorflow as tf
from tensorflow.python.keras.layers import Input, Embedding, Dot, Reshape, Dense
from tensorflow.python.keras.models import Model
答案 9 :(得分:1)
run the tensorflow as tf
tf.disable_v2_behavior()
使用一次 tf.disable_v2_behavior() 之后,以下错误不再出现。
AttributeError: 'module' object has no attribute 'placeholder'
答案 10 :(得分:1)
请查看 Migrate your TensorFlow 1 code to TensorFlow 2。
这些代码:
import tensorflow as tf
tf_in = tf.placeholder("float", [None, A]) # Features
需要在 TensorFlow 2 中进行如下迁移:
import tensorflow as tf
import tensorflow.compat.v1 as v1
tf_in = vi.placeholder("float", [None, A]) # Features
答案 11 :(得分:1)
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
有效。 我正在使用Python 3.7和Tensorflow 2.0。
答案 12 :(得分:1)
在现有python安装上安装张量流时,在Ubuntu 16LTS上面临同样的问题。
解决方法: 1.)从pip和pip3卸载tensorflow sudo pip uninstall tensorflow sudo pip3卸载tensorflow
2.)卸载python&amp; python3 sudo apt-get remove python-dev python3-dev python-pip python3-pip
3.)只安装一个版本的python(我使用的是python 3) sudo apt-get install python3-dev python3-pip
4.)将tensorflow安装到python3 sudo pip3 install --upgrade pip
对于非GPU张量流,请运行此命令
sudo pip3 install --upgrade tensorflow
对于GPU张量流,请在命令下运行 sudo pip3 install --upgrade tensorflow-gpu
建议不要安装GPU和vesorflow的vanilla版本
答案 13 :(得分:0)
最新版本2.0不支持占位符。
我使用命令conda remove tensorflow
卸载了2.0。
然后我使用命令conda install -c conda-forge tensorflow=1.15.0
安装了1.15.0。
1.15是版本1系列中的最新版本。您可以根据自己的意愿和要求进行更改。
要查看所有版本,请使用命令:conda search tensorflow
。
它适用于Windows中的Anaconda3。
答案 14 :(得分:0)
导入旧版本的tensorflow而不是新版本
[https://inneka.com/ml/tf/tensorflow-module-object-has-no-attribute-placeholder/][1]
将tensorflow.compat.v1导入为tf tf.disable_v2_behavior()
答案 15 :(得分:0)
问题在于TensorFlow版本;您正在运行的是2.0
或高于1.5
的计算机,而placeholder
仅适用于1.4
。
因此,只需卸载TensorFlow,然后使用1.4版再次安装即可,一切正常。
答案 16 :(得分:0)
如果您在tensorflow 2.0.0+上获得了此,则很可能是因为代码与新版本的tensorflow不兼容。
要解决此问题,请运行tf_upgrade_v2
script。
tf_upgrade_v2 --infile=YOUR_SCRIPT.py --outfile=YOUR_SCRIPT.py
答案 17 :(得分:0)
在尝试升级tensorflow之后,我遇到了同样的问题,我通过重新安装Tensorflow和Keras解决了它。
pip uninstall tensorflow
pip uninstall keras
然后:
pip install tensorflow
pip install keras
答案 18 :(得分:0)
因为您不能在tensflow2.0版本中使用占位符,所以您需要使用tensflow1 *,或者需要更改代码以修复tensflow2.0
答案 19 :(得分:0)
如果您正在使用TensorFlow 2.0,则某些为tf 1.x开发的代码可能会起作用。您可以点击以下链接:https://www.tensorflow.org/guide/migrate
或者您可以通过以下方式安装tf的早期版本 pip3 install tensorflow ==版本
答案 20 :(得分:0)
尝试一下:
<<app_name>>.wsgi:application
或这个(如果您有GPU):
pip install tensorflow==1.14
答案 21 :(得分:0)
如果您错误地写了entity testbench1 is
-- Port ( );
end testbench1;
architecture Behavioral of testbench1 is
component register_file1 is
Port( clk : in STD_LOGIC;
reset : in STD_LOGIC;
w_en : in STD_LOGIC;
w_data : in STD_LOGIC_VECTOR (63 downto 0);
r_data1 : out STD_LOGIC_VECTOR (63 downto 0);
r_data2 : out STD_LOGIC_VECTOR (63 downto 0);
w_reg : in STD_LOGIC_VECTOR (4 downto 0);
r_reg1 : in STD_LOGIC_VECTOR (4 downto 0);
r_reg2 : in STD_LOGIC_VECTOR (4 downto 0);
r_data19 : out STD_LOGIC_VECTOR (63 downto 0);
r_data20 : out STD_LOGIC_VECTOR (63 downto 0);
r_data21 : out STD_LOGIC_VECTOR (63 downto 0);
r_data24 : out STD_LOGIC_VECTOR (63 downto 0));
end component;
signal clk : STD_LOGIC := '0';
signal reset : STD_LOGIC := '0';
signal w_en : STD_LOGIC := '0';
signal w_data : STD_LOGIC_VECTOR (63 downto 0) := x"ABCDEF0123456789";
signal r_data1 : STD_LOGIC_VECTOR (63 downto 0) := x"0000000000000000";
signal r_data2 : STD_LOGIC_VECTOR (63 downto 0) := x"0000000000000000";
signal w_reg : STD_LOGIC_VECTOR (4 downto 0) := "00000";
signal r_reg1 : STD_LOGIC_VECTOR (4 downto 0) := "00000";
signal r_reg2 : STD_LOGIC_VECTOR (4 downto 0) := "00000";
signal r_data19 : STD_LOGIC_VECTOR (63 downto 0);
signal r_data20 : STD_LOGIC_VECTOR (63 downto 0);
signal r_data21 : STD_LOGIC_VECTOR (63 downto 0);
signal r_data24 : STD_LOGIC_VECTOR (63 downto 0);
begin
uut: register_file1 PORT MAP (
clk => clk,
reset => reset,
w_en => w_en,
w_data => w_data,
r_data1 => r_data1,
r_data2 => r_data2,
w_reg => w_reg,
r_reg1 => r_reg1,
r_reg2 => r_reg2,
r_data19 => r_data19,
r_data20 => r_data20,
r_data21 => r_data21,
r_data24 => r_data24);
process
begin
wait for 10 ns;
clk <= not clk;
w_en <= '1';
w_data <= x"0000000000000800";
w_reg <= "11000";
wait for 10 ns;
clk <= not clk;
w_en <= '0';
wait for 10 ns;
clk <= not clk;
w_en <= '1';
w_data <= x"000000000000000A";
w_reg <= "10011";
wait for 10ns;
clk <= not clk;
w_en <= '0';
wait for 10ns;
clk <= not clk;
w_en <= '1';
w_data <= x"0000000000000005";
w_reg <= "10100";
wait for 10ns;
clk <= not clk;
wait for 10ns;
clk <= not clk;
w_en <= '0';
r_reg1 <= "10011";
r_reg2 <= "10100";
wait for 10ns;
clk <= not clk;
wait for 10ns;
clk <= not clk;
w_en <= '1';
w_data <= x"000000000000000F";
w_reg <= "10101";
wait for 10ns;
clk <= not clk;
wait for 10ns;
clk <= not clk;
w_en <= '0';
r_reg1 <= "10101";
r_reg2 <= "11000";
wait for 10ns;
wait;
end process;
end Behavioral;
一词,可能是错字。
在我的情况下,我将其拼写错误为placeholder
并收到如下错误:
placehoder