实验室服务器跑python代码

一、连接服务器

二、安装anaconda

三、配置虚拟环境

1、新建环境

conda create -n torch100py365 python=3.6.5

2、激活环境

conda activate torch100py365
  • 退出当前环境,回到base
conda deactivate

4、安装pytorch1.0.0

conda install pytorch==1.0.0 torchvision==0.2.1 cuda100 -c pytorch

pytorch安装时不要直接用官网的命令,是最新版,坑!
先前版本复制的命令,注意不要把之前的-c pytorch加上,不然默认下载官网的链接了

5、测试是否安装成功

  • CPU 版本测试:继续运行 python 进入交互式环境,分别运行 import torchimport torchvision 不报错则安装成功。
  • GPU 版本测试:继续运行 python 进入交互式环境,分别运行 import torchimport 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 &

  1. nohup 不挂起的意思
  2. -u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟。
  3. > train.log 将输出日志保存到这个log中。
  4. 2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
    2>&1 &与1结合就代表标准输出了,就变成错误重定向到标准输出。(这个我没看懂)
  5. 最后一个& ,代表该命令在后台执行。

改写自己的代码

  • 改写之前代码为
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"

  1. a:显示所有程序。

  2. u:以用户为主的格式来显示。

  3. 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/实现监听

posted @ 2022-05-15 17:45  铁头蛙  阅读(1347)  评论(0)    收藏  举报