问题1:linux服务器本地开启visdom
需要用pytorch的visdom在服务器上跑程序,并把图片显示出来,但是服务器上打不开网页,如何将visdom.server转到本地。以下操作
近期找到的新方法
直接在本地浏览器输入
http://服务器IP:8097/
举个例子
http://58.244.9.136:8097/
以下为旧方法
1.在服务器上使用
tmux new -s session-name
开启一个新的后台进程,也可以直接在前台开启visdom.server,只不过就没办法进行其他工作。
2.开启visdom所在conda虚拟环境,输入
python -m visdom.server
3.在本地,注意是本地电脑,而非服务器命令行,打开cmd,输入
ssh -L 8097:127.0.0.1:8097 username@xx.xx.xx.xx
(username和xx.xx.xx.xx分别是你服务器的用户名和IP地址)
4.你会发现本地cmd命令行连接上了服务器,然后你就可以在浏览器中打开127.0.0.1:8097
发现连接上了
问题2:ImportError: cannot import name ‘imresize’ from ‘scipy.misc’
调试项目报错,百度查找介绍说Imresize在scipy的1.3.0版本后被弃用,可以通过安装1.2.1版本的scipy来解决而通过 pip install scipy==1.2.1会报很多错
解决方法:
只能另辟蹊径,查到了一篇帖子,介绍说imresize可以被以下代码代替
from PIL import Image
import numpy as np
# im = imresize(im, (h, int(w * aspect_ratio)), interp='bicubic')
im = np.array(Image.fromarray(im).resize((h, int(w * aspect_ratio))))
注释的是imresize,未注释的是通过numpy来解决的
问题3
Traceback (most recent call last):
File "/home/cust/.conda/envs/pytorch/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/cust/.conda/envs/pytorch/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/visdom/server/__main__.py", line 16, in <module>
download_scripts_and_run()
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/visdom/server/run_server.py", line 236, in download_scripts_and_run
main()
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/visdom/server/run_server.py", line 220, in main
start_server(
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/visdom/server/run_server.py", line 55, in start_server
app.listen(port, max_buffer_size=1024**3)
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/tornado/web.py", line 2134, in listen
server.listen(
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/tornado/tcpserver.py", line 183, in listen
sockets = bind_sockets(
File "/home/cust/.conda/envs/pytorch/lib/python3.10/site-packages/tornado/netutil.py", line 162, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 98] Address already in use
解决方案
杀死占用的进程
查看
ps -fA | grep python
杀死:
kill number
举例:
(pytorch) cust@ai:~/cust_data/cy/program/MCGAN$ ps -fA | grep python
root 1369 1 0 01:08 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 1450 1 0 01:08 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
cust 27094 26665 1 07:15 pts/2 00:00:39 python -m visdom.server
cust 29493 29060 0 07:52 pts/0 00:00:00 grep --color=auto python
(pytorch) cust@ai:~/cust_data/cy/program/MCGAN$ kill 27094
(pytorch) cust@ai:~/cust_data/cy/program/MCGAN$ ps -fA | grep python
root 1369 1 0 01:08 ? 00:00:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 1450 1 0 01:08 ? 00:00:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
cust 29497 29060 0 07:52 pts/0 00:00:00 grep --color=auto python