PyTorch Fashion-MNIST(ETL)

时间:2019-03-11 00:35:56

标签: python-3.x deep-learning mnist torchvision

我是深度学习和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"的含义是什么?这是否意味着我们需要再次调用'FashionMNIST'构造函数进行test_data下载?

问题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 个答案:

答案 0 :(得分:1)

没有一个真正的问题是一个愚蠢的问题,一个又一个地回答问题:

答案1和2:

root是本地磁盘上将保存数据的路径,您可以根据自己的喜好指定ny路径,这样不会引起问题。

答案3: 网址等是在文件中定义的,数据的路径就是您所要做的:为了查看从here is a link下载数据的网址。

答案4.:download = True仅授予其如果数据不存在的下载权限,下载器将自动检查数据是否已存在,如果存在,即使设置了下载,它仍然不会下载确实,它再次发生在您不必担心的背景中。

Ans5:该问题并不是火炬问题,它与Windows中的编译方式有更多关系,讨论问题的长度为herehere