I've been working on the tutorial for Federated Learning for Image Classification, and while running the tutorial code on Google colab its giving me error while importing tensorflow_federated
Federated Learning for Image Classification
Code (getting error on line 4):
import collections
import numpy as np
import tensorflow as tf
import tensorflow_federated as tff
np.random.seed(0)
tff.federated_computation(lambda: 'Hello, World!')()
Error:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-35-a23308ec3f7c> in <module>()
3 import numpy as np
4 import tensorflow as tf
----> 5 import tensorflow_federated as tff
6
7 np.random.seed(0)
6 frames
/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/common_libs/structure.py in <module>()
263
264 def to_odict(struct: Struct,
--> 265 recursive: bool = False) -> collections.OrderedDict[str, Any]:
266 """Returns `struct` as an `OrderedDict`, if possible.
267
TypeError: 'type' object is not subscriptable
I've tried updating the python version to 3.9 (as mentioned in some of the fixes available) but it didn't work.
Solved:
I followed this issue and installed the 0.20.0 version of tensorflow-federated which worked for me
!pip install --quiet tensorflow-federated==0.20.0
#!pip install --quiet --upgrade tensorflow-federated
!pip install --quiet --upgrade nest-asyncio
import nest_asyncio
nest_asyncio.apply()
Related
I'm working in colab notebook, and the importing of tff (import tensorflow_federated as tff) was working for months, but suddenly, now when I try to import tff as usual I faced this problem..
!pip install --quiet --upgrade tensorflow-federated
!pip install --quiet --upgrade tensorflow-model-optimization
!pip install --quiet --upgrade nest-asyncio
import nest_asyncio
nest_asyncio.apply()
import numpy as np
import tensorflow as tf
import tensorflow_federated as tff
from tensorflow_model_optimization.python.core.internal import tensor_encoding as te
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-7-c8d605e9ca2e> in <module>()
2 import numpy as np
3 import tensorflow as tf
----> 4 import tensorflow_federated as tff
5
6 from tensorflow_model_optimization.python.core.internal import tensor_encoding as te
7 frames
/usr/local/lib/python3.7/dist-packages/tensorflow_federated/python/common_libs/structure.py in <module>()
263
264 def to_odict(struct: Struct,
--> 265 recursive: bool = False) -> collections.OrderedDict[str, Any]:
266 """Returns `struct` as an `OrderedDict`, if possible.
267
TypeError: 'type' object is not subscriptable
Even when I run it in the colab tutorial itself! in this link https://colab.research.google.com/github/tensorflow/federated/blob/master/docs/tutorials/federated_learning_for_image_classification.ipynb I have the same issue!
Appreciate any idea or suggestions!
The latest tensorflow_federated package need the Python version update to 3.9, hope this will help you.
I struggled the same with Google Colab since the default Google Colab is in Python 3.7. Here's what I did to make Google Colab upgrade to Python 3.9
!wget -O mini.sh https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
!chmod +x mini.sh
!bash ./mini.sh -b -f -p /usr/local
!conda install -q -y jupyter
!conda install -q -y google-colab -c conda-forge
!python -m ipykernel install --name "py39" --user
Hope this helps you to move on as I did!
I can't access tensorflow or pytorch from Jupyter notebook or lab. My OS is macOS big sur . I installed python#3.8 using homebrew. If I try to run this:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
print(tf.__version__)
simple code on Jupyter notebook , it is showing this output:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-3c075791d0d7> in <module>
1 # TensorFlow and tf.keras
----> 2 import tensorflow as tf
3
4 # Helper libraries
5 import numpy as np
ModuleNotFoundError: No module named 'tensorflow'
I created separate virtual environment and install tensorflow on it. But I installed jupyter notebook & lab outside virtual environment. Is there anyway to access tensorflow & pytorch from jupyter notebook or lab without using Anaconda?
Below the code
import numpy as np
np.random.seed(0)
from sklearn import datasets
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format ='retina'
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
below the Error message
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
~\Anaconda3\lib\site-packages\keras\__init__.py in <module>
2 try:
----> 3 from tensorflow.keras.layers.experimental.preprocessing import RandomRotation
4 except ImportError:
ModuleNotFoundError: No module named 'tensorflow.keras.layers.experimental.preprocessing'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
<ipython-input-5-943507dd87a6> in <module>
6 get_ipython().run_line_magic('config', "InlineBackend.figure_format ='retina'")
7
----> 8 from keras.models import Sequential
9 from keras.layers import Dense
10 from keras.optimizers import SGD
~\Anaconda3\lib\site-packages\keras\__init__.py in <module>
4 except ImportError:
5 raise ImportError(
----> 6 'Keras requires TensorFlow 2.2 or higher. '
7 'Install TensorFlow via `pip install tensorflow`')
8
ImportError: Keras requires TensorFlow 2.2 or higher. Install TensorFlow via `pip install tensorflow
Note:` I think, the main problem is Tensorflow version. I used somes command and that's are bellow,
conda create -n tf tensorflow
conda activate tf
and I also used the below command
conda create -n tf-gpu tensorflow-gpu
conda activate tf-gpu
But it don't works , Please help for solve the error.
you need to update the version of your TensorFlow. For me, 2.2.0 solved the problem. I also checked with the higher versions and worked ok.
pip install tensorflow==2.2.0
or
pip install tensorflow-gpu==2.2.0
You need update TensorFlow. You can try with
pip install tensorflow==2.0.0
or, if you use gpu version
pip install tensorflow-gpu==2.0.0
If doesn't solve your issue, you can also try with 2.2.0 version.
For more details, in this issue follow this answer
I would like to add model analysis to my model but was unable to import the libraries:
I am using datalab environment.
import tensorflow as tf
!pip install tensorflow_model_analysis
import tensorflow_model_analysis as tfma
The error is:
ImportErrorTraceback (most recent call last)
<ipython-input-6-f85e4d8fbd99> in <module>()
----> 1 import tensorflow_model_analysis as tfma
/usr/local/envs/py2env/lib/python2.7/site-packages/tensorflow_model_analysis/__init__.py in <module>()
15
16
---> 17 from tensorflow_model_analysis import view
18 from tensorflow_model_analysis.api import tfma_unit as test
19 from tensorflow_model_analysis.api.model_eval_lib import * # pylint: disable=wildcard-import
ImportError: cannot import name view
Please advice what will be the right way to import the library.
Thanks,
eilalan
Working for me now with the following installation:
python 2.7 - to support apache beam
pip install pip==9.0.3 # I am not sure what is the reason, but essential for apache beam pipelines execution
pip install --upgrade tensorflow
pip install tensorflow-model-analysis
import tensorflow_model_analysis as tfma
I'm running the official TF docker repo using the Jupyter UI on localhost. It seems that TF is working in general, as I am able to import it, but when trying to import the distributions module I get an error:
print tf.__version__
import tf.distributions as dist
1.8.0
ImportErrorTraceback (most recent call last)
<ipython-input-3-4d440943cb46> in <module>()
1 print tf.__version__
----> 2 import tf.distributions as dist
ImportError: No module named tf.distributions
Try this
import tensorflow as tf
from tensorflow import distributions as dist
I don't think you can use import aliases for other import statements in python. I'm not too sure about this, but I think that's the problem.
FYI, I tested this on Python 3.5.2 and Tensorflow 1.8.0