在windows 10的Ubuntu子系统使用Pytorch

Pytorch 不支持 Windows,不过 Windows 10 提供了 Ubuntu 子系统,可以提供近乎原生的 Linux 环境,虽然并不是一个好的选择,但我们仍然可以通过 Ubuntu 子系统来运行 Pytorch 程序。

需要准备

  • Windows 10
  • Pycharm 专业版

基本思路

  • Windows 10 安装 Ubuntu 子系统
  • 子系统开启 SSH
  • Pycharm 编写 Python 代码,使用专业版的上传代码到服务器的功能,将 Python 代码通过 sftp(SSH File Transfer Protocol) 上传到本地 Ubuntu 子系统运行调试。

Ubuntu 子系统(WSL)

微软从 Windows 10 开始推出了 Linux 子系统(Windows Subsystem for Linux, WSL)的功能,起初只有 Ubuntu 子系统,现在逐渐推出了多个发行版(包括 Ubuntu,openSUSE,SUSE Linux Enterprise Server 12),主要给开发者使用,可以在 Windows 平台提供 Linux 的开发能力,类似于虚拟机,但是底层实现是直接重写系统调用,因此性能更好。

启用 Ubuntu 子系统

Windows 10 默认没有开启 Linux 子系统,可以根据微软官方的Linux子系统安装指引来开启。

开启后如何打开 Linux 子系统?
在 cmd 或者 powershell 中执行 bash 即可。我们可以开启该系统的 ssh 服务,这样就可以在 xshell 等工具中方便连接。

安装 Pytorch

在命令行输入 bash 打开 Linux 子系统,首先安装 Python 3 或者 conda,然后使用 pip 或者 conda 安装 Pytorch,可在pytorch.org找到最新版的安装命令。

安装 conda
anaconda官网下载安装脚本并执行安装。

wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh
bash Anaconda3-5.0.1-Linux-x86_64.sh

安装 Pytorch
pip:

pip3 install http://download.pytorch.org/whl/cpu/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl 
pip3 install torchvision

conda

conda install pytorch-cpu torchvision -c pytorch

子系统开启 ssh

接下来的操作都是在子系统中执行。

1.重装 ssh-server

默认的 ssh-server 使用 service ssh start命令开启时总会报错且无法连接,2017年3月Github就有人open了issue,微软至今没有修复,目前的解决方案是要先重装一下 ssh-server。

sudo apt-get remove --purge openssh-server
sudo apt-get update
sudo apt-get install openssh-server

2.修改 SSH 配置

编辑 ssh 配置文件,依次输入:

vi /etc/ssh/sshd_config
:%s/Port 22/Port 2222/
:%s/PermitRootLogin prohibit-password/PermitRootLogin yes/
:wq

以上操作,开启 2222 端口(或者自定义其他端口,默认的22端口已经被 Windows 占用),允许用密码登陆,保存退出。

3.开启 SSH 服务

sudo service ssh --full-restart

4.在 xshell 中连接子系统

接下来就可以通过 xshell 等工具连接本地服务器了。最终我们需要在 Pycharm 中配置 SSH 连接。

Pycharm 连接子系统运行调试 Pytorch 代码

Pycharm 专业版提供了在远程服务器上运行调试代码的功能,非常方便,因此我们可以配置将 Pytorch 程序在 Linux 子系统中运行。

具体操作可以参考 Pycharm 官方的远程调试教程

其他问题

保持 ssh 开机启动
参考 https://gist.github.com/dentechy/de2be62b55cfd234681921d5a8b6be11

bash中文乱码

子系统开启后会发现无法显示中文,因为系统没有安装中文语言包。

安装并修改系统地区配置。

sudo apt-get -y install language-pack-zh-hans
echo "LC_ALL=zh_CN.utf8"  >> /etc/profile
echo "export LC_ALL" >> /etc/profile
source /etc/profile

共有 1 条评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注