前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows如何配置和迁移深度学习环境,以及使用Pycharm调试源码?(全网最详细)

Windows如何配置和迁移深度学习环境,以及使用Pycharm调试源码?(全网最详细)

作者头像
润森
发布2022-09-22 15:41:39
3.2K0
发布2022-09-22 15:41:39
举报
文章被收录于专栏:毛利学Python毛利学Python

本文主要详细介绍了torch_pgu版本的安装,其中包括cuda和cudnn的环境配置图解流程,以及如何使用conda命令进行虚拟环境的创建、删除、使用等操作,列举conda的常用命令集,包括如何实现Windows之间的conda环境的迁移;除以之外,介绍了pycharm断点调试的详细流程不同的调试方法

Ⅰ.虚拟环境的搭建

以torch_gpu 1.4.0版本为例,首先登陆官网https://pytorch.org/,然后选择 。

然后找到V1.4.0版本,因为我的电脑的cuda是10.1版本的,所以选择对应的cuda命令。

①cuda和cudnn如何准备?

可使用Win+R键,打开对话窗口,输入cmd指令,然后在Windows自带的cmd.exe对话窗口输入:nvcc --version进行查询,如下图所示。

如白框所示,该电脑的cuda版本为:10.1。

找到,使用qq账号登录,如下图所示。

选择下载历史版本的cudnn,如下图所示。

然后找到合适版本的cudnn,主要注意两点(cuda版本要匹配,同时适配Windows系统)。

解压cudnn文件夹,将解压后的文件夹下的文件拷贝到cuda安装目录下,与之相对应的文件夹下,如下图所示。

②如何创建针对于深度学习项目的虚拟环境?

1.首先找到Anaconda Prompt,然后输入命令:

代码语言:javascript
复制
conda create -n  torch14 python=3.6

这里需要注意的是,pytorch1.4.0仅支持python3.6,不支持python3.7(torch14为虚拟环境的名称,python==3.6为指定的python编译器的版本)。

然后输入指令,激活torch14环境:

代码语言:javascript
复制
conda activate torch14

2.添加安装包的默认下载源,输入以下命令行:

代码语言:javascript
复制
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

3.在torch14的虚拟环境下,安装torch1.4.0,输入以下指令:

代码语言:javascript
复制
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1

4.查看安装结果,输入以下指令:

代码语言:javascript
复制
pip show torch

输入指令

指令含义

conda -V或conda --version

获取版本号

conda update --help 或conda remove --help等

查看某一命令的帮助

conda env -h

查看环境管理的全部命令帮助

conda create -n env_name python=3.5

创建指定python版本的conda环境

conda create -n env_name numpy scipy

创建包含某些包的conda环境

conda create -n env_name python=3.5 numpy scipy

创建指定python版本下包含某些包的环境

conda info --envs或conda env list

列举当前所有环境

activate env_name

进入指定的conda环境

deactivate

退出当前环境

conda remove -n env_name --all

删除某个环境

conda list

列举当前活跃环境下的所有包

conda install -n env_name package_name

为指定环境安装某个包

conda env export > environment.yml

生成当前环境的environment.yml文件

conda env create -f environment.yml

根据environment.yml文件创建并配置一个conda环境

③如何使用pycharm调用已配置好的虚拟conda环境?

最后点击Apply即可完成conda环境的配置,但是这里也需要注意一个点就是如何找到我们自己搭建的conda环境的文件夹下的conda.exe文件进行环境的调用。

这里可以打开Anaconda Prompt操作框,输入以下指令:

代码语言:javascript
复制
conda info --envs

即可查询到对应的conda环境的文件夹位置信息,如下图所示。

④如何在不同的Windows主机上迁移配置好的conda环境?

1.安装Conda-pack,并打包配置好的conda环境

先在 anaconda prompt终端输入:

代码语言:javascript
复制
 pip install conda-pack

然后,使用conda-pack打包当前的conda环境:

代码语言:javascript
复制
# Pack environment my_env into my_env.tar.gz
conda pack -n my_env

# Pack environment my_env into out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz

# Pack environment located at an explicit path into my_env.tar.gz
conda pack -p /explicit/path/to/my_env

需要注意点的是,推荐选择指定路径的打包方式,因为便于找到打包之后的conda环境位置。

2.将打包好的压缩文件转移到目标Windows主机,进行环境的解压和激活:
代码语言:javascript
复制
# Unpack environment into directory `my_env`
mkdir -p my_env
tar -xzf my_env.tar.gz 

关于tar指令的用法,可参考这篇博客:

3.使用迁移后的conda环境:

先在 anaconda prompt终端输入:

代码语言:javascript
复制
 activate path/env

这里需要注意的是,与直接使用本机的conda环境不同,需要指定该迁移环境的具体路径才能使用!

