DeepLearning

Results 46 comments of DeepLearning

第五章 P142 我之前是按照 P141页 输出显示了图片,然后文中说,用Dataloader 可以对一个batch的数据进行操作,然后我想通过 for循环 迭代data, 然后取a = batch_datas[0].shape,此时为[C , H, W], 然后按照书中再 * 0.2 + 0.4, 即 to_img = transforms.ToPILImage()(a * 0.2 + 0.4), to_img.show() 但运行出错,显示: to_img...

> > > 第五章 P142 我之前是按照 P141页 输出显示了图片,然后文中说,用Dataloader 可以对一个batch的数据进行操作,然后我想通过 for循环 迭代data, 然后取a = batch_datas[0].shape,此时为[C , H, W], 然后按照书中再 * 0.2 + 0.4, 即 to_img = transforms.ToPILImage()(a * 0.2 + 0.4),...

> > > > 第五章 P142 我之前是按照 P141页 输出显示了图片,然后文中说,用Dataloader 可以对一个batch的数据进行操作,然后我想通过 for循环 迭代data, 然后取a = batch_datas[0].shape,此时为[C , H, W], 然后按照书中再 * 0.2 + 0.4, 即 to_img = transforms.ToPILImage()(a * 0.2 +...

此处新增加一个容易忽略的报错点: 比如你的 image 是 torch.Size([4, 3, 224, 224]) torch.float64 torch.DoubleTensor 然后用 b = transforms.ToPILImage()(image[0],就是取某一张 [3, 224, 224] ) 此时报错: TypeError: Input type float64 is not supported。 解决方法: image[0] 转化为 torch.float32...

我都把这两句删掉了,百度了下,是linux系统,最好加这个,window无所谓

你的dataset 里面的transform 是不是用了三通道的归一化 mean=[0.5,0.5,0.5] std=[0.5,0.5,0.5]?

改成对单一通道归一化就好了。 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,)) ])

> > > 不太清楚为啥,,但是和pytorch版本有关,,,换成1.0.1 是没有问题的,亲测 > > > 不太清楚为啥,,但是和pytorch版本有关,,,换成1.0.1 是没有问题的,亲测 看我上面的,是因为你归一化用的是三个通道的

或者法二: 将单通道扩展为三通道: transform = transforms.Compose([ transforms.ToTensor(), transforms.Lambda(lambda x: x.repeat(3,1,1)), transforms.Normalize(mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5)) ])