【自用】红外彩色化算法移植到linux服务器出现的几个问题

问题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来解决的

参考链接1
参考链接2

问题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

猜你喜欢

转载自blog.csdn.net/qq_40721108/article/details/129282809
今日推荐