【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode

linux下装anaconda装pytorch环境且在windows下用vscode远程调试

  • 一、Linux端
    • 1.装系统
    • 2.换源
    • 3.拨号上网
    • 4.装NVDLA驱动
    • 5.装CUDA
    • 6.装Anaconda
      • Anaconda换源
    • 7.装pytorch
  • 二、Windows端
    • 1.装vscode
    • 2.使用SSH
    • 3.TMUX

非科班,刚开始接触机器学习,师兄说,那你先跑跑别人的开源项目吧。那就跑吧,从GitHub上下了代码下了数据集,一开始想在自己笔记本win10上跑,配了几天配好了环境,模型跑起来的一瞬间我听到电脑在咆哮,好吧,我怂了,又搞了台式机来,既然要重新配环境那就干脆换Linux吧。谨此记录,我相信我还会有再配环境的一天。

一、Linux端

要带显卡的电脑,一个8G或以上U盘

1.装系统

(1)首先还是需要在一台带windows系统的电脑上操作的

  • Ubuntu下载: https://ubuntu.com/download/desktop

  • 本文使用Ubuntu 20.04.1 LTS
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第1张图片

(2)做系统盘

  • 格式化U盘
  • 在win10上,只需要双击刚刚下载的ISO文件,然后选中打开的窗口中所有文件,将其复制到U盘
  • 不是win10系统就下载一个软件来引导,例如rufus: https://rufus.ie/

(3)BIOS设置:关闭快速启动

  • 重启电脑,一直狂戳F12(不同牌子电脑按键不同,请自行查询)
  • 直到进入BIOS,点击方向箭头→ 移动到Security
  • 再按↓移动到Secure Boot上,点击回车键,选择Disable
  • 最好去Boot里面看看USB Boot是否为Enabled

我的理解是,要是一开始就是开启快速启动的(省去了能进入BIOS的界面),重启个百八十次戳坏F2也没法进入BIOS,所以win10应该这样操作

  • 单击开始菜单选择“设置”,进入到设置后选择“系统”
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第2张图片
  • 打开系统后选择“电源和睡眠”,并在右侧选择“其他电源选项”
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第3张图片
  • 打开“电源选项”中找到“选择电源按钮的功能”
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第4张图片
  • 进入后,点击上方“更改当前不可用的设置”
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第5张图片
  • 接着在窗口下方“关机设置”中取消勾选第一项“启用快速启动(推荐)”,点击“保存修改”即可
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第6张图片

(3)安装Ubuntu

  • 插入U盘
  • 重启电脑
  • 一直狂戳F12
  • 在出现的界面选择你的U盘
  • 选Install Ubuntu,想试试也可以选Try ubuntu whthout install
  • 具体安装选项见 https://ubuntu.com/download/desktop页面下方的安装说明,也就是下Ubuntu的地方【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第7张图片

参考链接: https://www.jianshu.com/p/54d9a3a695cc

2.换源

我先直接从师兄的路由器上戳了根网线过来就能上网了,之后要改成自己拨号上网

  • 换源,先查看版本名,ubuntu20.04对应的是“focal”,用以下命令查看版本名:
lsb_release -c
  • 首先备份原来的软件源并另存:
sudo cp -v /etc/apt/sources.list /etc/apt/sources.list.backup
  • 执行chmod命令更改文件权限使软件源文件可编辑:
sudo chmod 777 /etc/apt/sources.list
  • 之后通过gedit命令编辑软件源:
sudo gedit /etc/apt/sources.list
  • 打开源文件后,进入编辑模式将所有的代码删干净,然后复制粘贴你需要的镜像源(把ubuntu版本名替换为你在自己系统上查看到的版本名)
#阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  • 修改完软件源后,更新软件列表和软件:
sudo apt update
sudo apt upgrade

参考链接:https://www.cnblogs.com/lynn-z/p/12874504.html

3.拨号上网

  • 桌面系统推荐使用NetworkManager,自己戳根网线,打开终端,输入
ifconfig
  • 要是提示缺东西,使用如下命令先下载要的东西再看看ifconfig
sudo apt-get install (提示缺的东西) 
  • 会看到你的有线网卡的名字,大概叫enp啥的,然后再输入
nm-connection-editor
  • 出现图形化界面,点左下角+号—>选择DSL/PPPoE–>进入下图,Connnection name随意设置、修改Parent interface为有线网卡名字、设置Username和Password、保存、重启
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第8张图片

参考链接:https://www.cnblogs.com/FaithALL/p/13268058.html

4.装NVDLA驱动

  • 查看当前电脑的显卡型号
lshw -numeric -C display
  • 到NVIDIA的官网下载对应驱动:https://www.nvidia.cn/geforce/drivers/,下载好之后放到用户目录下
  • 删除原有的NVIDIA驱动程序,如果你没有安装过,或者已经卸载,可以忽略:
sudo apt-get remove –purge nvidia*
  • bios禁用禁用secure boot,也就是设置为disable。如果没有禁用secure boot,会导致NVIDIA驱动安装失败,或者不正常。操作方式见上文。
  • 禁用nouveau
#打开编辑配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf

#在最后一行添加:
blacklist nouveau
#这一条的含义是禁用nouveau第三方驱动,之后也不需要改回来。

#由于nouveau是构建在内核中的,所以要执行下面命令生效:
sudo update-initramfs -u
  • 重启
reboot
  • 重启之后,可以查看nouveau有没有运行:
lsmod | grep nouveau  # 没输出代表禁用生效
  • 输入以下命令停止可视化桌面,之后会进入一个新的命令行会话,使用当前的用户名密码登录。想恢复可视化界面就 sudo telinit 1
sudo telinit 3
  • 安装驱动
#给驱动文件增加可执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
#执行安装:
sudo sh ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files
  • 检测NVIDIA驱动是否成功安装
nvidia-settings
  • 会出现NVIDIA的驱动管理程序,可以看到NVIDIA Driver Version是多少

参考链接:https://blog.csdn.net/wf19930209/article/details/81877822

5.装CUDA

  • 输入以下命令验证是否安装了gcc,若没有就sudo apt install gcc
gcc --version
  • 禁用nouveau,可以使用下面命令查看,如果没有输出代表成功,如果正确安装了NVIDIA的驱动就会禁止掉了
lsmod | grep nouveau
  • 在这里看NVIDIA Driver Version对应的CUDA版本:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第9张图片
  • 在这里下载对应的cuda:https://developer.nvidia.com/cuda-toolkit-archive
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第10张图片
  • 选择好版本就能看到对应的安装方式,照要求输入安装命令
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第11张图片
  • 安装过程的选项选择

(1). 会先有个阅读声明,一直按D即可,然后accept。
(2). 选项install nvidia accelerated> Graphics Driver,输入n,因为我们已经安装了nvidia的驱动。
(3). 选项install the OpenGL> libraries,如果双显卡(集显+独显)选择n,如果只有独显可以选择y,如果双显卡选择y的话,会出现黑屏或者循环登录的问题,如果加了上面的参数就不会出现这个选项了。
(4). 后面的可以都选择yes,最后一个选项我们可以选择n,也就是不复制Samples,因为安装目录下有samples

  • 安装过程结束后会有以下信息,记住你的路径
Driver :Installed
Toolkit :Installed in /usr/local/cuda-9.2
Samples :Installed in /home/vincent
  • 将cuda的bin和lib写入系统环境。打开~.bashrc文件在末尾追加两句,更换路径和版本为你的路径和版本,然后退出重新打开终端即可。.bashrc的路径可以在文件管理器查看,用sudo gedit 打开它进行编辑。
export CUDA_HOME=/usr/local/cuda-9.2
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-9.2/bin:$PATH
  • 验证cuda是否成功安装,终端输入,如果有CUDA的版本信息代表正常。
nvcc -V
  • 编译samples例子,如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功啦
#编译并测试设备 deviceQuery:
cd /usr/local/cuda-9.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest

参考链接:https://blog.csdn.net/wf19930209/article/details/81879514

6.装Anaconda

  • 官网下载:https://www.anaconda.com/products/individual
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第12张图片
  • 拷到Linux里,接着进入终端到安装目录下,打开终端输入以下命令进行安装,安装文件名为你的安装文件名
bash Anaconda3-2018.12-Linux-x86_64.sh
  • 然后开启安装,在安装过程中,基本上不断按回车或者yes默认就行了。
    不过注意最后一步有一个询问你是否安装vscode,如果你没有需要就输入no
  • 环境变量配置
#修改profile文件
sudo gedit /etc/profile
#在文件的末尾加上下述代码,然后保存关闭
#Anaconda
export PATH=$PATH:/home/software/anaconda3/bin
#重新载入配置文件,输入
source /etc/profile
  • 测试。在终端输入python3,出现Anaconda字样表示安装成功。输入exit()可退出python环境
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第13张图片

Anaconda换源

因为使用anaconda会出现CondaHTTPError问题。

  • 快速创建channels配置文件的备份(保险起见)
cp ~/.condarc{,.bak}
  • 查看配置文件的内容
gedit ~/.condarc
  • 主要是删除defaults和默认源,加入清华源,如下,清华源是http不是https,不然还是会error。(但是后来发现清华源里头的版本都很低,有条件还是用国外的默认源下东西吧,或者用离线包放anaconda3/pkgs/路径下,conda装的时候会优先检测这里的包没有才联网下载)
channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
show_channel_urls: true
  • pip换源
# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置
pip install pip -U 
#使用清华源提升下载速度
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/   

Pip安装Python软件包,而conda安装软件包,其中可能包含以任何语言编写的软件。conda能够创建隔离的环境,该环境可以包含不同版本的Python和/或其中安装的软件包。
 
参考https://www.anaconda.com/blog/understanding-conda-and-pip

参考链接:
https://blog.csdn.net/qq_34288630/article/details/88352101
https://blog.csdn.net/qq_45239614/article/details/104686320
https://blog.csdn.net/qq_29861217/article/details/94051055

7.装pytorch

  • 输入以下命令创建环境,选择y
conda create -n pytorch python=3.6
  • 创建完输入以下命令可以查看已有环境
conda info --envs
  • 进入环境
conda activate pytorch
  • 进入官网查看对应的版本的下载命令:https://pytorch.org/get-started/locally/,输入下载命令选择y等待下载
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第14张图片
  • 验证
python  #进入代码编辑
import torch  #没报错就是成功
torch.cuda.is_available()  #返回True就是能用GPU
exit() #退出python代码
conda deactivate #退出conda
  • 插播一条顺便记录的注意事项: 在PyTorch 1.1.0之前的版本,学习率的调整应该被放在optimizer更新之前的。如果我们在 1.1.0 及之后的版本仍然将学习率的调整(即 scheduler.step())放在 optimizer’s update(即 optimizer.step())之前,那么 learning rate schedule 的第一个值将会被跳过。所以如果某个代码是在 1.1.0 之前的版本下开发,但现在移植到 1.1.0及之后的版本运行,发现效果变差,需要检查一下是否将scheduler.step()放在了optimizer.step()之前。

参考链接:https://blog.csdn.net/qyhaill/article/details/103043637

二、Windows端

1.装vscode

就下载安装嘛

2.使用SSH

  • 远程主机安装SSH服务器,SSH扩展只能连接64位的Linux操作系统
sudo apt-get install openssh-server
  • 查看远程主机IP
ifconfig
  • 如果使用的系统是Windows10,系统中已经自带了SSH
  • 在VS Code扩展市场搜索remote,选择Remote-SSH,点击安装:
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第15张图片
  • 设置SSH扩展显示登录终端。打开命令面板(Ctrl+Shift+P),输入ssh,选择设置:
    ssh2
    ssh3
  • 启动SSH连接远程主机
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第16张图片
  • 输入远程主机的IP和用户名,保存【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第17张图片
  • 选择连接,选择系统为Linux,按提示输入密码就能连成功,若连接不成功查看IP地址对不对。
    ssh6
  • 打开远程目录作为工作区
    【入坑第一步,配环境】linux-anaconda-pytorch_win-vscode_第18张图片
  • 安装扩展,注意,在远程开发的时候扩展分为本地扩展和远程扩展,安装远程扩展才能对远程代码进行跳转定义和跳转引用(选择代码右键有了这个跳转选项)

参考链接:
https://www.jb51.net/article/186113.htm
https://blog.csdn.net/qq_27727147/article/details/101203360

3.TMUX

Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离。

(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。

(2) 它可以让新窗口"接入"已经存在的会话。

(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。

(4)它还支持窗口任意的垂直和水平拆分。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以"解绑":窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话"绑定"其他窗口。

  • 安装,安装完成后,键入tmux命令,就进入了 Tmux 窗口。按下Ctrl+d或者显式输入exit命令,就可以退出 Tmux 窗口
sudo apt-get install tmux
  • 新建会话。第一个启动的 Tmux 窗口,编号是0,第二个窗口的编号是1,以此类推。这些窗口对应的会话,就是 0 号会话、1 号会话。使用编号区分会话,不太直观,更好的方法是为会话起名。
tmux new -s <session-name>
  • 分离会话。在 Tmux 窗口中,按下Ctrl+b d或者输入tmux detach命令,就会将当前会话与窗口分离
tmux detach
  • 查看当前所有的 Tmux 会话
$ tmux ls
# or
$ tmux list-session
  • 接入会话
# 使用会话编号
$ tmux attach -t 0

# 使用会话名称
$ tmux attach -t <session-name>
  • 杀死会话
# 使用会话编号
$ tmux kill-session -t 0

# 使用会话名称
$ tmux kill-session -t <session-name>
  • 最简操作流程。

新建会话 tmux new -s my_session。
在 Tmux 窗口运行所需的程序。
按下快捷键Ctrl+b d将会话分离。
下次使用时,重新连接到会话 tmux attach-session -t my_session。

参考链接:http://www.ruanyifeng.com/blog/2019/10/tmux.html

你可能感兴趣的:(anaconda,pytorch,cuda,ubuntu)