这个错误,提示的很明显说是值存在问题。
但是对于我的项目而言,我多次重复实验对比核对,自己的num_classes值并没有设置错误,然后我开始逐步的debug代码,错误是在one_hot处发生的。
我这边Model的原始数据是可以正常运行的,但是更换成自己的数据集之后出现了这个问题,很明显问题出在了数据集上,我多次以为是图片标注问题,对比两张图片数组的数据没有发现异常,我在matlab中读取两张图片后,在工作区发现了问题所在,我自己的数据集是logical而作者提供的数据集是uint8.也就是图片的位深不对,我自己的数据集图片位深是1,要求是8.把图片深度更改一下,问题解决。没想到很让人头疼的问题竟然是因为这个一个小小的原因,浪费了这么长时间,做下踩坑记录!附带转换图片深度的代码
from PIL import Image
import numpy as np
import cv2
import os
img = Image.open(r'./data/masks/W0001_0001_mask.png')
img_array = np.array(img)
img = Image.fromarray(np.uint8(img_array))
img.save(r'./01.png')