tf.contrib在tensorflow 2.0中不存在,我应该下载我的tensorflow版本吗?

问题描述 投票:0回答:1

我正在尝试使用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.
python-3.x tensorflow keras libraries tensorflow2.0
1个回答
0
投票

是的,从TF> = 2.0开始不存在张量流贡献。

为了使您的代码正常工作,您必须降级到tensorflow 1.14,即pip install tensorflow-gpu==1.14。另外,从您从keras导入的事实来看,还需要pip install keras==2.2.4

此外,请尝试导入软件包tensorflow.keras中的所有内容,而不是普通keras

© www.soinside.com 2019 - 2024. All rights reserved.