网上很多的开源代码所用的库的版本都是tensorflow1.x的,跟tensorflow2.0里面的内容完全不匹配,以下是我在学习中遇到的一些版本差异带来的问题
1.调用库时遇到的问题
下面是一段代码:
from keras.optimizers import SGD,RMSprop,Adam
在tensorflow2.x版本上会报错,表示在keras中找不到这些函数
其实原因是tensorflow2.x版本兼容了keras,需要进行修改
from tensorflow.keras.optimizers import Adam,RMSprop,SGD
修改成这样以后就能成功运行了
2.model.compile()函数中遇到的问题
源代码是这样的:
model.compile(optimizer='Adam', loss=['categorical_crossentropy'],metrics=[f1])
显示报错,但是错误为module ‘tensorflow’ has no attribute ‘is_nan’,完全看不懂这是什么意思
在找到对应的这行代码之后,我去查阅了compile函数,发现其中的metrics参数存在问题,没有f1这个选项,在我把它改成accuracy之后就可以运行了
metrics=["accuracy"]
3.module ‘tensorflow’ has no attribute ‘placeholder’
placeholder是tensorflow1.x里面的,2.x版本不兼容,尝试了网上的办法:
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
但是仍旧报错,依然显示 module ‘tensorflow’ has no attribute ‘placeholder’
解决办法:安装tensorflow1.x版本可以不再显示这个报错
4.pip指令下载tensorflow报错
用pip指令下载tensorflow的时候,不仅速度特别慢,还经常下到一半报错
这时候可以采用清华大学的镜像地址:
pip3 install tensorflow==x.x.x -i https://pypi.tuna.tsinghua.edu.cn/simple
x.x.x表示你想要安装的版本
本人完全是小白,上述说得不准的地方欢迎指出,之后再遇到相似的问题会继续更新的