[tensorflow]tensorflow keras gdal与numpy在安装时的版本对应问题

GDAL库在安装时时常与tensorflow pytorch出现冲突,主要冲突问题在numpy库,在此记录python =3.8 tensorflow_gpu 2.2.0版本的详细环境配置问题,以免自己再出问题

首先查看自己的cuda版本,安装cuda和cudnn,具体见一下文章https://blog.csdn.net/bruce_zhao1407/article/details/109580835

以及https://zhuanlan.zhihu.com/p/163328137

本次实习下载的cuda是10.1版本,结合python版本,选择tensorflow 2.2.0+keras2.3.1版本,具体版本对应表格可见此博客:

https://blog.csdn.net/weixin_45325693/article/details/138342996

重点:确定选择的numpy gdal版本

此文章写的很详细https://blog.csdn.net/weixin_44492791/article/details/131110523

tensorflow与hdf5包、numpy包的冲突问题真的很头疼

因此通过

conda info tensorflow-base==2.2.0

查看该版本的tensoflow依赖哪些,同理查看gdal和h5py

最终确定的版本为gdal==3.0.2 numpy==1.19.5 h5py==2.10.0 hdf5==1.10.5

安装时最好先装gdal库,使用conda install gdal

(ps:因为我后来遇到了h5py is running against HDF5 1.10.6 when it was built against 1.10.5的问题

所以我这里的代码是:

conda install gdal==3.0.2 hdf5==1.10.5

要在这一步直接指定hdf5版本,要不后面就难改了

)

然后再conda install numpy==1.19.5调整到正确numpy版本

然后再安装tensorflow 和keras

打开python环境,调用tensorflow库进行测试,输入命令

import tensorflow as tf

如果遇到报错

(tensorflow) C:\Users\Rmzh>python
Python 3.9.16 | packaged by conda-forge | (main, Feb  1 2023, 21:28:38) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\__init__.py", line 41, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\__init__.py", line 41, in <module>
    from tensorflow.python.eager import context
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\eager\context.py", line 33, in <module>
    from tensorflow.core.framework import function_pb2
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\function_pb2.py", line 16, in <module>
    from tensorflow.core.framework import attr_value_pb2 as tensorflow_dot_core_dot_framework_dot_attr__value__pb2
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\attr_value_pb2.py", line 16, in <module>
    from tensorflow.core.framework import tensor_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__pb2
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\tensor_pb2.py", line 16, in <module>
    from tensorflow.core.framework import resource_handle_pb2 as tensorflow_dot_core_dot_framework_dot_resource__handle__pb2
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\resource_handle_pb2.py", line 16, in <module>
    from tensorflow.core.framework import tensor_shape_pb2 as tensorflow_dot_core_dot_framework_dot_tensor__shape__pb2
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\core\framework\tensor_shape_pb2.py", line 36, in <module>
    _descriptor.FieldDescriptor(
  File "D:\WorkSoftware\Install\Anaconda3\envs\tensorflow\lib\site-packages\google\protobuf\descriptor.py", line 561, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

就是protobuf 包版本问题,重新下载:

pip install protobuf==3.19.0

经实验该组合能够有效使用,如果遇到问题环境大家讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值