安装PyTorch
本文记录一下给服务器安装PyTorch的过程。
准备工作
安装包管理器Anaconda
- 下载Anaconda for python3.6
- 上传到服务器
scp Anaconda3-5.1.0-Linux-x86_64.sh user@server:~/share
- 安装
bash ~/share/Anaconda3-5.1.0-Linux-x86_64.sh
- 激活
source ~/.bashrc
- 更新到最新版
conda update -n base conda
Anaconda 会自动修改环境变量,用户下的python(及pip)将会被切换为python3.6,但不会影响系统使用的python版本:
可以使用 sudo su 切换到root再使用 python(python3) –version 查看
更新pip和numpy到最新版本
1 | # 更新pip3和numpy |
安装GPU加速工具包
选择正确版本的CUDA TOOLKIT和目标主机设置,下载cuda-repo-xx.deb
1 | # 安装前设置主机环境 |
nvidia-persistenced.service 文件内容:
1 | [Unit] |
开始安装PyTorch
本来想使用Anaconda安装的,但它的镜像连接不上,改用PIP安装。
1 | pip install http://download.pytorch.org/whl/cu91/torch-0.3.1-cp36-cp36m-linux_x86_64.whl |
如果由于网络原因安装失败可以先下载下来再 pip install ~/TorchFileLocalPath
安装成功:
1 | >>> python |
使用Pycharm进行远程开发与调试
强大的Pycharm Pro
IDE可以直接在服务器上开发、调试,就不用再给本地搭建和服务器上一样的环境了。在Tools->Deployment里面可以设置自动部署(或者在创建项目时选用远程服务器和解释器)。
需要设置的有SFTP
和Remote Interpreter
。SFTP用于代码同步,类似git上传,同步后可以在服务器上直接运行上传的代码。
- 在Tools->Deployment中添加SFTP服务:
Connect
页填写服务器连接选项,Mapping
页设置本地路径和远程路径(注意这个路径是相对于前面的Root Path的)的映射; - 选择自动上传(Automatic Uploaded);
- Preference->Project Interpreter中添加远程解释器,可以使用已添加的SFTP中的服务器设置(使用Deployment Configure选项)
遇到了问题,Python Console不可用,远程连接控制台不成功:
ssh://usr@10.xx.xx.xx:22/home/usr/anaconda3/bin/python -u /home/usr/.pycharm_helpers/pydev/pydevconsole.py 0 0
Couldn’t connect to console process.
Process finished with exit code -1
这是Pycharm的一个未解决BUG,但评论中提到的解决方法allowing the server public IP for all traffic对我的情况没用。无法解决,暂搁置。
Python Console 问题后续:
- 查看pycharm的log无有用提示(
~/Library/Logs/PyCharm2018.1/idea.log
); - 使用
nettop
监控pycharm进程通信发现有一个通信一直被关闭,以为是进程通信的问题: - 给macos开发端口:修改
\etc\pf.conf
配置文件,但还是没有解决问题。
1 | sudo vim /etc/pf.conf |
使用Jupyter Notebook
Jupyter
是一个基于 websocket 的 Python 交互式编程环境。由于之前在 Pycharm 配置的远程解释器无法运行Python Console,所以使用 Jupyter Notebook 以方便进行实验。(Jupyter虽然不适合作为生产环境,但作为实验环境来说非常好用。)
在服务器上安装Jupyter Notebook:
1 | server$ pip install jupyter |
开启服务:
1 | server$ jupyter notebook --no-browser --port=8080 |
可以保存配置以简化启动命令:jupyter notebook –generate-config;
然后在~/.jupyter/jupyter_notebook_config.py中添加:
c.NotebookApp.password = ‘sha1:a86…使用notebook.auth.passwd()生成的密文’
c.NotebookApp.open_browser = False
c.NotebookApp.port =8080
通过 SSH 进行远程访问:
1 | ssh -N -L 8080:localhost:8080 <remote_user>@<remote_host> |
现在本地可以通过http://localhost:8080/
使用 Jupyter Notebook 啦~
参考资料
[1] pycharm 远程服务器开发调试
[2] Pycharm远程调试使用服务器资源
[3] OSX上pf的简单配置笔记