在google colab上搭建pytorch深度学习环境

        Google Colab是一种在线的开发环境,它基于Jupyter Notebook,可以在浏览器中运行Python代码。Colab提供了一个具有CPU和GPU支持的云端运行环境,用户可以免费使用。

目录

序言

准备安装的pytorch环境

思维整理

错误思维回顾

正确思维

Pytorch环境配置步骤

卸载当前CUDA环境

官网下载需要的CUDA版本并安装

安装cudnn

安装Pytorch对应的Python

安装Pytorch库

结束语


序言

        google colab简单来说就是可以免费使用,远程服务器是方便,但免费资源我们也别错过。登陆上去colab默认的库都是最新的,输入命令:

!pip list

       

        其中,“ipython  7.34.0”、“torch  2.1.0+cu121”、“torchvision  0.16.0+cu121”是colab默认提供近期release的版本,但可能并不是我们所需要的运行环境版本,在不一样的环境下运行代码大概率是有问题的。

        这里我们使用的“!pip list”命令,比常用的python软件命令行前面增加感叹号“!”,是由于google colab和Jupyter Notebook一样都是用Notebook界面,代码前增加感叹号(!)用于执行shell命令,而不是Python命令。其中,“torch  2.1.0+cu121”表示Pytorch版本号2.1.0,+cu121指明Pytorch库编译时所使用的CUDA版本,这里采用CUDA12.1进行优化。

        需要注意的是,colab默认没有安装conda环境,如果我们使用:

!conda list

则会报错

准备安装的pytorch环境

        笔者准备在pytorch上安装的环境如下:

序号环境版本
1Python3.6
2Torch1.2.0
3Torchvision0.4.0

思维整理

错误思维回顾

        笔者对colab基于Jupyter nootbook Shell命令了解不够深刻,依旧采用Python应用程序标准解释器思维如下:

        1.卸载原有的ipython==7.34.0

!pip uninstall ipython==7.34.0

        交互式会话选择“Y”。

        成功卸载ipython==7.34.0,输入命令:

!pip list

        与上述对比确定安装包已经卸载。

        2.安装python==3.6

!pip install E:\python-3.8.10-amd64.exe

        有点异想天开了,然后查了些资料就在想能不能用远程服务器的miniconda来安装特定的环境。

        3.安装miniconda

        下载Miniconda,你可以使用以下代码在 Google Colab 中下载 Miniconda 安装脚本:

!wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

        安装Miniconda,下载完成后,你需要将 Miniconda 安装脚本设置为可执行,并执行安装。运行以下代码:

!chmod +x Miniconda3-latest-Linux-x86_64.sh
!bash Miniconda3-latest-Linux-x86_64.sh -b -p /usr/local -f

成功在colab上安装了Miniconda。

        4.再次使用conda命令安装python==3.6

        先创建conda环境“Leo”(python==3.6),这里的做法就熟悉起来了:

!conda create -n Leo python=3.6

这里我的环境名称“Leo”,你可以自己取。

    这里就安装成功了“Leo”环境,输入

!conda env list

         5.激活安装的环境python==3.6

    “Leo”环境安装成功,python==3.6。但这里才用colab提供的激活环境指令不行,搞不懂。

        查找了半天,查到了用“!source”命令来执行,通常情况下,执行脚本文件时,会启动一个新的子 shell 来执行其中的命令,而 source 命令则是在当前 shell 中执行脚本中的命令,不会启动新的子 shell。这是啥意思???先不管了。执行~

!source activate Leo
!python --version

于是乎,还是python==3.11.5,这什么情况。对哦,还是有个魔法指令

%conda activate python3.6

也不可以

然后我认真的研究了下面这段话(这可比焊接画板子难啊!):

通常情况下,执行脚本文件时,会启动一个新的子 shell 来执行其中的命令,而 source 命令则是在当前 shell 中执行脚本中的命令,不会启动新的子 shell。

        大概意思就是colab以这种方式激活只要当前cell中有用,下一个就没用了。过程中还试了乱七八糟的,如果要在当前的cell中输出“Leo”环境下的python==3.6。应该这样

!source /usr/local/etc/profile.d/conda.sh && conda activate Leo && echo $CONDA_DEFAULT_ENV

结果如下:

em....那这样有什么用。

