[Python]关于Tensorflow+Keras+h5py+numpy一些骚操作备忘
起因:要在Anaconda使用Tensorflow和Keras框架
这里提前小结一下:
1,一定要注意Python、Tensorflow、Keras不同版本的对应关系。
2,交叉用conda install 和pip install安装依赖库可能容易出现问题,在Anaconda虚拟环境,能用pip安装的尽量用pip安装。如果用conda install安装,它会自动安装相关的一系列依赖库,可能会导致跟pip安装的起冲突;如果一定要用conda install安装,建议先执行conda install来安装,再直接执行.py文件,看看出错信息再用pip instal来补充安装。
3,最后我在Windows10 64位CPU环境使用的是:python 3.7.1,tensorflow 2.6.0,keras 2.6.0,h5py和numpy是通过"conda install tensorflow==2.6.0"自动安装的。
这里列举一下我在操作过程中前后出现了诸多问题及当时解决办法。
问题1:
error: uninstall-no-record-file
× Cannot uninstall numpy 1.25.0
╰─> The package's contents are unknown: no RECORD file was found for numpy.
hint: You might be able to recover from this via: pip install --force-reinstall --no-deps numpy==1.25.0
原因:用conda install安装tensorflow之后,会自动安装依赖的numpy库,导致与之前pip安装的numpy发生冲突。
解决:(当时试过根据上面提示来操作,但不顶用)实际操作:重新创建虚拟环境,先不安装numpy,而是直接使用conda install 安装tensorflow。
问题2:
File "E:\anaconda3\envs\py37\lib\site-packages\keras\engine\saving.py", line 1183, in load_weights_from_hdf5_group original_keras_version = f.attrs['keras_version'].decode('utf8') AttributeError: 'str' object has no attribute 'decode'
问题3:
File "E:\anaconda3\envs\py37\lib\site-packages\tensorflow_core\python\util\module_wrapper.py", line 193, in __getattr__ attr = getattr(self._tfmw_wrapped_module, name) AttributeError: module 'tensorflow._api.v1.compat.v2' has no attribute '__internal__'
原因:上面这两个问题都是由于tensorflow版本keras版本对应有问题造成的。
解决:选用合适的版本,我选了tensorflow 2.6.0和keras 2.6.0
问题4:
File "h5py\h5.pyx", line 41, in init h5py.h5 AttributeError: type object 'h5py.h5.H5PYConfig' has no attribute '__reduce_cython__'
原因:就是pip安装了h5py和conda install暗转的有冲突,
解决:卸载了pip安装的h5py
pip uninstall h5py
问题5:
File "E:\anaconda3\envs\py37\lib\site-packages\keras\dtensor\__init__.py", line 22, in <module>
from tensorflow.compat.v2.experimental import dtensor as dtensor_api
ImportError: cannot import name 'dtensor' from 'tensorflow.compat.v2.experimental'
这个问题本质也是tensorflow和keras版本对应不上造成的,
但是,但是,但是,
我的原因是,用conda install安装了tensorflow和keras
conda install tensorflow==2.6.0 keras==2.6.0
解决:
先卸载keras:
conda remove keras
再用pip安装keras:
pip install keras==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
这是一步奇葩操作。
原文地址:https://blog.csdn.net/H_O_W_E/article/details/143570523
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!