PyTorch 时尚-MNIST (ETL)

PyTorch Fashion-MNIST (ETL)

我是深度学习和 PyTorch 的新手,所以如果有些问题看起来很愚蠢或者我问的格式不正确,请多多包涵。 我正在观看这个视频作为 PyTorch 深度学习系列的一部分:https://www.youtube.com/watch?v=8n-TGaBZnk4。该视频专门介绍了 ETL(使用 Fashion-MNIST 数据集)。 我对 7:05.

上的视频有几个问题

问题 1:在 Fashion-MNIST 子类构造函数中,我们将参数传递给它: ‘root’,其中讲师提到:这是磁盘中数据所在的位置。抱歉,这可能是一个愚蠢的问题,但这是数据位于源服务器(来自 URL)磁盘上的位置,还是您要在本地计算机上保存数据的路径位置?

问题 2:同样对于 Fashion-MNIST,'root' 总是相同的位置路径:即 './data/FashionMNIST'

问题3:如果'root'定义了数据在源服务器上的位置路径,那么会下载到本地哪里呢?我检查了我的 'download' 文件夹(我使用的是 Windows 7 笔记本电脑),但在那里找不到文件?

问题 4:视频提到我们应该在后续调用中检查数据是否已经下载(即在参数中我们传递 download=true)。

4(a):执行此操作的好方法是什么?我们是否放置 if 语句来检查这一点?或者是否有更智能的方法来检查下载的数据?

4(b):另外,"subsequent calls" 是什么意思?这是否意味着我们需要为 test_data 下载再次调用 'FashionMNIST' 构造函数?

问题 5:最后,我在 Spyder IDE (Python 3.5) 上尝试 运行 下面的代码(视频中的代码):

import torch
import torchvision
import torchvision.transforms as transforms

train_set = torchvision.datasets.FashionMNIST(
      root='./data/FashionMNIST'
        ,train=True
        ,download=True
        ,transform=transforms.Compose([
            transforms.ToTensor()
        ])                                            
  )

我得到了输出:

Traceback (most recent call last):

  File "<ipython-input-3-3ac000b9e90a>", line 10, in <module>
    transforms.ToTensor()

  File "C:\Program Files\Anaconda3\lib\site-packages\torchvision\datasets\mnist.py", line 68, in __init__
    self.download()

  File "C:\Program Files\Anaconda3\lib\site-packages\torchvision\datasets\mnist.py", line 136, in download
    makedir_exist_ok(self.raw_folder)

  File "C:\Program Files\Anaconda3\lib\site-packages\torchvision\datasets\utils.py", line 41, in makedir_exist_ok
    os.makedirs(dirpath)

  File "C:\Program Files\Anaconda3\lib\os.py", line 241, in makedirs
    mkdir(name, mode)

FileNotFoundError: [WinError 206] The filename or extension is too long: './data/FashionMNIST\FashionMNIST\raw'

不确定为什么最后会出现该错误。此外,根据视频,我 运行 Jupyter Notebook 上的代码运行良好。但我想知道为什么它会在 Spyder IDE.

中引发该错误

非常感谢。

没有真题就是傻问题,一一答题:

答案 1 和 2:

root 是本地磁盘上保存数据的路径,您可以根据自己的喜好指定任何路径,这不会造成问题。

答案 3: url 等在文件中定义,数据的路径就是您需要做的所有事情:为了查看下载数据的 url here is a link.

Ans 4. : download = True只是允许下载 如果数据不存在下载器会自动检查数据是否已经存在,如果存在仍然不会下载,即使下载设置为 true,它再次发生在后台,您不必担心它。

Ans5:这个问题不是 torch 问题,它更多地与它在 windows 中的编译方式有关,这个问题被详细讨论 here & here