Reputation: 3296
I'm trying to create a neural network with keras and tensorflow. It inplements a Sequential model that creates some issues with some dependant libraries.
! python -m pip install tensorflow.contrib
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.constraints import maxnorm
from tensorflow.python.compiler.tensorrt import trt_convert as trt
def create_model(input_dim, output_dim):
print(output_dim)
# create model
model = Sequential()
# input layer
model.add(Dense(100, input_dim=input_dim, activation='relu', kernel_constraint=maxnorm(3)))
model.add(Dropout(0.2))
# hidden layer
model.add(Dense(60, activation='relu', kernel_constraint=maxnorm(3)))
model.add(Dropout(0.2))
# output layer
model.add(Dense(output_dim, activation='softmax'))
# Compile model
model.compile(loss='categorical_crossentropy', loss_weights=None, optimizer='adam', metrics=['accuracy'])
#model.compile(loss=focal_loss(alpha=1), loss_weights=None, optimizer='nadam', metrics=['accuracy'])
return model
But it returns:
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-64-26ffb3a98319> in <module>
----> 1 from keras.models import Sequential
2 from keras.layers import Dense, Dropout
3 from keras.constraints import maxnorm
4 from tensorflow.python.compiler.tensorrt import trt_convert as trt
5
C:\ProgramData\Anaconda3\lib\site-packages\keras\__init__.py in <module>
2
3 from . import utils
----> 4 from . import activations
5 from . import applications
6 from . import backend
C:\ProgramData\Anaconda3\lib\site-packages\keras\activations.py in <module>
4 from . import backend as K
5 from .utils.generic_utils import deserialize_keras_object
----> 6 from .engine import Layer
7
8
C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\__init__.py in <module>
6 from .topology import Layer
7 from .topology import get_source_inputs
----> 8 from .training import Model
C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py in <module>
23 from .. import metrics as metrics_module
24 from ..utils.generic_utils import Progbar
---> 25 from .. import callbacks as cbks
26 from ..legacy import interfaces
27
C:\ProgramData\Anaconda3\lib\site-packages\keras\callbacks.py in <module>
24 if K.backend() == 'tensorflow':
25 import tensorflow as tf
---> 26 from tensorflow.contrib.tensorboard.plugins import projector
27
28
ModuleNotFoundError: No module named 'tensorflow.contrib'
Indeed, it seems that tf.contrib does not exist in tensorflow 2.0. What should I do? Should I download my version of tensorflow? I'm using jupyter's notebook in Anaconda. Here is my version of tensorflow in it:
(base) C:\Users\antoi>python -m pip list | findstr tensor
tensorboard 2.1.1
tensorflow 2.1.0
tensorflow-addons 0.8.3
tensorflow-estimator 2.1.0
tensorflow-hub 0.7.0
tensorflow-probability 0.7.0
WARNING: You are using pip version 19.2.
I don't have the tf.contrib error anymore but got another one on a following libraries:
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
from tensorflow.keras.constraints import MaxNorm
def create_model(input_dim, output_dim):
print(output_dim)
# create model
model = Sequential()
# input layer
model.add(Dense(100, input_dim=input_dim, activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
# hidden layer
model.add(Dense(60, activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
# output layer
model.add(Dense(output_dim, activation='softmax'))
# Compile model
model.compile(loss='categorical_crossentropy', loss_weights=None, optimizer='adam', metrics=['accuracy'])
#model.compile(loss=focal_loss(alpha=1), loss_weights=None, optimizer='nadam', metrics=['accuracy'])
return model
It doesn't create any error but now my jupyter kernel crashes later on when calling model.fit
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.models import load_model
model = create_model(x_train.shape[1], y_train.shape[1])
epochs = 30
batch_sz = 64
print("Beginning model training with batch size {} and {} epochs".format(batch_sz, epochs))
checkpoint = ModelCheckpoint("lc_model.h5", monitor='val_acc', verbose=0, save_best_only=True, mode='auto', period=1)
# train the model
history = model.fit(x_train.as_matrix(),
y_train.as_matrix(),
validation_split=0.2,
epochs=epochs,
batch_size=batch_sz,
verbose=2,
class_weight = weights, # class_weight tells the model to "pay more attention" to samples from an under-represented grade class.
callbacks=[checkpoint])
(base) C:\Users\antoi>python -m pip install tensorflow-gpu==1.14 --user
Collecting tensorflow-gpu==1.14
Using cached https://files.pythonhosted.org/packages/81/d1/9222b9aac2fa27dccaef38917cde84c24888f3cd0dd139c7e12be9f49a7a/tensorflow_gpu-1.14.0-cp37-cp37m-win_amd64.whl
Requirement already satisfied: google-pasta>=0.1.6 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (0.1.7)
Requirement already satisfied: astor>=0.6.0 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (0.8.0)
Collecting tensorboard<1.15.0,>=1.14.0 (from tensorflow-gpu==1.14)
Using cached https://files.pythonhosted.org/packages/91/2d/2ed263449a078cd9c8a9ba50ebd50123adf1f8cfbea1492f9084169b89d9/tensorboard-1.14.0-py3-none-any.whl
Requirement already satisfied: keras-preprocessing>=1.0.5 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.1.0)
Requirement already satisfied: keras-applications>=1.0.6 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.0.8)
Requirement already satisfied: wheel>=0.26 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (0.33.6)
Requirement already satisfied: protobuf>=3.6.1 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (3.10.0)
Requirement already satisfied: termcolor>=1.1.0 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.1.0)
Requirement already satisfied: absl-py>=0.7.0 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (0.9.0)
Requirement already satisfied: six>=1.10.0 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.13.0)
Requirement already satisfied: wrapt>=1.11.1 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.11.2)
Collecting tensorflow-estimator<1.15.0rc0,>=1.14.0rc0 (from tensorflow-gpu==1.14)
Using cached https://files.pythonhosted.org/packages/3c/d5/21860a5b11caf0678fbc8319341b0ae21a07156911132e0e71bffed0510d/tensorflow_estimator-1.14.0-py2.py3-none-any.whl
Requirement already satisfied: numpy<2.0,>=1.14.5 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.17.4)
Requirement already satisfied: gast>=0.2.0 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (0.2.2)
Requirement already satisfied: grpcio>=1.8.6 in c:\programdata\anaconda3\lib\site-packages (from tensorflow-gpu==1.14) (1.24.1)
Requirement already satisfied: markdown>=2.6.8 in c:\programdata\anaconda3\lib\site-packages (from tensorboard<1.15.0,>=1.14.0->tensorflow-gpu==1.14) (3.1.1)
Requirement already satisfied: setuptools>=41.0.0 in c:\programdata\anaconda3\lib\site-packages (from tensorboard<1.15.0,>=1.14.0->tensorflow-gpu==1.14) (44.0.0.post20200106)
Requirement already satisfied: werkzeug>=0.11.15 in c:\programdata\anaconda3\lib\site-packages (from tensorboard<1.15.0,>=1.14.0->tensorflow-gpu==1.14) (0.16.0)
Requirement already satisfied: h5py in c:\programdata\anaconda3\lib\site-packages (from keras-applications>=1.0.6->tensorflow-gpu==1.14) (2.9.0)
ERROR: tensorflow 2.1.0 has requirement tensorboard<2.2.0,>=2.1.0, but you'll have tensorboard 1.14.0 which is incompatible.
ERROR: tensorflow 2.1.0 has requirement tensorflow-estimator<2.2.0,>=2.1.0rc0, but you'll have tensorflow-estimator 1.14.0 which is incompatible.
ERROR: rasa 1.9.4 has requirement tensorflow-estimator==2.1.0, but you'll have tensorflow-estimator 1.14.0 which is incompatible.
Installing collected packages: tensorboard, tensorflow-estimator, tensorflow-gpu
WARNING: The script tensorboard.exe is installed in 'C:\Users\antoi\AppData\Roaming\Python\Python37\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The scripts freeze_graph.exe, saved_model_cli.exe, tensorboard.exe, tf_upgrade_v2.exe, tflite_convert.exe, toco.exe and toco_from_protos.exe are installed in 'C:\Users\antoi\AppData\Roaming\Python\Python37\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed tensorboard-1.14.0 tensorflow-estimator-1.14.0 tensorflow-gp
u-1.14.0
WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
It seems it didn't installed anything:
(base) C:\Users\antoi>python -m pip list | findstr tensorflow
tensorflow 2.1.0
tensorflow-addons 0.8.3
tensorflow-estimator 1.14.0
tensorflow-gpu 1.14.0
tensorflow-hub 0.7.0
tensorflow-probability 0.7.0
WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Upvotes: 1
Views: 2987
Reputation: 14983
Yes, tensorflow contrib does not exist starting from TF >= 2.0.
In order for your code to work you must downgrade to tensorflow 1.14, i.e pip install tensorflow-gpu==1.14
. Also, judging from the fact that you import from keras, you also need to pip install keras==2.2.4
Also, try to import everything in the package tensorflow.keras
not plain keras
.
Please also uninstall tensorflow (simple package). Prior to tensorflow==2.1, the cpu and gpu versions were different, and that's why you have two different tensorflow version installed.
Upvotes: 2