将 pytorch 数据加载器拆分为 numpy 数组

Splitting pytorch dataloader into numpy arrays

原则上我想做与此处相反的事情 https://datascience.stackexchange.com/questions/45916/loading-own-train-data-and-labels-in-dataloader-using-pytorch

我有一个形状为 (2000,3) 的 Pytorch 数据加载器 train_dataloader。我想将 3 个数据加载器列存储在 3 个单独的 numpy 数组中。 (数据加载器的第一列包含数据,第二列包含标签。)

我设法为最后一批 train_dataloader 做到了(见下文),但不幸的是无法让它在整个 train_dataloader.

中发挥作用
for X, y, ind in train_dataloader:
    pass

train_X = np.asarray(X, dtype=np.float32)
train_y = np.asarray(y, dtype=np.float32)

非常感谢任何帮助!

您可以收集所有数据:

all_X = []
all_y = []
for X, y, ind in train_dataloader:
  all_X.append(X)
  all_y.append(y)
train_X = torch.cat(all_X, dim=0).numpy()
train_y = torch.cat(all_y, dim=0).numpy()