Py学习  »  机器学习算法

深度学习环境配置指南:Pytorch、TensorFlow、Keras

小白学视觉 • 2 年前 • 227 次点击  

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

来源 | 知乎  编辑 | 极市平台 作者 | Yukyin

最近刚入了3090,发现网上写的各种环境配置相当混乱而且速度很慢。所以自己测了下速度最快的3090配置环境,欢迎补充!

基本环境(整个流程大约需要5分钟甚至更少)

py37py38cuda11.0cudnn8.0.4tf2.5tf-nightly)或 tf1.15.4pytorch1.7keras2.3

(1)官网下载,安装显卡驱动:

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为自己的用户名)(在文件末尾处添加该语句)source ~/.bashrc
conda 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-forge conda 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)创建虚拟环境,一般用py37或py38(以下都在虚拟环境中操作)

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(因为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.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)测试(使用cuda10.2也可以测试使用gpu,但貌似不能把数据写入gpu)

pytorch

tensorflow-2.5或1.15.4

keras(测试需要改部分源码_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_gpus
from keras import backend as KK.tensorflow_backend._get_available_gpus()

后记:实际3090需要cuda11.1,但pytorch和tf目前只支持11.0。而且讲真不需要单独配cuda、cudnn,在虚拟环境里搞就行了。

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/155813
 
227 次点击