Pytorch 低端错误笔记

  1. ValueError: Expected input batch_size (16) to match target batch_size (4).
    原因:之前用的数据集输入尺寸为batch*3*32*32,每张图片尺寸为3*32*32,现在的是3*64*64,因此需要修改网络输入尺寸,否则Pytorch会将输入resize到原来的3*32*32,以新的数据集为3*64*64来说,就会将一个输入resize成4个,得到4*batch*3*32*32的Tensors,因此batchsize也会产生错误,变为原来的4倍,也就是target的4倍。
    对于我来说,我用了transforms的RandomCrop。
#Define transformations for the training set, flip the images randomly, crop out and apply mean and std normalization
train_transformations = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    #transforms.RandomCrop(32,padding=4),
    transforms.ToTensor(),
    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])

image_datasets_train =CreateImageDataset(img_path='../creat-samples/classify_data/train',
                                        txt_path=('../creat-samples/classify_data/train/class_train.txt'),
                                        data_transforms=train_transformations
                                        )
print(image_datasets_train)

#Define transformations for the test set
test_transformations = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomCrop(32,padding=4),
    transforms.ToTensor(),
    transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])

image_datasets_val =CreateImageDataset(img_path='../creat-samples/classify_data/val',
                                        txt_path=('../creat-samples/classify_data/val/class_val.txt'),
                                        data_transforms=test_transformations
                                        )
print(image_datasets_val)

Pytorch 低端错误笔记_第1张图片2. BrokenPipeError: [Errno 32] Broken pipe
原因:自定义数据集导致num_worker参数无法使用。使用自定义数据集后,用dataloder加载导致的。尚未找到解决办法。
Pytorch 低端错误笔记_第2张图片
3. RuntimeError: cuda runtime error (59) : device-side assert triggered at XXX
在多分类问题中,网络分类输出数目少于label类型数目,因此导致索引溢出。修改网络输出即可。

  1. RuntimeError: CUDA out of memory. Tried to allocate 1000.00 MiB (GPU 0; 11.00 GiB total capacity; 7.66 GiB already allocated; 960.32 MiB free; 99.88 MiB cached)
    训练的时候,batch size 选的太大了,GPU的内存耗尽。

你可能感兴趣的:(Pytorch)