UserWarning: train_data has been renamed data
warnings.warn("train_data has been renamed data")
UserWarning: train_labels has been renamed targets
warnings.warn("train_labels has been renamed targets")
UserWarning: test_data has been renamed data
warnings.warn("test_data has been renamed data")
UserWarning: test_labels has been renamed targets
warnings.warn("test_labels has been renamed targets")
按照提示把train_data和test_data改成data,把train_labels和test_labels改成targets即可解决。
这里有点我没想清楚的地方是,data和targets里是怎么区分train和test的?想清楚了再来补充
想清楚了,来更新一下:
我这里的代码是
X_train = train_loader.dataset.data.numpy() y_train = train_loader.dataset.targets.numpy() X_test = test_loader.dataset.data[:1000].numpy() y_test = test_loader.dataset.targets[:1000].numpy()
test_loader和train_loader又是哪里来的呢?
# MNIST dataset
train_dataset = dsets.MNIST(root = '/ml/pymnist', #选择数据的根目录
train = True, # 选择训练集
transform = None, #不考虑使用任何数据预处理
download = True) # 从网络上download图片
test_dataset = dsets.MNIST(root = '/ml/pymnist', #选择数据的根目录
train = False, # 选择测试集
transform = None, #不考虑使用任何数据预处理
download = True) # 从网络上download图片
#加载数据
train_loader = torch.utils.data.DataLoader(dataset=train_dataset,
batch_size=batch_size,
shuffle=True)
test_loader = torch.utils.data.DataLoader(dataset=test_dataset,
batch_size=batch_size,
shuffle=True)
train_loader里用的dataset是train_dataset,而test_loader里用的dataset是test_dataset,两个dataset在定义时使用的是训练集和测试集,所以要区分data和targets是属于train还是test只要看前面的loader是train还是test就知道了!



