是的,那是可能的。只需自己创建对象,例如
import torch.utils.data as data_utilstrain = data_utils.TensorDataset(features, targets)train_loader = data_utils.DataLoader(train, batch_size=50, shuffle=True)
其中,
features和
targets是张量。
features必须为2D,即矩阵,其中每行代表一个训练样本,并且
targets可以为1D或2D,具体取决于您要预测标量还是矢量。
希望有帮助!
编辑 :对@sarthak的问题的答复
基本上是。如果您创建了类型的对象
TensorData,则构造函数将调查特征张量(实际上称为
data_tensor)和目标张量(称为
target_tensor)的第一个维度是否具有相同的长度:
assert data_tensor.size(0) == target_tensor.size(0)
但是,如果您希望随后将这些数据馈入神经网络,则需要小心。虽然卷积层可以像您一样处理数据,但是(我认为)所有其他类型的层都希望数据以矩阵形式给出。因此,如果遇到这样的问题,那么一个简单的解决方案就是使用方法将4D数据集(例如,以某种张量给定
FloatTensor)转换为矩阵
view。对于您的5000xnxnx3数据集,它看起来像这样:
2d_dataset = 4d_dataset.view(5000, -1)
(该值
-1告诉PyTorch自动找出第二维的长度。)



