用UNet做PASCAL VOC2012图像分割

UNet教学视频

https://www.bilibili.com/video/BV11341127iK/?spm_id_from=333.337.search-card.all.click
Pytorch实现UNet代码已经足够了,看UNet的结构示意图也足够了

PASCAL VOC2012数据集简介

https://blog.csdn.net/qq_37541097/article/details/115787033
刚好简介了图像分割任务和其它视觉任务的基本概念

调试代码的问题记录

  • 我对原始代码稍微修改,增加了大量注释,欢迎关注收藏点赞github
    https://github.com/ningmengzhihe/UNet.git

  • CUDA Out of Memory

试着调小batch_size

data_loader = DataLoader(MyDataset(data_path), batch_size=8, shuffle=True)
  • 打印出来的图片不一样?

具体描述是这样的:程序设置了每个epoch里边每隔50个batch记录当前batch的第一张(原始图片、正确分割结果、当前算法分割结果)图片对拼接,保存文件名称是epoch_batch.png,那么是不是0_0.png1_0.png图片是同一张图片呢?

如果shuffle设置成True,那么0_0.png和1_0.png不是同一张图片,可能是shuffle设置成了随机的原因,如下图所示:

data_loader = DataLoader(MyDataset(data_path), batch_size=8, shuffle=True)

用UNet做PASCAL VOC2012图像分割_第1张图片

如果shuffle设置成False,那么0_0.png和1_0.png是同一张图片了,可能是限制了每个batch中图片的顺序固定不变,如下图所示

data_loader = DataLoader(MyDataset(data_path), batch_size=8, shuffle=False)

用UNet做PASCAL VOC2012图像分割_第2张图片

今天的分享就到这里了,感兴趣的小伙伴快来点赞、收藏、转发哟

你可能感兴趣的:(python,深度学习,人工智能,深度学习,计算机视觉,python,pytorch)