保存添加噪声的 MNIST 数据集
Save MNIST dataset with added noise
我想在添加噪声后保存新的 MNIST 数据集张量。
mnist_trainset = datasets.MNIST(root='./data', train=True, download=True, transform=transforms.ToTensor())
def add_noise(dataset):
for data in dataset:
img, _ = data[0], data[1]
noisy_data = torch.tensor(random_noise(img, mode='gaussian', mean=0, var=0.05, clip=True))
return noisy_data
train_gauss = add_noise(mnist_trainset)
上面的代码只保存了一张MNIST数据集的图像,如何一次保存所有张量?
您的 return
在 for 循环内,因此在第一次迭代结束时它已经 return 是 noisy_data
。
您应该将其从 for 循环中取出,然后您可以使用一个列表一次 return 整个数据集,如下所示:
mnist_trainset = datasets.MNIST(root='./data', train=True, download=True, transform=transforms.ToTensor())
def add_noise(dataset):
noisy_data = []
for data in dataset:
img, _ = data[0], data[1]
noisy_data += torch.tensor(random_noise(img, mode='gaussian', mean=0, var=0.05, clip=True))
return noisy_data
train_gauss = add_noise(mnist_trainset)
我想在添加噪声后保存新的 MNIST 数据集张量。
mnist_trainset = datasets.MNIST(root='./data', train=True, download=True, transform=transforms.ToTensor())
def add_noise(dataset):
for data in dataset:
img, _ = data[0], data[1]
noisy_data = torch.tensor(random_noise(img, mode='gaussian', mean=0, var=0.05, clip=True))
return noisy_data
train_gauss = add_noise(mnist_trainset)
上面的代码只保存了一张MNIST数据集的图像,如何一次保存所有张量?
您的 return
在 for 循环内,因此在第一次迭代结束时它已经 return 是 noisy_data
。
您应该将其从 for 循环中取出,然后您可以使用一个列表一次 return 整个数据集,如下所示:
mnist_trainset = datasets.MNIST(root='./data', train=True, download=True, transform=transforms.ToTensor())
def add_noise(dataset):
noisy_data = []
for data in dataset:
img, _ = data[0], data[1]
noisy_data += torch.tensor(random_noise(img, mode='gaussian', mean=0, var=0.05, clip=True))
return noisy_data
train_gauss = add_noise(mnist_trainset)