Python 3.x PyTorch时尚MNIST(ETL)

Python 3.x PyTorch时尚MNIST(ETL),python-3.x,deep-learning,mnist,torchvision,Python 3.x,Deep Learning,Mnist,Torchvision,我是深度学习和PyTorch的新手,所以如果有些问题看起来很愚蠢或者我没有以正确的格式提问,请务必容忍我。 我是作为PyTorch深度学习系列的一部分观看这段视频的。本视频专门介绍ETL(使用Fashion MNIST数据集)。 我在7:05的视频中有几个问题 问题1:以MNIST子类构造函数的方式,我们将参数传递给它: “root”,其中讲师提到:这是磁盘中数据所在的位置。抱歉,这可能是一个愚蠢的问题,但这是数据位于源服务器(URL)磁盘上的位置,还是您希望在本地计算机上保存数据的路径位置 问

我是深度学习和PyTorch的新手,所以如果有些问题看起来很愚蠢或者我没有以正确的格式提问,请务必容忍我。 我是作为PyTorch深度学习系列的一部分观看这段视频的。本视频专门介绍ETL(使用Fashion MNIST数据集)。 我在7:05的视频中有几个问题

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

问题2:Fashion MNIST的
'root'
位置路径是否始终相同:即
'./data/FashionMNIST'

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

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

4(a):做这件事的好方法是什么?我们是否准备了一个
if
语句来检查这一点?或者有没有更智能的方法来检查下载的数据

4(b):还有
“后续调用”是什么意思?这是否意味着我们需要再次调用
'fashionList'
构造函数来下载测试数据

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

我得到了输出:

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'
回溯(最近一次呼叫最后一次):
文件“”,第10行,在
transforms.ToTensor()
文件“C:\Program Files\Anaconda3\lib\site packages\torchvision\datasets\mnist.py”,第68行,在__
self.download()
下载文件“C:\Program Files\Anaconda3\lib\site packages\torchvision\datasets\mnist.py”,第136行
makedir\u存在\u确定(self.raw\u文件夹)
文件“C:\Program Files\Anaconda3\lib\site packages\torchvision\datasets\utils.py”,第41行,makedir\u exist\u ok
os.makedirs(dirpath)
makedirs中的文件“C:\Program Files\Anaconda3\lib\os.py”,第241行
mkdir(名称、模式)
FileNotFoundError:[WinError 206]文件名或扩展名太长:'./data/FashionMNIST\\FashionMNIST\\raw'
不知道为什么我最后会犯那个错误。此外,根据视频,我在Jupyter笔记本上运行了代码,效果很好。但我想知道为什么它会在Spyder IDE中抛出这个错误


非常感谢。

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

答复1和2:

root
是本地磁盘上保存数据的路径,您可以根据自己的喜好提供ny路径,这样不会造成问题

答复3: URL等是在文件中定义的,数据的路径是您所需要做的全部:以便查看从何处下载数据的URL

答复4:
download=True
只允许它下载数据,如果数据不存在,下载程序会自动检查数据是否已经存在,如果数据存在,它仍然不会下载,即使下载设置为True,它也会在后台发生,您不必担心


回答5:这个问题并不是一个火炬问题,它更多的是关于如何在windows上编译的问题,这个问题被详细讨论了&

非常感谢您的回答。对于答案1,如果root是本地计算机中保存数据的位置,那么Windows 7(64位)中的路径
'./data/fashionList'
将保存在哪里?例如,目录路径是什么(例如,在桌面、我的文档等中)?对于答案3,我认为有一点误解。所以我的问题是,数据将保存在哪里,而不是从哪里获取数据。所以这个问题和我在回答1之后问的问题差不多。对于回答5,这是有意义的。这是因为保存文件的路径(包括文件名)太长,无法保存在Windows文件系统规则中。但为什么这在Jupyter笔记本中起作用?Jupyter不是也在Windows操作系统上本地保存
.py
文件吗?或者可能是因为Jupyter实际上是在虚拟机或浏览器上编译程序,而不是直接在Windows操作系统上编译程序?@Hazzaldo In Linux
/data/
表示您正在创建一个执行文件的目录,因此,例如,如果您在文档中有.ipynb文件,它将在文档本身中创建一个目录数据。在Windows中,你也可以看到最上面部分的路径,如
localhost:8888/Documents/
Great,即使我尝试了一个较长的路径到我想要的实际文件夹,它仍然有效:
r'C:\Users\username\Desktop\Machine Learning a-Z course\PyTorch\data'
。顺便说一句,感谢开头的
r
,为我节省了时间,让我明白为什么会因为Unicode而发生错误。遗憾的是,它似乎不能仅与
一起工作。\data\FMNIST\'
。因为这样做可以使代码更具可移植性,而不必每次都更改路径(并且无论源python文件存储在哪里,
\data
都会被创建)。我想Windows有时只是编码不方便。非常感谢你的帮助。这条线真的很有用。我也有同样的问题。在Mac中,我将“/data/minimagenet”更改为完整路径。
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'