module 'tensorflow' has no attribute 'constant' - python

I previously had tensorflow with gpu support installed and working. I tried to install keras afterwhich nothing would work anymore. I have since uninstalled keras and tensorflow.
I tried re-installing tensorfow with gpu support (now version 1.9) following the instructions on the tensorflow webpage https://www.tensorflow.org/install/install_linux (I am running ubuntu 18 by the way). I tried running the code
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
and I get the error
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
Traceback (most recent call last):
File "<ipython-input-2-25b92e4d5dec>", line 2, in <module>
hello = tf.constant('Hello, TensorFlow!')
AttributeError: module 'tensorflow' has no attribute 'constant'
I tried looking at other threads and there was a suggestion to capitalize the C in 'constant' but that didnt work either.
Any suggestions would be great!
Thanks

Your installation is corrupted, doing the following should enable you to be back on track.
Could you try the following:
pip install virtualenv
virtualenv venv
## Linux:
source venv/bin/activate
## Windows:
venv\Scripts\activate.bat
pip install tensorflow-gpu==1.9.0
python temp.py
If this works without any problem. Your python installation is corrupted, I recommend you to manually delete everything in your python librairies.
Maybe this will help:
Open a new terminal
pip uninstall tensorflow -y
pip uninstall tensorflow-gpu -y
pip uninstall tensorboard -y
pip install --upgrade tensorflow-gpu==1.9.0 -y
If you already use a virtualenv, just delete the folder and recreate it.

I had same issue and I mistakenly named my file as tensorflow.py. Same issue would occur if folder name is tensorflow.
I just renamed file with something else and it resolve the issue.

