自学内容网 自学内容网

[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)!