Я не уверен, что именно относится к _
.Но часто полезно взглянуть на небольшой пример, чтобы увидеть, что на самом деле делает код:
Вот ваш загрузчик данных с размером пакета 2
и 2
обучающих примеров в наборе данных:
features = torch.tensor(np.array([ [1,2,3],[1,2,3] ]))
#print(features)
data_loader = torch.utils.data.DataLoader(features, batch_size=2, shuffle=True)
for j, (images) in enumerate(data_loader):
print(j, images)
Вывод:
0 tensor([[ 1, 2, 3],
[ 1, 2, 3]])
Итак, в вашем случае вы распаковали его, соответственно.разделите ваш тензор на (images, _)
:
t = torch.tensor([ [1,2,3],[1,2,3] ])
(images, _) = t
print('images:',images, '_:',_)
# prints:
# images: tensor([ 1, 2, 3]) _: tensor([ 1, 2, 3])
Это отлично работает для набора данных из двух примеров и размера пакета 2, потому что вы можете распаковать тензор.Однако, когда у вас есть 3
обучающих примеров в вашем наборе данных, последняя партия содержит только один пример:
features = torch.tensor(np.array([ [1,2,3],[1,2,3],[1,2,3]]))
#print(features)
data_loader = torch.utils.data.DataLoader(features, batch_size=2, shuffle=True)
for j, (images) in enumerate(data_loader):
print(j, images)
Вывод:
0 tensor([[ 1, 2, 3],
[ 1, 2, 3]])
1 tensor([[ 1, 2, 3]])
На этом этапе выполучите ошибку распаковки, потому что вы не можете разделить последнюю партию.Но, как предположил Шай, вы не используете никаких меток, поэтому, вероятно, вы хотите использовать совершенно другую настройку.
Но я надеюсь, что этот пример немного полезен!