【问题标题】:MNIST object has no attribute dataMNIST 对象没有属性数据
【发布时间】:2019-06-08 18:09:00
【问题描述】:

我正在尝试运行下面给出的代码,但不幸的是我收到以下错误-“MNIST 对象没有属性数据”。错误是因为“mnist_train_set.data.view(-1, 1, 28, 28).float()”这一行。有人可以阐明如何解决这个问题吗?谢谢。

import torch
from torchvision import datasets

...

mnist_train_set = datasets.MNIST(data_dir + '/mnist/', train = True, download = True)
mnist_test_set = datasets.MNIST(data_dir + '/mnist/', train = False, download = True)

train_input = mnist_train_set.data.view(-1, 1, 28, 28).float()
train_target = mnist_train_set.targets
test_input = mnist_test_set.data.view(-1, 1, 28, 28).float()
test_target = mnist_test_set.targets

【问题讨论】:

    标签: mnist torchvision


    【解决方案1】:

    我遇到了同样的错误 - 这是一个 torchvision 版本问题。

    在当前版本的torchvision (0.4.0) 中,数据集的x 和y 属性分别称为“数据”和“目标”。

    在以前版本的 torchvision (0.3.0) 中,数据集 x 和 y 属性被称为“train_data”和“train_labels”,或“test_data”和“test_labels”(取决于您指定要加载的内容) .

    要修复您的代码,请使用最新的 torchvision 或将其更改为使用以前版本的属性名称。

    【讨论】:

      【解决方案2】:

      解决方案如下:data 使用 train_data 代替 train_input,train_labels 代替 train_target,test_data 代替test_input,test_labels 用于 test_target。我已经运行了以下代码,没有错误。

      train_input = mnist_train_set.train_data.view(-1, 1, 28, 28).float()
      train_target = mnist_train_set.train_labels
      test_input = mnist_test_set.test_data.view(-1, 1, 28, 28).float()
      test_target = mnist_test_set.test_labels
      

      【讨论】:

        猜你喜欢
        • 2021-05-14
        • 1970-01-01
        • 2016-11-03
        • 2015-02-01
        • 2020-12-11
        • 2021-08-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多