Follow these steps:
Create new virtualenv
How to create virtuealenv (https://linuxhostsupport.com/blog/how-to-install-virtual-environment-on-ubuntu-16-04/)
pip3 install requests
pip3 install -q -U tensor2tensor
pip3 install tensorflow
For some reason the dependencies of the tensorflow remain in the system, so creating from scratch can solve the problem.

just do different "tensorflow.py" very important

Related

Tensorflow and Keras Installation Problems JupyterLab / Anaconda (Debian)

I've been trying to install keras and tensorflow for Jupyter-lab (python).
I first tried with pip, but the notebook stopped functioning everytime I imported keras.
After some research on different feeds, I decided to uninstall it with pip and try to reinstall it with anaconda3.
Then, there was a path issue installing tensorflow with the conda command. So I researched more and wrote this in the terminal :
export PATH="/home/myname/anaconda3/bin:$PATH"
I created another environment and could install tensorflow with (same for keras) :
conda activate myenv
conda install tensorflow
I came back on the local JupyterLab and imported keras. But it couldn't find the module named keras. I tried again with pip :
!pip install keras
import keras
And got the same :
Requirement already satisfied: keras in /home/myname/.conda/envs/myenv/lib/python3.9/site-packages (2.9.0)
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Input In [6], in <cell line: 10>()
---> 10 import keras
ModuleNotFoundError: No module named 'keras'
Is it a path problem ? How can I solve it ? I don't understand how it can find it, but not import it correctly.
Thank you for your help !
After creating the virtual environment(myenv) in conda, open a new jupyter notebook in the same environment and you need to install TensorFlow in that environmnet using the below code:
!pip install tensorflow
import tensorflow as tf
tf.__version__
Now you can access the Keras from TensorFlow as below:
from tensorflow import keras
keras.__version__

Installing Tensorflow in M1 Mac

I followed this tutorial, https://www.youtube.com/watch?v=ykCY_tJbhNw to install tensorflow in a mac (M1 processor). However when I import tensrflow I get the following error. Any ideas what it might be?
The steps include,
installing brew (was alreadyy installed)
install conda (was already installed)
installing miniforge
download tensorflow-macos from github page
conda activate mlEnv
/Users/imantha/Software/tensorflow_macos/install_venv.sh -p
When prompted to input the path : /Users/imantha/Software/anaconda3/envs/mlEnv/
and select yes to install tensorflow
tensorflow was successfully installed and when typed conda list, the package is listed.
However when I start python session in the shell and type import tensorflow as tf, I get the following error
Traceback (most recent call last):
File "/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module>
from tensorflow.python._pywrap_tensorflow_internal import *
ImportError: dlopen(/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): no suitable image found. Did find:
/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong architecture
/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong architecture
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/__init__.py", line 41, in <module>
from tensorflow.python.tools import module_util as _module_util
File "/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/__init__.py", line 39, in <module>
from tensorflow.python import pywrap_tensorflow as _pywrap_tensorflow
File "/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/pywrap_tensorflow.py", line 83, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/pywrap_tensorflow.py", line 64, in <module>
from tensorflow.python._pywrap_tensorflow_internal import *
ImportError:
dlopen(/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/_pywrap_tensorflow_internal.so, 6): no suitable image
found. Did find:
/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong
architecture
/Users/imantha/Software/anaconda3/envs/mlEnv/lib/python3.8/site-
packages/tensorflow/python/_pywrap_tensorflow_internal.so: mach-o, but wrong
architecture
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/errors
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
There are quite a few things to do in order to install TensorFlow on the Macbook M1 chip:
First, install Python 3.8.9 (I have tried on this version, not sure about any other versions)
Go to your project dir
install hdf5 by running brew install hdf5 if you do not have brew, you can download it here: https://brew.sh/
Above hdf5 install will spit out its location: use it and run:
export HDF5_DIR=<hdf5_location> for version 1.13.0 (my case) the following:
export HDF5_DIR=/opt/homebrew/Cellar/hdf5/1.13.0
create a virtual environment using virtualenv venv (choose whatever method for creating virtual environment or do not create virtual environment, it's fine. To install virtualenv, run pip3 install virtualenv)
(Skip this if not using virtual environment) Activate virtual environment by running: source venv/bin/activate
Now, we have everything require to install Tensorflow on mac with M1 chip including GPU version
To install Tensorflow and related libs, run following:
(If using virtual env, run following)
venv/bin/pip install --no-binary=h5py h5py
venv/bin/pip install tensorflow-macos
venv/bin/pip install tensorflow-metal
Not using virtual env, run following:
pip3 install --no-binary=h5py h5py
pip3 install tensorflow-macos
pip3 install tensorflow-metal
Now, your TensorFlow installation has been completed!
Try it out:
import tensorflow as tf
print("TF version:", tf.__version__)
print("Number GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
print("Number CPUs Available: ", len(tf.config.experimental.list_physical_devices('CPU')))
Build Tensorflow from source by following the instructions mentioned here.
See this comment.
OR,
Try the workaround mentioned here.
The below way is the simplest and efficient way from which we can install tensorflow in Mac M1
NOTE: Mac M1 has ARM64 arch not X86_64 so we need to be very careful while downloading packages. Anaconda is available for Mac M1 users : https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-arm64.sh
Following are the steps to victory:
Download Anaconda from above link
create virtual env ( Optional )
pip install tensorflow-macos
Thats it!
Reference video link which may be useful : https://www.youtube.com/watch?v=5DgWvU0p2bk
If you want to use an Anaconda distribution, you might want to consider Miniconda3. Currently, I'm not sure whether it's possible to install TensorFlow using Anaconda.
Download Miniconda3 using this link. Both the .bash and the .pkg files should do - choose one of them. However, for M1, only the .bash file seem to have worked, while for M2 both worked.
If you used the .bash file above, then do the following to start the installation:
chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
Create a conda environment with Python 3.9: conda create -n tf_env python=3.9 (latest Python version didn't work as I'm writing this).
Install TensorFlow and dependencies:
conda install -c apple tensorflow-deps
python -m pip install tensorflow-macos
python -m pip install tensorflow-metal
At this point, you should make sure that the Numpy version is up to date to not run into errors when importing TensorFlow. I used version 1.23.3. python -m pip install numpy --upgrade.
Install jupyter notebook using conda install notebook.
If everything has been installed without errors, running the following code in a jupyter notebook should correctly import TensorFlow and print out the version as well as verifying the presence of a GPU.
import tensorflow as tf
gpu = len(tf.config.list_physical_devices('GPU')) > 0
print(f"TensorFlow Version: {tf.__version__}")
print("GPU is", "available" if gpu else "NOT available")

ModuleNotFoundError: No module named 'torch'

I try to use pytorch module by conda but I get an error
Traceback (most recent call last):
File "train.py", line 8, in <module>
import torch
ModuleNotFoundError: No module named 'torch'
when I write conda list | findstr torch I see that torch is installed:
What is the problem?
I tried:
conda update conda -n root
conda install mkl=2018
but get:
Collecting package metadata (current_repodata.json): done
Solving environment: done
# All requested packages already installed.
Could Not Find C:\WINDOWS\TEMP\conda-23721-26470.tmp
Could Not Find C:\WINDOWS\TEMP\tmpry_dlvar.bat
and the same error occurrence
Try the below mentioned one, surely it will work.
conda install -c pytorch pytorch
This worked for me
conda install pytorch torchvision -c pytorch
Try to run the following on the local environment as given in the pytorch website during installation. Open Jupyter Notebook locally and run the following
from __future__ import print_function
import torch
x = torch.rand(5, 3)
print(x)
if this works then most likely the environment variable is not set properly.
I hope this helps.

Import error on Windows10 with pytorch0.4

Discription
I am trying to install pytorch 0.4 on Windows10.
My enviroment settings:
- Windows10
- cuda9.0
- python 3.6
- pytorch 0.4
- anaconda
I tried by using both conda install -n myenv and pip install $path:whl and both failed.
Error
>>> import torch
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Anaconda\envs\py3.6_pytorch0.4\lib\site-packages\torch\__init__.py", line 80, in <module>
from torch._C import *
ImportError: DLL load failed:
I found the related a issue #4518 under pytorch but answers under that issue do not work for me.
What I have tried
add all conda related path to environment path
change the directory (cd)
install vs_runtime under this conda env
None of those works.
But if I install pytorch under conda's base environment, it works well.
So what's going on here?
Update:
When we tried to install pytorch on windows, a lot of packages need to be installed at the same time. We can simply follow the steps on official website [link](https://pytorch.org/),for python 3.6 and cuda9.0 the installation command is as
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
If we want to install former version of pytorch, we can assign the version, eg. 0.4 as
conda install pytorch=0.4 torchvision cudatoolkit=9.0 -c pytorch
After you create the new environment with conda, execute conda install -c pytorch pytorch to install pytorch.
pip does not work that well with external, non-Python dependencies. Not unlikely in your case path to the DLL is not set correctly (just a guess).

TensorFlow, "'module' object has no attribute 'placeholder'"

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?
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()
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.
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
Instead of tf.placeholder(shape=[None, 2], dtype=tf.float32) use something like
tf.compat.v1.placeholder(shape=[None, 2], dtype=tf.float32) if you don't want to disable v2 completely.
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
works.
I am using Python 3.7 and tensorflow 2.0.
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
Avoid using the below striked out statement in tensorflow=2.0
i̶m̶p̶o̶r̶t̶ ̶t̶e̶n̶s̶o̶r̶f̶l̶o̶w̶ ̶a̶s̶ ̶t̶f̶ ̶x̶ ̶=̶ ̶t̶f̶.̶p̶l̶a̶c̶e̶h̶o̶l̶d̶e̶r̶(̶s̶h̶a̶p̶e̶=̶[̶N̶o̶n̶e̶,̶ ̶2̶]̶,̶ ̶d̶t̶y̶p̶e̶=̶t̶f̶.̶f̶l̶o̶a̶t̶3̶2̶)̶
You can disable the v2 behavior by using the following code
This one is perfectly working for me.
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
x = tf.placeholder(shape=[None, 2], dtype=tf.float32)
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
If you are using TensorFlow 2.0, then some code developed for tf 1.x may not 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
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()
You need to use the keras model with tensorflow 2, as here
import tensorflow as tf
from tensorflow.python.keras.layers import Input, Embedding, Dot, Reshape, Dense
from tensorflow.python.keras.models import Model
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.
Try this:
pip install tensorflow==1.14
or this (if you have GPU):
pip install tensorflow-gpu==1.14
Please take a look at the Migrate your TensorFlow 1 code to TensorFlow 2.
These codes:
import tensorflow as tf
tf_in = tf.placeholder("float", [None, A]) # Features
need to be migrated in TensorFlow 2 as below:
import tensorflow as tf
import tensorflow.compat.v1 as v1
tf_in = vi.placeholder("float", [None, A]) # Features
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
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
The error shows up because we are using tensorflow version 2 and the command is from version 1. So if we use:
tf.compat.v1.summary.(method_name)
It'll work
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
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
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.
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'

Categories

Resources