pytorch:将 FloatTensors 的元组转换为 numpy 数组
pytorch: Convert a tuple of FloatTensors into a numpy array
我刚得到一个带有 MNIST 数据的 torchvision.datasets 对象
train_dataset= dsets.MNIST(root='./data',train=True,transform=transforms.ToTensor(),download=True)
我想将这个元组转换成一组形状为 60000x28x28 和标签为 60000 的 numpy 数组
我知道提供数据的形式可以直接应用于 pytorch 神经元以用作训练数据,但我想将此数据转换为 numpy 数组。
我做的第一件事是用 zip(*train_dataset)
划分 (data,labels) 的元组
data,labels = zip(*train_dataset)
labels 很容易转换成一个 numpy 数组,但是我无法按照我想要的方式将 "data" 转换成一个 numpy 数组。当我尝试将所有数据转换为 numpy.array 之类的
data[:].numpy()
我收到一条错误消息,告诉我 'tuple' 对象没有属性 'numpy'。如果我将此数据 [:] 转换为 numpy,则只有第一个维度(60000 数据)被转换为 numpy.array,但其余部分仍保留为张量。
我可以使用循环转换所有数据(实际上我做到了)并且它有效,但是它真的很慢。有没有人做过这样的转换?
谢谢。
也许这样的东西对你有用:
train_dataset.train_data.numpy() #contains (60000, 28, 28) numpy array
train_dataset.train_labels.numpy() # contains labels
数据中好像有两个张量。您需要检查变量数据是否只包含一个张量,那么命令 tensor.numpy() 应该可以正常工作。
我刚得到一个带有 MNIST 数据的 torchvision.datasets 对象
train_dataset= dsets.MNIST(root='./data',train=True,transform=transforms.ToTensor(),download=True)
我想将这个元组转换成一组形状为 60000x28x28 和标签为 60000 的 numpy 数组
我知道提供数据的形式可以直接应用于 pytorch 神经元以用作训练数据,但我想将此数据转换为 numpy 数组。
我做的第一件事是用 zip(*train_dataset)
划分 (data,labels) 的元组data,labels = zip(*train_dataset)
labels 很容易转换成一个 numpy 数组,但是我无法按照我想要的方式将 "data" 转换成一个 numpy 数组。当我尝试将所有数据转换为 numpy.array 之类的
data[:].numpy()
我收到一条错误消息,告诉我 'tuple' 对象没有属性 'numpy'。如果我将此数据 [:] 转换为 numpy,则只有第一个维度(60000 数据)被转换为 numpy.array,但其余部分仍保留为张量。
我可以使用循环转换所有数据(实际上我做到了)并且它有效,但是它真的很慢。有没有人做过这样的转换?
谢谢。
也许这样的东西对你有用:
train_dataset.train_data.numpy() #contains (60000, 28, 28) numpy array
train_dataset.train_labels.numpy() # contains labels
数据中好像有两个张量。您需要检查变量数据是否只包含一个张量,那么命令 tensor.numpy() 应该可以正常工作。