0%

今日填坑 UNet & visdom

今天踩了两个坑,记录一下让自己记住。

🕳UNet中的loss选择

众所周知,UNet二分类常用的loss是BCELoss。

BCELoss是二分类交叉熵损失,计算结果为一个当前像素属于当前点的概率。

在计算前,需要使用一个Sigmod函数把输入归一化到0~1之间。

非常方便的BCEwithLogitLoss则完成了以上两个步骤,直接计算出了一个结果。

所以在使用BCEwithLogitLoss时,不需要取Sigmod。

同时,在可视化结果时,需要对结果进行Sigmod来使得结果为黑白。

🕳visdom 服务器代理运行

众所周知,visdom在本机运行的时候,只需要

1
python -m visdom.server

然后打开localhost:8097即可。

如果要在服务器上运行visdom,然后在本机windows上监视要怎么做呢?

首先将服务器的端口转接到当前电脑的端口上登录:

1
ssh -L 18097:127.0.0.1:8097 username@remote_server_ip

然后启动visdom服务,运行我们的py文件。

如果你的机器配置过奇怪的代理,可能会遇到像我一样的问题:

1
2
3
4
5
http.client.RemoteDisconnected: Remote end closed connection without response
...
Max retries exceeded with url: http://localhost:8097/env/main
(Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response',)))

这个时候只需要在运行前加上no_proxy==localhost python xxxx.py 即可