Machine learning 如何随机洗牌Pytorch数据集的标签?

Machine learning 如何随机洗牌Pytorch数据集的标签?,machine-learning,computer-vision,dataset,pytorch,Machine Learning,Computer Vision,Dataset,Pytorch,我是Pytorch的新手,在一些技术问题上遇到了麻烦。我已使用以下命令下载了MNIST数据集: train_dataset = dsets.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True) 我现在需要在这个数据集上

我是Pytorch的新手,在一些技术问题上遇到了麻烦。我已使用以下命令下载了MNIST数据集:

train_dataset = dsets.MNIST(root='./data', 
                            train=True, 
                            transform=transforms.ToTensor(),
                            download=True)
我现在需要在这个数据集上运行一些实验,但是使用随机标签。我如何随机洗牌/重新分配它们

我试图手动执行此操作,但它告诉我“'tuple'对象不支持项分配”。那我怎么做呢

第二个问题:如何从数据集中删除训练点?当我尝试这样做的时候,它给了我同样的错误


谢谢

如果只想洗牌目标,可以使用参数。例如:

train_dataset=dsets.MNIST(根='。/data',
火车=真的,
transform=transforms.ToTensor(),
target_transform=lambda y:torch.randint(0,10,(1,)).item(),
下载=真)
如果您想对数据集进行更精细的调整, 你可以完全包起来

类MyTwistedMNIST(torch.utils.data.Dataset):
定义初始化(self,my_args):
超级(MyTwistedMNIST,self)。\uuuu init\uuuu()
self.orig_mnist=dset.mnist(…)
定义uu获取项目uu(自身,索引):
x、 y=self.orig_mnist[索引]#获取原始项
my_x=#更改输入数字图像x?
my_y=#更改原始标签y?
归还我的x,我的y
定义(自我):
返回self.orig\u mnist.\uuu len\uuu()

如果您希望完全丢弃原始mnist中的某些元素,而不是通过环绕原始mnist,则您的
MyTwistedMNIST
类可以返回小于
self.orig\mnist的
len
。\uu len\uuu()
以反映您想要处理的实际mnist示例的数量。此外,您需要将示例的新
索引
映射到原始mnist索引。

您所说的“删除训练点”是什么意思?我希望在59999上训练,而不是在60000个元素上训练,并保持最后一个元素未经训练