前言
在用Python做图像识别的时候,需要借助TensorFlow库,但Numpy库和TensorFlow库版本不兼容就会出现问题。同时Numpy库得适应Python版本。
TensorFlow不兼容问题
如果TensorFlow低于numpy库版本则会报错:AttributeError: module 'numpy' has no attribute 'typeDict'
如果TensorFlow高于numpy库版本则会报错:TensorFlow ImportError: initialization failed
解决方法
方法一:
首先安装一遍TensorFlow。
pip install tensorflow
然后通过下面代码检查一下TensorFlow的版本。
pip show tensorflow
可以看见我这里的版本号是2.13.0
通过查表
然后安装对应的代码
pip install tensorflow==<version>
方法二:
不需要查表,更直接的方法。首先保证你的numpy的版本和python兼容,且最好保证已经装过TensorFlow.然后通过运行下面代码,这里的1.21是随便一个
pip install --user --upgrade numpy
那么程序会给升级到最高版本,但可能会报错。2.12.0是我安装的TensrFlowd的版本号。
tensorflow-intel 2.13.0 requires numpy<=1.24.3,>=1.22, but you have numpy 1.24.4 which is incompatible.
然后你只需要按照错误提示再重新输入需要的版本号。上面版本报错TensorFlow2.12.0需要numpy<=1.24,>=1.22,因此numpy在numpy<=1.24,>=1.22都可以。
pip install --user --upgrade numpy==1.23
最后安装完成,没有报错。
总结
TensorFlow是图像识别必要的库,numpy是机器学习的库,在python里两者需要兼容才可以使用,希望我的分享可以帮助到大家。