我是深度学习和PyTorch的新手,所以如果一些问题看起来很愚蠢,或者我没有用正确的格式提问,请耐心等待。我看这个视频是作为深度学习:https://www.youtube.com/watch?v=8n-TGaBZnk4的PyTorch系列的一部分。这个视频是关于ETL的(使用Fashion-MNIST数据集)。我对7:05的视频有几个问题。
问题1:在Fashion-MNIST子类构造函数中,我们向它传递了参数:‘root’,其中讲师提到:这是磁盘中数据所在的位置。对不起,也许这是一个愚蠢的问题,但这是数据位于源服务器(从URL)磁盘上的位置,还是您希望将数据保存在本地计算机上的路径位置?
问题2:对于时尚MNIST,'root'是否总是相同的位置路径:即'./data/FashionMNIST'?
问题3:如果'root'定义了数据在源服务器上的位置路径,那么数据将在本地下载到哪里?我检查了我的'download'文件夹(我使用的是Windows7笔记本电脑),但在那里找不到文件?
问题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中抛出这个错误。
在此之前,非常感谢您。
发布于 2019-03-11 09:05:09
没有真正的问题是一个愚蠢的问题,一个接一个地回答问题:
答案1和2:
root是您本地磁盘上保存数据的路径,您可以根据自己的喜好指定ny路径,它不会造成问题。
答案3: urls等是在文件中定义的,数据的路径就是您所需要做的:为了查看urls,数据是从here is a link下载的。
答4 :如果数据不存在,download = True只是给它下载的许可,下载程序会自动检查数据是否已经存在,如果存在,它仍然不会下载,即使download设置为真,也是在后台发生的,你不必担心。
Ans5 :这个问题不是一个火炬问题,它更多的是关于它是如何在windows上编译的,这个问题在here & here中有详细的讨论
https://stackoverflow.com/questions/55093836
复制相似问题