【发布时间】:2020-08-05 12:48:01
【问题描述】:
我正在按照指南构建模型,以仅在 MNIST 数据集中的 0 和 1 之间进行分类。但是,他们建议选择 0/1 值的方法对我不起作用并引发错误。 这是我正在使用的代码:
from torch.utils.data import DataLoader
mnist_train = datasets.MNIST("./data", train=True, download=True, transform=transforms.ToTensor())
mnist_test = datasets.MNIST("./data", train=False, download=True, transform=transforms.ToTensor())
train_idx = mnist_train.train_labels <= 1
mnist_train.train_data = mnist_train.train_data[train_idx]
mnist_train.train_labels = mnist_train.train_labels[train_idx]
test_idx = mnist_test.test_labels <= 1
mnist_test.test_data = mnist_test.test_data[test_idx]
mnist_test.test_labels = mnist_test.test_labels[test_idx]
train_loader = DataLoader(mnist_train, batch_size = 100, shuffle=True)
test_loader = DataLoader(mnist_test, batch_size = 100, shuffle=False)
这是我运行它时得到的输出:
File "<ipython-input-2-aa7f63047cd9>", line 8, in <module>
mnist_train.train_data = mnist_train.train_data[train_idx]
AttributeError: can't set attribute
我也尝试过改变:
mnist_train.train_data = mnist_train.train_data[train_idx]
作者:
try:
mnist_train.train_data = mnist_train.train_data[train_idx]
except AttributeError:
mnist_train._train_data = mnist_train.train_data[train_idx]
并在每条此类语句中添加额外的“_”似乎可以解决问题,但后来在尝试训练模型时,我意识到它并没有只选择 0 和 1。有什么建议吗?
【问题讨论】:
标签: python machine-learning pytorch attributeerror mnist