文章目录(Table of Contents)
前言
这里会记录一些自己在使用服务器的时候的一些命令,方便查询。
服务器环境问题
Jupyter Notebook远程
- jupyter notebook --ip='IP地址' --NotebookApp.token='' --NotebookApp.password=''
本地浏览器打开jupyter notebook
有的时候我们不小心关闭了浏览器上的jupyter notebook的tab标签, 我们只需要输入下面的地址既可以再次打开。
- http://localhost:8888/tree
查看显卡使用情况
- nvidia-smi
查看cuda版本
目前可以直接使用 nvidia-smi
来查看 CUDA
版本,如下图所示(下面的两个方法是之前使用的)。
我们可以搜索一下version.txt文件来查看cuda的版本.
- find / -name version.txt -type f
或者我们可以通过安装的库来查看cuda的版本. 可以通过torch.version.cuda来进行查看.
结束进程(释放cuda memory)
可以查找所有的python的进程.
- ps -ef | grep python
- [root@localhost test6]# ps -ef|grep ssh
- root 2720 1 0 Nov02 ? 00:00:00 /usr/sbin/sshd
- root 17394 2720 0 14:58 ? 00:00:00 sshd: root@pts/0
- root 17465 17398 0 15:57 pts/0 00:00:00 grep ssh
接着根据对应的PID进行kill即可.
- kill -9 PID
解决ssh登录慢
如下进行文件的修改
- vim /etc/ssh/sshd_config
修改下面的两行,均改为no即可。
- UseDNS no
- GSSAPIAuthentication no
接着重启服务,再次尝试,会发现快了很多。
- service sshd restart
python虚拟环境
- source activate tf-gpu
防火墙策略
有的时候我们需要关闭服务器的默认的防火墙来保证连接.
- 关闭防火墙 systemctl stop firewalld.service
- 配置开机不自启动防火墙 systemctl disable firewalld.service
- 查看防火墙状态 systemctl status firewalld.service
- 允许TCP的8080端口访问
- firewall-cmd --permanent --zone=public --add-port=8080/tcp
- 开启防火墙 systemctl start firewalld.service
- 配置开机不自启动防火墙 systemctl enable firewalld.service
服务器跑脚本一些注意事项
上面是关于一些服务器的环境的问题, 这里介绍一下关于跑脚本的时候要注意的一些问题.
程序后台运行
大部分情况下, 我们需要程序在后台运行, 也就是关闭终端之后程序不会断掉, 我们可以使用以下的方式进行操作. 注意这里结尾需要加上 &,这样才可以在后台运行。
- $ nohup python python_script.py > my_output.log &
- $ tail -f my_output.log
但是如果在 Python
中使用 print
,则不能在 log 中马上看到消息。这是因为 python 的输出有缓冲。我们可以在运行中加入参数 -u
使得可以马上显示。
- nohup python -u test.py>tt.log>&1 &
使用top命令查看正在执行的程序.
参考链接:
- Linux下关闭终端之后继续运行相应的进程
- Have python script run in background of unix
- How to run a Python script in the background even after I logout SSH?
记录每一个Epoch的时间
一般情况下, 我会将每一个epoch运行的时间保存下来, 方便查看程序运行的情况, 是否还在运行, 以及运行一个epoch需要多久的时间.
- from datetime import date,datetime
- t = datetime.now() #获取现在的时间
使用Log保存为日志
通常情况下, 会使用logging进行日志的保存, 这样程序运行结束之后也可以进行结果的查看.
- import logging
- # 将日志保存到文件
- logging.basicConfig(filename='logger.log',level=logging.INFO)
- # 进行日志的输出
- logging.info('Time {}, Epoch [{}/{}], Step [{}/{}]'.format(t, epoch, num_epochs, i+1, total_step))
保存终端输入到日志
除了使用上面的 logging 模块之外,我们可以直接将终端上的输出保存在日志中(例如 print 的输出)。我们使用 script 来实现。
script 是大多数 Linux 产品软件包的一部分。 script 记录会话的一切内容:你输入的内容和你看到的内容。它甚至记录颜色;因此如果你的命令提示符或程序输出中包含颜色,script将记录它。
要使用script,在终端中输入以下命令:
- script
默认情况下,它向当前目录的文件中写入内容。然后,你输入的一切内容都被记录到那个文件中。要往另一个文件中记录日志,使用下面的命令:
- script /path/to/file
完成记录后,输入 exit 退出。这个命令将关闭 script 会话并保存文件。现在你可以使用cat或其它任何程序来检查日志文件。
参考资料,Ubuntu下将终端输出保存为log日志
每一个Epoch保存模型
这个需要在每一次epoch结束之后, 我们进行保存即可.
- torch.save(G.state_dict(), './models/G.ckpt')
Windows上的一些注意事项
Windows查看CUDA版本
使用下面命令查看Windows下CUDA的版本.
- nvcc --version
Pytorch安装问题-64位Python
如果出现如下的报错:
- ERROR: Could not find a version that satisfies the requirement torch==1.4.0+cpu (from versions: 0.1.2, 0.1.2.post1, 0.1.2.post2)
- ERROR: No matching distribution found for torch==1.4.0+cpu
我们需要重新安装Python, 需要安装64位的. (Are you guys using x64 Python? We don't provide binaries for x86 python distributions.)
- 微信公众号
- 关注微信公众号
- QQ群
- 我们的QQ群号
评论