这段指令就是

  1. 使用 source 命令加载了 /usr/local/etc/profile.d/conda.sh 脚本文件,该文件包含了与 Conda 相关的环境变量设置和函数定义。
  2. 使用 conda activate Leo 命令激活了名为 "Leo" 的 Conda 环境。
  3. 使用 echo $CONDA_DEFAULT_ENV 命令打印了当前活动的 Conda 环境的名称。

        到这里我就放弃自己研究了,也不能说一点收获都没,这个过程中,还是了解了很多关于jupyter、colab的原理应用的。

正确思维

        这么好的免费资源,环境不符合自己要求难道就放弃,我肯,大佬们也不肯啊。于是乎,参考优秀博文整理思路

如何在google colab创建/配置torch 0.3.1环境icon-default.png?t=N7T8https://blog.csdn.net/m0_46550089/article/details/129119040?spm=1001.2014.3001.5506

  1. 查看当前的cuda版本;
  2. 卸载当前Colab的CUDA;
  3. 官网下载对应的cuda版本,离线安装;
  4. 根据cuda版本安装cudnn;
  5. 查看torch对应的python版本,安装python3.6的版本。

        

Pytorch环境配置步骤

卸载当前CUDA环境

        Pytorch环境配置需要版本torch==1.2.0,官方推荐版本cuda==10.0,与cuda10.0对应的cudnn==7.4.1。

        查看当前colab中的cuda版本

!nvcc --version

        根据上述输出信息,已经安装cuda编译工具cuda==12.2版本,发布版本号V12.2.140。这并非我们所需要的cuda==10.0,将其卸载。

!apt-get --purge remove cuda nvidia* libnvidia-*
!dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 dpkg --purge
!apt-get remove cuda-*
!apt autoremove
!apt-get update
  1. !apt-get --purge remove cuda nvidia* libnvidia-*: 移除CUDA和NVIDIA驱动程序相关的软件包。
  2. !dpkg -l | grep cuda- | awk '{print $2}' | xargs -n1 dpkg --purge: 查找以"cuda-"开头的软件包并卸载它们。
  3. !apt-get remove cuda-*: 移除以"cuda-"开头的所有软件包。
  4. !apt autoremove: 自动移除不再需要的依赖包。
  5. !apt-get update: 更新软件包列表。

        查看colab的Ubuntu版本:

!lsb_release -a

        可以看到系统是运行 Ubuntu 22.04.3 LTS版本,代号为 Jammy。

官网下载需要的CUDA版本并安装

        根据colab的Ubantu版本去官网下载对应所需要的cuda版本,colab系统版本是Ubuntu 22,下载Ubuntu 16的版本不影响的。

        安裝下载的cuda==10.0,这里研究了好久,参考之前博文的代码如下:

!wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
!dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
!apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
!apt-get update
!apt-get install cuda=9.0.176-1

进行更改:

# 下载CUDA 10.0安装包
!wget --no-clobber https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64
# 安装CUDA包
!dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64
# 添加CUDA 10.0的公钥
!sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
# 更新apt源
!apt-get update
# 安装CUDA 10.0
!apt-get install cuda=10.0.130-1

或是将下载好的cuda==10.0进行本地安装,都没有成功,有各种错误。

经过各路参考,有位优秀博主博文

更改Colab的CUDA以及cudnnicon-default.png?t=N7T8https://blog.csdn.net/qq_46521210/article/details/122211173中间提到代码:

#Download CUDA 10.0
!wget  --no-clobber https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
#install CUDA kit dpkg
!dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64
!sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
!apt-get update
!apt-get install **cuda-10-0**

运行这段代码就成功了:

  1. !wget --no-clobber https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64

    使用wget命令下载CUDA 10.0的安装包。--no-clobber选项用于避免覆盖已经存在的文件,以防止重复下载。
  2. !dpkg -i cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48_1.0-1_amd64

    使用dpkg命令安装下载的CUDA安装包。
  3. !sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub

    将CUDA存储库的公钥添加到系统的APT密钥环中,以确保后续的软件包下载和安装可以进行验证。
  4. !apt-get update

    更新APT软件包列表,以便系统知道可用的软件包版本和更新。
  5. !apt-get install **cuda-10-0**

    使用apt-get命令安装CUDA 10.0工具包。这个命令将会安装CUDA 10.0的所有相关软件包。

!apt-get install **cuda-10-0**是强制系统安装CUDA10.0,一定要记得加**,否则系统将会安装CUDA的最新版本!!!!!

这个过程运行的很慢,大概7~8分钟,结果如下:

