实验室服务器跑python代码
一、连接服务器
- 下载xshell教育版本,https://www.xshell.com/zh/all-downloads/
- 新建连接,填写服务器、端口、用户名、密码
- 终端页面
复制ctrl+insert 粘贴shift+insert
二、安装anaconda
- conda版本,测试是否安装conda
conda --version - 安装教程参考
https://blog.csdn.net/KRISNAT/article/details/124041869
三、配置虚拟环境
1、新建环境
conda create -n torch100py365 python=3.6.5
2、激活环境
conda activate torch100py365
- 退出当前环境,回到base
conda deactivate
4、安装pytorch1.0.0
- 进入环境后,
python进入python环境,
import torch如果报错,需要安装pytorch包 - 到官网(https://pytorch.org/get-started/previous-versions/ )找需要版本,复制命令
![]()
conda install pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch
pytorch安装时不要直接用官网的命令,是最新版,坑!
先前版本复制的命令,注意不要把之前的-c pytorch加上,不然默认下载官网的链接了
5、测试是否安装成功
- CPU 版本测试:继续运行 python 进入交互式环境,分别运行
import torch,import torchvision不报错则安装成功。 - GPU 版本测试:继续运行
python进入交互式环境,分别运行import torch,import torchvision不报错, 再运行print(torch.cuda.is_available())输出 Ture 则表示安装成功
import torch后报错undefined symbol: cblas_sgemm_alloc
解决方案conda install mkl=2018 -c anaconda
该错误与python版本没有关系,不要被误导,python3.6.5基本对各个pytorch版本都适配
- 查看pytorch版本
print(torch.__version__)
6、conda相关命令
根据自己的环境配置自动选择对应python版本
conda install python
conda环境列表
conda env list
删除环境
conda remove --name env_name --all
删除环境中某个包
conda remove --name env_name package_name
报错
ImportError: cannot import name 'PILLOW_VERSION' from 'PIL'
是因为用conda安装PyTorch的话,默认安装依赖库中的pillow库版本较高,PILLOW_VERSION在Pillow 7.0.0之后的版本被移除了,所以另一种可能的解决方案就是卸载当前的pil模块,然后安装7.0.0之前的版本,因而需要给pillow降级,比如说6.1版本pip uninstall pillow pip install pillow==6.1 或pip install pillow==6.2.1
四、运行代码
1、利用xftp上传代码
2、进入文件目录
常用命令:
pwd显示当前路径
cd ..返回上一级目录
cd name/OBDA打开OBDA文件夹
3、检测显卡情况
watch nvidia-smi
4、命令行运行代码
命令结构:指定要用的显卡+要跑的文件+要用的参数
CUDA_VISIBLE_DEVICES=0,1 python OBDA/main.py --exp_dir=results/train_attn --batch_size=4 --test_batch_size=4
5、后台运行代码
nohup
nohup python -u train.py > train.log 2>&1 &
- nohup 不挂起的意思
- -u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟。
- > train.log 将输出日志保存到这个log中。
- 2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
2>&1 &与1结合就代表标准输出了,就变成错误重定向到标准输出。(这个我没看懂) - 最后一个& ,代表该命令在后台执行。
改写自己的代码
- 改写之前代码为
CUDA_VISIBLE_DEVICES=0,1 nohup python -u OBDA/main.py --exp_dir=results/train_attn --batch_size=4 --test_batch_size=4 > train.log 2>&1 &
- 代码执行后,自动下载数据集
![]()
kill
报错
ModuleNotFoundError: No module named 'scipy'conda install scipy
kill -9 28148强制关闭进程(慎用!)
#28148是进程的PID,PID可以在显卡watch窗口找到。
查看进程
ps -aux | grep "main.py"
-
a:显示所有程序。
-
u:以用户为主的格式来显示。
-
x:显示所有程序,不以终端机来区分。
查看日志
tail -f train.log
6、在本地监听服务器上的tensorboard
(1)将服务器的某个端口转发到本地的8888端口。
ssh -L 8888:localhost:6665 服务器端用户名@ip地址
(2)服务器运行tensorboard,指定日志文件存放目录,在指定端口打开(默认端口6006)。
先cd到logs文件夹所在的大目录下,运行以下代码:
tensorboard --logdir=logs --port 6665
(3)在浏览器打开http://localhost:8888/实现监听



浙公网安备 33010602011771号