我正在尝试使用来自的MNIST数据集 torchvision.datasets 。似乎是作为 N x H x W (uint8) (批量尺寸、高度、宽度)张量。用于处理图像的所有pytorch类(例如 Conv2d )但是需要一个 N x C x H x W (float32) 张量哪里 C ToTensor 变换,但没有添加颜色通道。
torchvision.datasets
N x H x W (uint8)
Conv2d
N x C x H x W (float32)
C
ToTensor
torchvision.transforms 要添加此附加维度吗?生的 tensor 我们可以这样做 .unsqueeze(1) 但这看起来不是一个非常优雅的解决方案。我只是想用“恰当”的方式来做。
torchvision.transforms
tensor
.unsqueeze(1)
import torchvision dataset = torchvision.datasets.MNIST("~/PyTorchDatasets/MNIST/", train=True, transform=torchvision.transforms.ToTensor(), download=True) print(dataset.train_data[0])
我有个误解: dataset.train_data 是 不 受指定的 transform ,只有 DataLoader(dataset,...) 将。检查后 data
dataset.train_data
transform
DataLoader(dataset,...)
data
for data, _ in DataLoader(dataset): break
我们看得出来 ToTensor