PIL_im = Image.fromarray(np.uint8(img))
PIL_att = Image.fromarray(np.uint8(one_map)).convert('RGB')
运行一部分之后报错
TypeError: Cannot handle this data type: (1, 1, 6), |u1
第一个解决方案
PIL需要的格式是(W,H,C),而数据集的格式是(C,W,H)所以要进行转换,把(C,W,H)变为(W,H,C)
把最上边两行代码改成
PIL_im = Image.fromarray(np.uint8(img.transpose(1,2,0)))
PIL_att = Image.fromarray(np.uint8(one_map.transpose(1,2,0))).convert('RGB')
这个方法我的程序多运行了一步。。希望的花花就这么没有了
第二个方案
有的人说python2.7版本解决了这个问题,我换成2.7版本运行的确是解决了这个问题,但是会出现满屏幕警告,影响运行速度
警告:UserWarning: masked_fill_ received a mask with dtype torch.uint8, this behavior is now deprecated,please use a mask with dtype torch.bool instead.
解决方案:(原文:https://github.com/microsoft/IRNet/issues/5)
change the return of
length_array_to_mask_tensor()
/
table_dict_to_mask_tensor()
/
pred_col_mask()
from
mask = torch.ByteTensor(mask)
to
mask = torch.BoolTensor(mask)
.