Python3.8环境下TensorFlow-GPU中无法安装Keras的解决请求
我来帮你搞定Python 3.8 conda环境里安装keras-gpu失败的问题,包括你想要的离线安装方案,一步步来:
首先得说清楚:keras-gpu这个conda包的维护已经比较滞后,而且现在Keras官方更推荐直接用TensorFlow内置的tf.keras(TensorFlow-GPU版本自带GPU加速的Keras实现)。不过如果你确实需要单独安装keras-gpu,按下面步骤操作:
先确保你的tensorflow conda环境处于激活状态,执行命令:
conda activate tensorflow切换到conda-forge频道尝试安装——默认频道的keras-gpu大概率已经没有适配Python3.8的版本了,指定一个兼容的版本号(2.4.3是最后几个支持Python3.8的keras-gpu版本之一):
conda install -c conda-forge keras-gpu=2.4.3
注:要保证keras-gpu版本和你已装的TensorFlow-GPU版本兼容,比如2.4.3对应TensorFlow 2.4.x系列。你可以先查当前TensorFlow版本:pip show tensorflow-gpu如果还是报错,先清理环境里可能冲突的包,再重新安装匹配版本的组合:
conda remove --all --force tensorflow-gpu conda install -c conda-forge tensorflow-gpu=2.4.3 keras-gpu=2.4.3
另外,Anaconda Navigator搜不到keras-gpu是因为默认频道没有适配3.8的包,你可以在Navigator的「Channels」选项里添加conda-forge频道,之后再搜索就能找到对应版本了。
如果网络受限,离线安装的步骤如下:
在有网络的机器上,创建一个和目标环境完全一致(Python3.8、对应操作系统)的conda环境,执行命令下载keras-gpu及其所有依赖包到指定文件夹:
conda install --download-only -c conda-forge keras-gpu=2.4.3 -p ./keras_gpu_offline_pkgs./keras_gpu_offline_pkgs是保存包的文件夹路径,你可以改成自己方便的路径把这个包文件夹复制到你的目标机器上,激活tensorflow环境后,执行本地安装命令:
conda install --offline -c local --use-local ./keras_gpu_offline_pkgs/*安装完成后,验证是否成功:
打开Python终端,运行以下代码:import keras print(keras.__version__) print(keras.backend.backend()) # 正常会显示tensorflow,GPU可用的话会自动检测到
其实现在Keras已经完全整合进TensorFlow了,如果你已经装了TensorFlow-GPU,直接用tf.keras就能获得GPU加速的Keras功能,完全不需要单独安装keras-gpu,还能避免版本兼容问题。示例代码如下:
import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # 和原生Keras写法完全一致 model = Sequential([ Dense(64, activation='relu', input_shape=(10,)), Dense(1) ]) model.compile(optimizer='adam', loss='mse')
内容的提问来源于stack exchange,提问作者Sheikh Munim Hussain Shakib

