可以在定义dataloader时将drop_last参数设置为True,这样最后一个batch如果数据不足时就会被舍弃,而不会报错。例如:
dataloader = torch.utils.data.DataLoader(dataset, batch_size=batch_size, drop_last=True)
另外,也可以在数据集的 len 函数中返回整除batch_size的长度来避免最后一个batch报错。
TextCNNDataSet = TextCNNDataSet(np.array(tranin_data_matrx), list(train_text_data_label))
train_size = int(len(tranin_data_matrx) * 0.8)
test_size = len(tranin_data_matrx) - train_size
train_dataset, test_dataset = torch.utils.data.random_split(TextCNNDataSet, [train_size, test_size])
TrainDataLoader = Data.DataLoader(train_dataset, batch_size=Batch_Size, shuffle=True,drop_last=True)
TestDataLoader = Data.DataLoader(test_dataset, batch_size=Batch_Size, shuffle=True,drop_last=True)