ValueError:unknown file extension

先说结论:+“.jpg” 可能是忘记加j字母左下角的点了。
报错位置:在保存图片时候发生报错。

	  pre_color_image = ToPILImage()(pre_colors.squeeze())
      label_name = '/home/Projects/ZQB/RFNet-master/image/'
      pre_color_image.save(os.path.join(label_name,img)+".jpg")

短短的三行代码有数不清的报错方式。
1:首先看第一行,pre_colors是模型的输出,我们知道输出的大小为(B,C,H,W),如果验证时候batch=1,不将batch维度进行压缩,或者pre_colors[0],那么就会报错"except 2/3 dimension but got 4 dimension"。
2:第二行,给出保存图片的路径,如果给出的路径为:label_name = ‘/home/Projects/ZQB/RFNet-master/image’,这样在生成的图片时候只会生成一张图片(后面的图片将前面的图片覆盖了),我们目的是在image文件夹下生成不同的.jpg图片。所以在image后面一定要加/,表示前面的是一个文件夹。
3:第三行,为了防止后面图片将前面图片覆盖掉,那么在循环时候img就不能是一样的。举例来说:
每次读入的cityscapes图片名称是不一样的,**所以可以将.png前面的名称单独拎出来。**通过split函数将前面的路径去除掉。

 image_name=('/home/Projects/Datasets/cityscapes/leftImg8bit/val/frankfurt/frankfurt_000000_000294_leftImg8bit.png',)
 img = image_name[0].split('/')[-1].split('.')[0]

这里的img必须是str或者byte,我之前想通过循环时候的序号i作为img。就会报错:
在这里插入图片描述
所以最好还是按上述的将图片名字单独抠出来。
除此以外我们还要对图片添加后缀,假设后缀是jpg格式。但是又报错了:
在这里插入图片描述
搜了一下,解释什么路径错误等。但是仔细看一下报错内容:未知的文件拓展。就是jpg格式哪里有问题。
看了好一会才发现:+“jpg"忘记加点了,正确的为+”.jpg"。不细心导致的错误,浪费了很多时间。
正确保存后:
ValueError:unknown file extension_第1张图片

你可能感兴趣的:(pytorch踩坑,python,人工智能)