繁体   English   中英

使用U-Net作为单层进行语义分割的输入标签

[英]Input labels for semantic segmentation with U-Net as single layer

例如,当使用U-Net进行语义分割时,将标签数据提供为一热编码的张量似乎是常见的做法。 在另一个SO问题中 ,用户指出这是由于标签通常表示分类值。 仅在一层内将它们作为类标签提供给网络(灰度强度值)会带来困难。

但是,在另一篇博客文章中,作者解释说标签

“有时将[...]包装为灰度图像,其中像素强度表示类ID [...]。此方法可能是最容易使用的方法。它允许分发的文件较小,并且[ ...]一种Hot Vector表示比[灰度编码格式] [占用]更多的内存。”

我的硬件非常有限,我希望将标签编码为1层灰度张量,而不是n层(n是要分割的类的数量),将导致内存使用率降低。 但是,博客的作者随后还指出:

“即使您使用的深度学习框架将标签数据作为类ID接受(如[灰度格式],它也会将数据转换为幕后的一键编码)。”

这是否意味着根本就没有节省内存的方法?

如果值得的话,我将如何继续在数据集读取器中实现呢? 我也没有遇到过任何实施过的实施方式,其中实际上已经实施了灰度标记。 因此,我还要感谢任何使用灰度标签进行语义分割的实现的链接!

我正在使用PyTorch,我的代码基于此实现 ,区别在于我有3个要分割的类。

任何建议/链接,不胜感激!

这可以帮助您节省磁盘内存,因为您可以将标签和地面实况存储为灰度图像(宽度,高度,1),而不是更大的3D张量形状(宽度,高度,n)。 但是,在训练过程中,您将必须将灰度地面真值图像转换为3D张量才能训练网络。 因此,它不会帮助您减少进程的RAM成本。

如果确实需要减少RAM使用量,则可以减小训练批处理大小或图像大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM