Error while importing 'tensorflow_federated' on Google Colab Tutorial - google-colaboratory

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

TypeError: 'type' object is not subscriptable when importing tensorflow_federated as tff

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!

Can't access Tensorflow & Pytorch from Jupyter notebook or Lab?

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?

No module named 'tensorflow.keras.layers.experimental.preprocessing'

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

ImportError: import tensorflow_model_analysis as tfma [ PYTHON on datalab]

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

Unable to import distributions module from Tensorflow (Dockerized)

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