我正在尝试使用keras和tensorflow创建一个神经网络。它补充了一个顺序模型,该模型会导致一些依赖库出现问题。
! 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
但它返回:
---------------------------------------------------------------------------
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'
确实,似乎是tf.contrib does not exist in tensorflow 2.0。我该怎么办?我应该下载我的Tensorflow版本吗?我在Anaconda中使用jupyter的笔记本。这是我在其中的tensorflow版本:
(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.
是的,从TF> = 2.0开始不存在张量流贡献。
为了使您的代码正常工作,您必须降级到tensorflow 1.14,即pip install tensorflow-gpu==1.14
。另外,从您从keras导入的事实来看,还需要pip install keras==2.2.4
此外,请尝试导入软件包tensorflow.keras
中的所有内容,而不是普通keras
。