![14e16eee42f2ee6c51769e25ace39633.png](https://i-blog.csdnimg.cn/blog_migrate/698bb0a8fa5770faba7375d89ac5959a.jpeg)
笔者中山大学研究生,医学生+计科学生的集合体,机器学习爱好者。
最近刚入了3090,发现网上写的各种环境配置相当混乱而且速度很慢。所以自己测了下速度最快的3090配置环境,欢迎补充!
基本环境(整个流程大约需要5分钟甚至更少)
py37或py38
cuda11.0
cudnn8.0.4
tf2.5(tf-nightly)
pytorch1.7
keras2.3
(1)官网下载,安装显卡驱动:
bash NVIDIA-Linux-x86_64-455.23.04.run
(2)安装Anaconda并换源
export
(3)创建虚拟环境,一般用py37或py38(以下都在虚拟环境中操作)
python
(4)安装cuda11.0和pytorch1.7(不用再conda install cudatoolkit==11.0)
cudatoolkit
(5)安装cudnn8(因为conda还不支持cudatoolkit=11中下载cudnn)
从https://developer.nvidia.com/rdp/cudnn-download下载cudnn,解压后进入cuda/lib64路径下,把里面所有文件拷入对应虚拟环境(exp38)的lib中
(6)装tf2.5(不要装tensorflow-gpu==2.4.0rc0,会报错'NoneType' object has no attribute 'TFE_MonitoringDeleteBuckets')
pip install tf-nightly-gpu -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install tf-nightly -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
(7)装keras2.3
pip install keras==2.3 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
(8)测试(使用cuda10.2也可以测试使用gpu,但貌似不能把数据写入gpu)
![aa7c18bd8e8ee3b88a12a5dcbda22358.png](https://i-blog.csdnimg.cn/blog_migrate/1fef50ae1ac42e9b3733cd15a5199c1d.jpeg)
pytorch
![3675ee340a92b867bbe0ccc00229bcb1.png](https://i-blog.csdnimg.cn/blog_migrate/5eaa9ad0caa028a0d96e0309ed045a5f.png)
tensorflow
![2c399716005be9849e2328f9a7f2dbc9.png](https://i-blog.csdnimg.cn/blog_migrate/4860b63186eebbf3e81a84760bb9a513.jpeg)
![46fb250c62488a9cc94107d78afd7528.png](https://i-blog.csdnimg.cn/blog_migrate/09293831194cfef77fdce06a1da902b6.jpeg)
keras(测试需要改部分源码_get_available_gpus())
import tensorflow as tf
import keras.backend.tensorflow_backend as tfback
print("tf.__version__ is", tf.__version__)
print("tf.keras.__version__ is:", tf.keras.__version__)
def _get_available_gpus():
if tfback._LOCAL_DEVICES is None:
devices = tf.config.list_logical_devices()
tfback._LOCAL_DEVICES = [x.name for x in devices]
return [x for x in tfback._LOCAL_DEVICES if 'device:gpu' in x.lower()]
tfback._get_available_gpus = _get_available_gpus
from keras import backend as K
K.tensorflow_backend._get_available_gpus()
![887f3b29d0734a1a8ee54e6a38acd524.png](https://i-blog.csdnimg.cn/blog_migrate/4b13134192f9bddb2676df59fc72a887.jpeg)
![6466acbaa1d1f4a39dd0f3860c47107d.png](https://i-blog.csdnimg.cn/blog_migrate/8dde999562e0fcb703d65ee5adec381c.jpeg)
后记:实际3090需要cuda11.1,但pytorch和tf目前只支持11.0。而且好像不支持tf1.x,至少我测试失败,数据无法写入gpu。而且讲真不需要单独配cuda、cudnn,在虚拟环境里搞就行了。