RTX 3090的深度學(xué)習(xí)環(huán)境配置指南:Pytorch、TensorFlow、Keras

極市導(dǎo)讀
?本文介紹了作者使用RTX3090進(jìn)行深度學(xué)習(xí)環(huán)境配置pytorch、tensorflow、keras等的詳細(xì)過(guò)程及代碼。?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿
筆者中山大學(xué)研究生,醫(yī)學(xué)生+計(jì)科學(xué)生的集合體,機(jī)器學(xué)習(xí)愛(ài)好者。
最近剛?cè)肓?090,發(fā)現(xiàn)網(wǎng)上寫(xiě)的各種環(huán)境配置相當(dāng)混亂而且速度很慢。所以自己測(cè)了下速度最快的3090配置環(huán)境,歡迎補(bǔ)充!
基本環(huán)境(整個(gè)流程大約需要5分鐘甚至更少)
py37或py38cuda11.0cudnn8.0.4tf2.5(tf-nightly)或 tf1.15.4pytorch1.7keras2.3
(1)官網(wǎng)下載,安裝顯卡驅(qū)動(dòng):
bash NVIDIA-Linux-x86_64-455.23.04.run
(2)安裝Anaconda并換源
bash Anaconda3-5.2.0-Linux-x86_64.shvim ~/.bashrcexport PATH=/home/XXX/anaconda3/bin:$PATH(XXX為自己的用戶名)(在文件末尾處添加該語(yǔ)句)source ~/.bashrcconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forgeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/conda config --set show_channel_urls yes之后vim ~/.condarc,把defaults刪掉
(3)創(chuàng)建虛擬環(huán)境,一般用py37或py38(以下都在虛擬環(huán)境中操作)
conda create -n exp38 python==3.8conda activate exp38
(4)安裝cuda11.0和pytorch1.7(不用再conda install cudatoolkit==11.0)
conda?install?pytorch?torchvision?cudatoolkit=11(5)安裝cudnn8(因?yàn)閏onda還不支持cudatoolkit=11中下載cudnn)
從https://developer.nvidia.com/rdp/cudnn-download下載cudnn,解壓后進(jìn)入cuda/lib64路徑下,把里面所有文件拷入對(duì)應(yīng)虛擬環(huán)境(exp38)的lib中
(6)裝tf2.5(不要裝tensorflow-gpu==2.4.0rc0,會(huì)報(bào)錯(cuò)'NoneType' object has no attribute 'TFE_MonitoringDeleteBuckets')
pip install tf-nightly-gpu -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip?install?tf-nightly?-i?http://pypi.douban.com/simple?--trusted-host?pypi.douban.com
(7)裝tf1.15.4
此處參考這位大佬的tf1.15.4安裝步驟
https://blog.csdn.net/wu496963386/article/details/109583045?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.wap_blog_relevant_pic
pip install google_pasta-0.2.0-py3-none-any.whl nvidia_cublas-11.2.1.74-cp36-cp36m-linux_x86_64.whl nvidia_cuda_cupti-11.1.69-cp36-cp36m-linux_x86_64.whl nvidia_cuda_nvcc-11.1.74-cp36-cp36m-linux_x86_64.whl nvidia_cuda_nvrtc-11.1.74-cp36-cp36m-linux_x86_64.whl nvidia_cuda_runtime-11.1.74-cp36-cp36m-linux_x86_64.whl nvidia_cudnn-8.0.4.30-cp36-cp36m-linux_x86_64.whl nvidia_cufft-10.3.0.74-cp36-cp36m-linux_x86_64.whl nvidia_curand-10.2.2.74-cp36-cp36m-linux_x86_64.whl nvidia_cusolver-11.0.0.74-cp36-cp36m-linux_x86_64.whl nvidia_cusparse-11.2.0.275-cp36-cp36m-linux_x86_64.whl nvidia_dali_cuda110-0.26.0-1608709-py3-none-manylinux2014_x86_64.whl nvidia_dali_nvtf_plugin-0.26.0+nv20.10-cp36-cp36m-linux_x86_64.whl nvidia_nccl-2.7.8-cp36-cp36m-linux_x86_64.whl nvidia_tensorrt-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl?-i?http://pypi.douban.com/simple?--trusted-host?pypi.douban.com
(8)裝keras2.3
pip install keras==2.3 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
(9)測(cè)試(使用cuda10.2也可以測(cè)試使用gpu,但貌似不能把數(shù)據(jù)寫(xiě)入gpu)

pytorch

tensorflow-2.5或1.15.4


keras(測(cè)試需要改部分源碼_get_available_gpus())
import tensorflow as tfimport keras.backend.tensorflow_backend as tfbackprint("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_gpusfrom keras import backend as KK.tensorflow_backend._get_available_gpus()


后記:實(shí)際3090需要cuda11.1,但pytorch和tf目前只支持11.0。而且講真不需要單獨(dú)配cuda、cudnn,在虛擬環(huán)境里搞就行了。
20210102更新:對(duì)tf1.15.4進(jìn)行測(cè)試,實(shí)測(cè)可用,數(shù)據(jù)可寫(xiě)入gpu。文章中已補(bǔ)充。
推薦閱讀

