可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I've been trying to use tensorflow for two days now installing and reinstalling it over and over again in python2.7 and 3.4. No matter what I do, I get this error message when trying to use tensorflow.placeholder()
It's very boilerplate code:
tf_in = tf.placeholder("float", [None, A]) # Features
No matter what I do I always get the trace back:
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'
Anyone know how I can fix this?
回答1:
It happened to me too. I had tensorflow and it was working pretty well, but when I install tensorflow-gpu along side the previous tensorflow this error arose then I did these 3 steps and it started working with no problem:
- I removed tensorflow-gpu, tensorflow, tensorflow-base packages from Anaconda. Using.
conda remove tensorflow-gpu tensorflow tensorflow-base
- re-installed tensorflow. Using
conda install tensorflow
回答2:
If you have this error after an upgrade to TensorFlow 2.0, you can still use 1.X API by replacing:
import tensorflow as tf
by
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
回答3:
Solution: Do not use "tensorflow" as your filename.
Notice that you use tensorflow.py as your filename. And I guess you write code like:
import tensorflow as tf
Then you are actually importing the script file "tensorflow.py" that is under your current working directory, rather than the "real" tensorflow module from Google.
Here is the order in which a module will be searched when importing:
The directory containing the input script (or the current directory when no file is specified).
PYTHONPATH (a list of directory names,
with the same syntax as the shell variable PATH).
The installation-dependent default.
回答4:
It appears that .placeholder() , .reset_default_graph() , and others were removed with version 2. I ran into this issue using Docker image: tensorflow/tensorflow:latest-gpu-py3
which automatically pulls the latest version. I was working in 1.13.1 and was 'upgraded to 2' automatically and started getting the error messages. I fixed this by being more specific with my image: tensorflow/tensorflow:1.13.1-gpu-py3
.
More info can be found here: https://www.tensorflow.org/alpha/guide/effective_tf2
回答5:
I also got the same error. May be because of the version of tensorflow.
After installing tensorflow 1.4.0, I got relief from the error.
pip install tensorflow==1.4.0
回答6:
Faced same issue on Ubuntu 16LTS when tensor flow was installed over existing python installation.
Workaround:
1.)Uninstall tensorflow from pip and pip3
sudo pip uninstall tensorflow
sudo pip3 uninstall tensorflow
2.)Uninstall python & python3
sudo apt-get remove python-dev python3-dev python-pip python3-pip
3.)Install only a single version of python(I used python 3)
sudo apt-get install python3-dev python3-pip
4.)Install tensorflow to python3
sudo pip3 install --upgrade pip
for non GPU tensorflow, run this command
sudo pip3 install --upgrade tensorflow
for GPU tensorflow, run below command
sudo pip3 install --upgrade tensorflow-gpu
Suggest not to install GPU and vanilla version of tensorflow
回答7:
If you are using TensorFlow 2.0, then some code developed for tf 1.x may code work. Either you can follow the link : https://www.tensorflow.org/guide/migrate
or you can install a previous version of tf by
pip3 install tensorflow==version
回答8:
run the tensorflow as tf
tf.disable_v2_behavior()
use once tf.disable_v2_behavior()
after that below error not come again.
AttributeError: 'module' object has no attribute 'placeholder'
回答9:
Import the old version of tensorflow instead of the new version
[https://inneka.com/ml/tf/tensorflow-module-object-has-no-attribute-placeholder/][1]
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
回答10:
Because you cant use placeholder in tensflow2.0version, so you need to use tensflow1*, or you need to change your code to fix tensflow2.0
回答11:
I had the same problem before after tried to upgrade tensorflow, I solved it by reinstalling Tensorflow and Keras.
pip uninstall tensorflow
pip uninstall keras
Then:
pip install tensorflow
pip install keras
回答12:
If you get this on tensorflow 2.0.0+, it's very likely because the code isn't compatible with the newer version of tensorflow.
To fix this, run the tf_upgrade_v2
script.
tf_upgrade_v2 --infile=YOUR_SCRIPT.py --outfile=YOUR_SCRIPT.py
回答13:
Recent version 2.0 does not support placeholder.
I uninstalled 2.0 using command: conda remove tensorflow
.
then I installed 1.15.0 using command: conda install -c conda-forge tensorflow=1.15.0
.
1.15 is latest in version 1 series. You can change as per you wish and requirement.
For seeing all version, use command: conda search tensorflow
.
It worked for Anaconda3 in Windows.
回答14:
The problem is with TensorFlow version; the one you are running is 2.0
or something above 1.5
, while placeholder
can only work with 1.4
.
So simply uninstall TensorFlow, then install it again with version 1.4 and everything will work.
回答15:
It may be the typo if you incorrectly wrote the placeholder
word.
In my case I misspelled it as placehoder
and got the error like this:
AttributeError: 'module' object has no attribute 'placehoder'