我正在嘗試分割 CIFAR10 的訓(xùn)練數(shù)據(jù),因此訓(xùn)練集的最后 5000 個(gè)用于驗(yàn)證。我的代碼size = len(CIFAR10_training)dataset_indices = list(range(size))val_index = int(np.floor(0.9 * size))train_idx, val_idx = dataset_indices[:val_index], dataset_indices[val_index:]train_sampler = SubsetRandomSampler(train_idx)val_sampler = SubsetRandomSampler(val_idx)train_dataloader = torch.utils.data.DataLoader(CIFAR10_training, batch_size=config['batch_size'], shuffle=False, sampler = train_sampler)valid_dataloader = torch.utils.data.DataLoader(CIFAR10_training, batch_size=config['batch_size'], shuffle=False, sampler = val_sampler)print(len(train_dataloader.dataset),len(valid_dataloader.dataset),但最后一個(gè)打印語句打印 50000 和 10000。當(dāng)我打印 train_idx 和 val_idx 時(shí),它不應(yīng)該是 45000 和 5000 它打印正確的值([0:44999],[45000:49999] 我的代碼有什么問題嗎
1 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
我無法復(fù)制您的結(jié)果,當(dāng)我執(zhí)行您的代碼時(shí),打印語句輸出相同數(shù)字的兩倍:train_CIFAR10
valid_dataloader
CIFAR10_test
(50000, 50000)
train_dataloader.dataset
valid_dataloader.dataset
CIFAR10_training
您不能要求len(train_dataloader)
45000/batch_size
如果您需要知道分割的大小,那么您必須計(jì)算采樣器的長(zhǎng)度:
print(len(train_dataloader.sampler), len(valid_dataloader.sampler))
除此之外,您的代碼很好,您正確地分割了數(shù)據(jù)。
- 1 回答
- 0 關(guān)注
- 134 瀏覽
添加回答
舉報(bào)
0/150
提交
取消