目录
之前简单地写了一个pytorch的U-net 复现过程,有很多小伙伴在评论里有很多疑问,抽空又复现了一遍,简单整理了常见的问题。
之前写的教程:U-net复现pytorch版本 以及制作自己的数据集并训练_candice5566的博客-CSDN博客
---------------------------------------------------------------------------------------------------------------------
github代码链接:
https://github.com/milesial/Pytorch-UNet
代码说明:这个代码新加入了一个wandb的可视化库,能够可视化训练过程中的参数变化情况
1.下载github的代码,并且配置好环境:

2.下载数据集:
我自己用来测试的数据集,链接:https://pan.baidu.com/s/1lqwZ6XvAtPhw5EYn4bwLUQ
提取码:upb3
3. 修改train.py文件里
a.修改数据集的路径

b.修改channel,如果是RGB图像,channel=3,如果是灰度图,channel=1;
修改classes,就是背景+你的数据集里有几个类别;比如我给的那个数据集有汽车和背景两个类,那么classes=2;

c. 其他参数可以自行进行修改

4. 开始训练,训练顺利的话应该是这样:

训练完成,wandb可视化结果:
可以看出来最后dice系数在0.95左右,loss在0.2左右。

5. 训练完成,模型会保存在checkpoints路径下:

我们找到predict.py文件,修改参数:

然后 找一张测试照片放在当前路径下,
# -i 是指定预测的照片 其他参数可以自己看get_args部分
python predict.py -i 7.jpg --viz -v
预测结果大概就是这样:
输入:

输出:

完结撒花~
1.block: [0,0,0], thread: [828,0,0] Assertion `t >= 0 && t < n_classes` failed. 如图

多半是classes设置错了
2. f'Either no mask or multiple masks found for the ID {name}: {mask_file}',如图

多半是数据集出错了,
自查方法:
a.看路径出没出错
b.看后缀是不是对,可以看一下utils/date_lodading文件,

还有一定要注意,这里自定义了后缀是 "_mask",也就是说你的掩码和原图一个应该是1.jpg,另外一个就是1_mask.jpg
c.看一下数据集路径下有没有其他文件,这个代码的data_load方法很粗暴,不能有其他文件或者文件夹
3. OSError: [WinError 1455] 页面文件太小,无法完成操作

这个直接说解决方法,在train.py文件里修改
num_worker为2,如果还是不行,改成0

4.dice系数一直都小,或者不变,那么有可能是学习率设置太小了,改成0.0001试试,
其他可能原因可以看一下原作者的解答:
over
有问题可以评论区补充。
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou
我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur
运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我正在尝试解析网页,但有时会收到404错误。这是我用来获取网页的代码:result=Net::HTTP::getURI.parse(URI.escape(url))如何测试result是否为404错误代码? 最佳答案 像这样重写你的代码:uri=URI.parse(url)result=Net::HTTP.start(uri.host,uri.port){|http|http.get(uri.path)}putsresult.codeputsresult.body这将打印状态码和正文。
我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack