本人在运行深度学习语义分割模型时,出现以下报错,并加以解决,希望能帮助到你。
报错一:
NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000018F4BAA8910>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000018F4BAA8910>:
Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
解决方案:如果是单纯出现这个问题,可能是网络的问题,有四种情况:①是没挂 梯 子;②也可能挂了 梯 子;③网络不稳定;④防火墙问题。 需要看访问的是国内还是国外服务器。
报错二:
Could not connect to Visdom server. Trying to start a server.... Command: E:\anaconda3\envs\py11\python.exe -m visdom.server -p 8097 &>/dev/null & create web directory F:\result\web...
Could not connect to Visdom server.
Trying to start a server.... Command:
E:\anaconda3\envs\py11\python.exe -m visdom.server -p 8097 &>/dev/null & create web directory F:\result\web...
解决方案:如果报错一和报错二都出现了,证明visdom服务器没有开启。可以按照以下步骤来一一排查(本人用的是anaconda环境,因此是在anaconda prompt中进行以下步骤,应该在相应的python环境进行就行,否则会报错):
1、首先确认visdom是否安装好
pip install visdom
2、如果安装好了还不行,可以手动开启
python -m visdom.server -p 8097
3、不行的原因还可能使端口占用了,可以检查一下,把占用的关掉就行了
netstat -aon | findstr 8097
当运行深度学习代码时,anaconda prompt(或者你的python环境窗口)出现以下一大串,证明ok了。
!!!!!!!如果嫌每次手动开启很麻烦,以下有自动开启的方法!!!!!!!
在运行代码前加上以下代码:
import subprocess
import time
import requests
def is_visdom_running():
try:
response = requests.get('http://localhost:8097')
return response.status_code == 200
except requests.ConnectionError:
return False
# 启动 Visdom 服务器
visdom_proc = subprocess.Popen(['python', '-m', 'visdom.server'])
print("Visdom server started")
# 动态等待 Visdom 服务器启动
start_time = time.time()
while not is_visdom_running():
if time.time() - start_time > 10:
print("Timeout: Visdom server failed to start")
visdom_proc.terminate()
exit(1)
time.sleep(1)
####这里放你的运行代码或者运行脚本###
# 训练完成后终止 Visdom 服务器
visdom_proc.terminate()
添加了该自动化代码之后似乎运行效率有所提升。我在训练模型的过程中,相同模型,相同数据,相同的初始参数,原本手动开启vidom server完成每个epoch大概需要9min,而自动化后完成每个epoch大约在7min左右。大家伙们可以自己试验试验。