最近在华为云上 打算用 mobilenet train一个垃圾分类的模型,但是遇到版本不对,在
model = Model(inputs=base_model.input, outputs=predictions)
出现非法参数 out_mask ,然后百度说 改成
from tensorflow.keras.models import Model 可以,但是改完之后发现
model.fit_generator(train_generator,samples_per_epoch=nb_train_samples,
没有 samples_per_epoch 参数,
于是觉得 tensorflow.keras 也不对。
最后 问题就解决方案来了,多尝试了几次,死马当活马医,觉得应该回到
import keras
print('keras.__version__:',keras.__version__)
并升级到最新
!pip install --upgrade keras
此时打印还是Keras 2.2.4,其实最新的应该是 keras-2.3.1 了
restart 内核,此时打印 print('keras.__version__:',keras.__version__)
发现是 keras-2.3.1,运行 出错的代码,发现完美解决问题。
其实后续如果发现这种版本不对的问题,第一是 把 各个版本升级到最新,也不是
import tensorflow.keras.
其实 import keras,并升级到最新,也是可以的,只要你代码里没 TF的代码。
当然,其他公司项目里的问题,首先想到是 到当时实验环境 print 版本,然后安装对应的版本。
其实 就两步,找对版本,然后 更改版本。或者更改你的代码。
版本对应 不会出错的问题:https://docs.floydhub.com/guides/environments/