Данные тензора Pytorch нарушаются, когда я конвертирую тензор загрузчика данных в массив numpy

Я использую простой цикл обучения для задачи регрессии. Чтобы убедиться, что регрессионные истинные значения совпадают с теми, которые я ожидаю в цикле обучения, я решил нанести на график каждый пакет данных. Однако я вижу, что когда я конвертирую тензор загрузчика данных в пустой массив и рисую его, он нарушается. Я использую myTensor.data.cpu().numpy() для преобразования.

Мой код выглядит следующим образом:

train_ds = TensorDataset(x_train, y_train)
train_dl = DataLoader(train_ds, batch_size = 32, shuffle = True, num_workers = 0, drop_last = True)


for epoch in range(epochs):
  model.train()
for i, (x, y) in enumerate(train_dl):
  x = x.cuda()
  y = y.cuda()
  yy = y.data.cpu().numpy()
  pyplot.plot(yy[0: 32, 0])
  pyplot.show()

введите здесь описание изображения


person BenyaminH    schedule 29.02.2020    source источник


Ответы (1)


Я думаю, это потому, что я установил shuffle = True в загрузчике данных. Если я установлю значение false, все в порядке. Однако, как я могу перетасовать тренировочные пакеты после каждой эпохи, если тогда я установил shuffle = False в загрузчике данных?

person BenyaminH    schedule 29.02.2020