补充:如果迁移后的conda环境报错未激活,如何激活?

1.首先查看自己的conda版本

在 anaconda prompt终端输入:

代码语言:javascript
复制
conda --version

2.根据不同的conda版本进行的conda环境的激活

Conda低于4.6版本:

  1. 用Win+X组合键调出PowerShell管理员模式;1. 输入命令conda install -n root -c pscondaenvs pscondaenvs安装PSCondaEnvs包;1. 输入命令Set-ExecutionPolicy RemoteSigned,在出现选项后输入Y回车,更改PowerShell的安全策略。1. PowerShell中使用activate 环境名激活环境,使用deactivate退出环境。Conda大于等于4.6版本:
  2. 用Win+X组合键调出PowerShell管理员模式;1. 输入命令conda init powershell,关闭后重新打开一个powershell窗口输入conda activate 环境名激活环境,退出环境用conda deactivate

⑤如何生成项目文件夹的requirements.txt,以及根据.txt文件安装对应的库环境?

1.生成requirements.txt

推荐使用 pip 来安装 pipreqs,安装命令:

代码语言:javascript
复制
pip install pipreqs

注意,这里的操作也是在torch14的conda环境下执行该命令!

然后使用cd命令定位到项目文件的根目录:

代码语言:javascript
复制
pipreqs root_folder  --encoding=utf8

如果已有requirements.txt文件,可以使用参数 --force 来覆盖重新生成requirements.txt ,如下:

代码语言:javascript
复制
pipreqs root_folder --encoding=utf-8 --force

注意,这里的文件必须定位到项目文件夹的根目录,然后使用pipreqs命令进行requirements.txt文件的自动生成!

2.安装requirements.txt对应的环境需求

使用以下命令,进行环境的配置:

代码语言:javascript
复制
pip install -r requirements.txt

⑥如何修改pip工具的默认下载源网站?

window系统,是在%APPDATA%路径下,(说明:%APPDATA%是一个系统变量来着)操作如下:

直接回去即可:

新建一个pip文件夹,并创建pip.ini文件即可,如:

文件的内容如下:

代码语言:javascript
复制
[global]

timeout = 6000

index-url = http://mirrors.aliyun.com/pypi/simple/

trusted-host = mirrors.aliyun.com

⑦如何恢复pip默认源?

方法一:进入pip配置文件夹

代码语言:javascript
复制
cd ~/.config/pip

打开pip.conf,将里面的内容删掉或者用#注释掉。

方法二:如果只是想临时用默认源,可用:

代码语言:javascript
复制
pip install 模块名 -i https://pypi.org/simple

方法三:conda直接输入:

代码语言:javascript
复制
conda config --remove-key channels

Ⅱ.如何使用pycharm进行源码的调试?

①pycharm断点调试的主要流程

1.添加断点

断点的添加如下图所示在代码前面左键单机即可。

2.调试断点

点击那个绿色的甲虫图标,进行断点调试。

点击后,会运行到第一个断点。会显示该断点之前的变量信息。

点击Step Over 或者按F8,我们继续往下运行,到下一个断点,按钮如下图所示:

②pycharm断点调试,单步调试step into/step out/step over区别?

step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);

step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。

step out:当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。

过程实例:

点击 pycharm 右上部爬虫按钮进入调试状态,程序在第14行断点处停止,按 F5(step into)进入 add() 函数,按 F7(step out) 执行完add()函数余下部分,返回入口函数 debug_test() 继续执行,按 F6(step over) 直接将 divide() 函数执行完。最后单步执行至入口函数结束

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小刘IT教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ⅰ.虚拟环境的搭建
    • ①cuda和cudnn如何准备?
      • ②如何创建针对于深度学习项目的虚拟环境?
        • ③如何使用pycharm调用已配置好的虚拟conda环境?
          • ④如何在不同的Windows主机上迁移配置好的conda环境?
            • 1.安装Conda-pack,并打包配置好的conda环境
            • 2.将打包好的压缩文件转移到目标Windows主机,进行环境的解压和激活:
            • 3.使用迁移后的conda环境:
            • 补充:如果迁移后的conda环境报错未激活,如何激活?
          • ⑤如何生成项目文件夹的requirements.txt,以及根据.txt文件安装对应的库环境?
            • 1.生成requirements.txt
            • 2.安装requirements.txt对应的环境需求
          • ⑥如何修改pip工具的默认下载源网站?
            • ⑦如何恢复pip默认源?
            • Ⅱ.如何使用pycharm进行源码的调试?
              • ①pycharm断点调试的主要流程
                • 1.添加断点
                • 2.调试断点
              • ②pycharm断点调试,单步调试step into/step out/step over区别?
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档