前言
本文是经过多次在Linux集群上安装tensorflow2.6-GPU失败后总结的经验。
首先,在安装tensorflow之前Linux集群上已经安装好了CUDA,所以本文内容是基于CUDA已经安装完毕。可以通过以下命令查看CUDA是否安装:
nvcc -V
出现以下结果则表明已安装CUDA
没装CUDA的话自己装一下,网上教程很多。
一、tensorflow2.6-GPU安装
1.创建虚拟环境并激活环境:
conda create -n tensorflow2.6 python=3.9
conda activate tensorflow2.6
这里使用python3.9版本。
2.下载tensorflow2.6
pip install tensorflow-gpu==2.6
下载特别慢可以使用清华镜像源(自己去找) 。
3.安装cuda,cudnn
conda install cudatoolkit=11.3
conda install cudnn=8.2
注意必须下载与tensorflow2.6对应的cuda,cudnn 。
4.简单测试
输入python,回车
import tensorflow as tf
可能报错:
解决方式:重新下载protobuf
pip install protobuf==3.20
再次测试:
安装基本完成。
但是有些时候,就算上述代码运行没问题,还是不能够调用gpu的(因为cuda版本、GPU算力不兼容等原因),可以简单测试以下GPU(下述代码参考自tensorflow2.0官方教程):
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test, verbose=2)
没错,我运行上面的代码就出问题了。。。
报的错误忘记截图了,总之原因是keras版本不对应。
解决方法:
conda list
查看keras版本,下载与tensorflow2.6对应的keras。
pip install keras==2.6.0
安装完成后再次运行上面的代码:
说明GPU调用没有问题。
到此,终于安装完毕!!!
总结
参考博客:
完美解决(最简单):不同虚拟环境不同CUDA版本的安装问题(tensorflow-gpu与pytorch)_安装不同版本的cuda_TC1398的博客-CSDN博客
查看tensorflow是否为GPU版本,并检查gpu是否可用_tensorflow查看gpu-CSDN博客
其实还有很多参考博客就不一一列举了。
参考阅读
发表评论