赞
踩
平常安装其他包时候直接使用pip install 或者conda install即可,但是在安装tensorflow和安装gdal时候就会遇到一些包版本不兼容问题,
您可能会遇到以下问题:
问题1:AttributeError: module 'numpy' has no attribute 'object'
。这是因为以前的NumPy版本中使用了np.object
作为内置的object
的别名,但在较新的版本中这种别名已被废弃。
问题2 这也是常见的问题:ImportError: numpy.core.multiarray failed to import
。这个问题通常是由于问题安装或损坏的NumPy包引起的。
问题3:您可能会遇到以下问题:UserWarning: h5py is running against HDF5 1.12.1 when it was built against 1.12.0, this may cause problems
。这是由于HDF5库的版本不兼容导致的。h5py在构建时使用一种版本的HDF5库(1.12.0),而在运行时,它发现您的系统上安装的HDF5库版本与它构建时使用的不同(1.12.1),这可能会导致问题。
等等。。。
上述问题都是因为tensorflow与一些gdal或者其他包冲突导致的,他们有一些共同依赖的包,例如hdf5、numpy包,如果版本没有对应上在使用时候很容易报错。
因为gpu版本的tensorflow需要用到cuda和cudnn, 通过官网查表知道它们版本对应tensorflow2.6.0+cuda11.2+cudnn8.1。
我们可以通过conda info tensorflow-base==2.6.0
命令查看该版本的tensorflow依赖哪些,也可以使用conda info tensorflow-base | findstr “numpy”
来查看能依赖的所有numpy版本。
我们注意到依赖的包有numpy>=1.20(这个版本实测行不通)。实测匹配的版本是numpy==1.19.5
和h5py>=3.1.0
。
我们继续看一下h5py都依赖哪些包,可以使用conda info h5py==3.1.0
。
可以看到其中有一个hdf5>=1.10.6,<1.10.70a0
。
为什么要注意这些包呢?因为这些包也是gdal所依赖的包。
经过检查,我们发现gdal3.3.0
版本对hdf5和numpy也在这个范围。
所以我们接下来可以按照这个版本进行安装:
注意这里我先安装gdal,因为gdal对包兼容性不高,为了防止后期调用时候发生错误,我们需要先安装gdal。建议使用conda安装而不是使用pip安装。
conda install gdal==3.3.0 hdf5==1.10.6
安装tensorflow,目前conda上tensorflow只更新到2.6.0。官方建议使用pip安装。
pip安装和conda安装的区别:
通过情况下如果没有版本要求,建议使用conda安装。但是有一些特定包例如tensorflow,需要我们使用pip安装。一个原因是TensorFlow不在conda上更新了,另外一个原因是conda提供的TensorFlow依赖包版本不准确。例如TensorFlow2.6.0在conda中显示numpy的兼容版本>=1.20.0,但是实际上真实使用中会报错。根据测试经验,TensorFlow2.6.0的匹配的numpy的版本是19.5(通过pip安装时候知道)。
下面详细说一下TensorFlow安装:
先确定TensorFlow的版本,可以查阅官网提供的对应表,可以知道TensorFlow 2.6.0 + CUDA 11.2 + cuDNN 8.1 是对应的。
安装兼容性较低的包(不需要可以跳过),例如gdal需要提前安装好。
安装TensorFlow。官网先下载好合适版本的离线版的.whl文件使用pip进行安装。
兼容修改。pip安装的TensorFlow的依赖包keras==1.12.1
实际上需要安装的是keras==2.6.0
。需要我们更新keras包,使用pip install keras==2.6.0
将这些内容改成markdown格式:
# 安装gdal和hdf5 (可以省去)
conda install gdal==3.3.0 hdf5==1.10.6
# 安装TensorFlow
pip install tensorflow-2.6.0-cp38-cp38-win_amd64.whl
# 更新keras
pip install keras==2.6.0
因为Windows和Linux的命令有所不同,上述命令可能需要进行一些修改,具体可以根据实际情况进行调整。
总之,要安装TensorFlow和gdal,需要首先检查它们依赖的共同包的版本兼容性,确定安装的兼容版本,并注意先安装gdal,然后安装TensorFlow。如果使用pip安装TensorFlow,还需要注意兼容修改,如更新keras包等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。