场景
使用PyG导入GemsecDeezer:
dataset = GemsecDeezer(root='data/GemsecDeezer', name='HU')
报错代码
Downloading https://graphmining.ai/datasets/ptg/gemsec\HU.npz
https://graphmining.ai/datasets/ptg/gemsec\HU.npz
Traceback (most recent call last):
File "test.py", line 22, in <module>
dataset = GemsecDeezer(root='data/GemsecDeezer', name='HU')
File "F:\Anaconda3\lib\site-packages\torch_geometric\datasets\gemsec.py", line 40, in __init__
super().__init__(root, transform, pre_transform)
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\in_memory_dataset.py", line 57, in __init__
super().__init__(root, transform, pre_transform, pre_filter)
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\dataset.py", line 85, in __init__
self._download()
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\dataset.py", line 146, in _download
self.download()
File "F:\Anaconda3\lib\site-packages\torch_geometric\datasets\gemsec.py", line 60, in download
download_url(osp.join(self.url, self.name + '.npz'), self.raw_dir)
File "F:\Anaconda3\lib\site-packages\torch_geometric\data\download.py", line 35, in download_url
data = urllib.request.urlopen(url, context=context)
File "F:\Anaconda3\lib\urllib\request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "F:\Anaconda3\lib\urllib\request.py", line 531, in open
response = meth(req, response)
File "F:\Anaconda3\lib\urllib\request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "F:\Anaconda3\lib\urllib\request.py", line 569, in error
return self._call_chain(*args)
File "F:\Anaconda3\lib\urllib\request.py", line 503, in _call_chain
result = func(*args)
File "F:\Anaconda3\lib\urllib\request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found
Process finished with exit code 1
解决
代码提示url不存在,查看PyG中源码:
def download(self):
download_url(osp.join(self.url, self.name + '.npz'), self.raw_dir)
输出url:
print(osp.join(self.url, self.name + '.npz'))
https://graphmining.ai/datasets/ptg/gemsec\HU.npz
将url中的\换成/即可:
def download(self):
download_url(osp.join(self.url, self.name + '.npz').replace('\\', '/'), self.raw_dir)