得到我所需要的cuda==10.0的环境。

安装cudnn

        CUDA深度神经网络库CuDNN(CUDA Deep Neural Network library)是NVIDIA提供的用于深度神经网络的加速库。它包含了一系列针对深度神经网络的高效实现,可以在NVIDIA的GPU上加速神经网络的训练和推断过程。CuDNN提供了各种深度学习框架(如TensorFlow、PyTorch、Keras等)的加速接口,使得这些框架可以利用GPU的并行计算能力来加速神经网络的运算,包括卷积、池化、归一化、激活函数等操作。通过使用CuDNN,开发者可以更高效地训练和部署深度神经网络模型,加快模型迭代的速度并提高训练效率。

        在NVIDIA官网下载对应CUDA10.0版本的cudnn库

                将下载的cudnn上传到google driver中

        在colab中找到cudnn-9.0-linux-x64-v7.4.1.5.tgz所在的工作目录,并且打开:

%cd /content/drive/MyDrive

        按下面的命令安装本地cudnn-9.0-linux-x64-v7.4.1.5.tgz,.tar.gz文件是一种压缩文件格式,用于在Linux系统中打包和压缩文件。

!sudo tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz
!sudo cp cuda/include/cudnn.h /usr/local/cuda/include
!sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
!sudo chmod a+r /usr/local/cuda/include/cudnn.h
!sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
  1. sudo tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz: 这个命令用于解压缩名为 cudnn-9.0-linux-x64-v7.4.1.5.tgz 的压缩文件。-zxvf 选项告诉tar命令解压文件并显示详细信息。

  2. sudo cp cuda/include/cudnn.h /usr/local/cuda/include: 这个命令将 cudnn.h 文件复制到 CUDA 的 include 目录下,通常是 /usr/local/cuda/include

  3. sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64: 这个命令将 libcudnn* 库文件复制到 CUDA 的 lib64 目录下,通常是 /usr/local/cuda/lib64

  4. sudo chmod a+r /usr/local/cuda/include/cudnn.h: 这个命令更改 cudnn.h 文件的权限,确保所有用户都有读取权限。

  5. sudo chmod a+r /usr/local/cuda/lib64/libcudnn*: 这个命令更改 libcudnn* 库文件的权限,确保所有用户都有读取权限。

        安装库成功,查看cudnn的版本。查看关于CUDNN_MAJOR 宏定义的信息,并显示该宏定义之后的 2 行内容。

!cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

        根据显示cudnn结果,正式所需要的v7.4.1.5。

安装Pytorch对应的Python

        在pytorch官网查看torch版本对应的python版本,依据下图所示,我们使用的pytorch==1.2.0应对应python==2.7,3.5,3.6,3.7。

        查看colab当前的python版本(使用魔法命令):

!python --version

        当前版本v3.10.12不符合要求,安装python==3.6。打开文件目录

%cd /content

        下载并安装Python==3.6

# 下载python 3.6
%%bash
MINICONDA_INSTALLER_SCRIPT=Miniconda3-4.5.4-Linux-x86_64.sh
MINICONDA_PREFIX=/usr/local
wget https://repo.continuum.io/miniconda/$MINICONDA_INSTALLER_SCRIPT
chmod +x $MINICONDA_INSTALLER_SCRIPT
./$MINICONDA_INSTALLER_SCRIPT -b -f -p $MINICONDA_PREFIX

        将 "/usr/local/lib/python3.6/site-packages" 路径添加到 Python 解释器的搜索路径中,使解释器能够找到该路径下的模块和包。

import sys
_ = (sys.path
     .append("/usr/local/lib/python3.6/site-packages"))

安装Pytorch库

在线安装python==3.6对应的pytorch文件,这里笔者需要的是pytorch==1.2.0,torchvision==0.4.0。

# CUDA 10.0
!pip install torch===1.2.0 torchvision===0.4.0 -f https://download.pytorch.org/whl/torch_stable.html

        至此,所需要的pytorch==1.2.0、torchvision==0.4.0都已经安装完成。

结束语

        colab安装的CUDA==10.0,cuddn==7.4.1.5,python==3.6.5,pytorch==1.2.0,torchvison==0.4.0都已经安装完毕。

        研究了好几天,想白嫖个colab资源并且搭建自己想要的环境好累啊。别人成功实现的在你在不一定顺利,不断踩坑不断完善,留个mark记录以后备用,防止忘记~~~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值