目录
Win10+cu10.1+Anaconda+jupyter运行《Learning Combinatorial Embedding Networks for Deep Graph Matching》源代码遇到一些问题,记录下来:
一.论文及源代码下载地址
论文下载:
(https://arxiv.org/abs/1904.00597)
相关代码:
(https://github.com/rogerwwww/PCA-GM)
二.调试问题处理
1. 直接运行train_eval.ipynb
在jupyter下拷贝train_eval.py代码并运行出现如下错误提示:
RuntimeError: Ninja is required to load C++ extensions
解决方法:
安装ninja,在“cmd”下执行pip install ninja,安装完成,执行ninja --version,打印1.9.0.git.kitware.dyndep-1.jobserver-1
2. 再次运行train_eval.ipynb
出现如下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd3 in position 1154: invalid continuation byte
解决方法:
代码最上面增加:# -*- coding: utf-8 -*-
再次运行错误消失。
3.导入 from sparse_torch import CSRMatrix3d
出现如下错误:
FileNotFoundError: [Errno 2] No such file or directory: 'extension/sparse_dot/sparse_dot.cpp'
原因:
sparse_dot = load(name='sparse_dot',
sources=['extension/sparse_dot/sparse_dot.cpp',
'extension/sparse_dot/csr_dot_csc_cuda.cu',
'extension/sparse_dot/csr_dot_diag_cuda.cu'],
extra_include_paths=[
'/usr/include/python{}.{}/'.format(sys.version_info.major, sys.version_info.minor)]
)
路径不对,win10下,路径为:项目路径/extension/sparse_dot/sparse_dot.cpp
解决方法:
sparse_dot = load(name='sparse_dot',
sources=[r"extension\sparse_dot\sparse_dot.cpp",
r"extension\sparse_dot\csr_dot_csc_cuda.cu",
r"extension\sparse_dot\csr_dot_diag_cuda.cu"],
extra_cflags=['-O2'],
verbose=True
)
或者修改成这样:
sparse_dot = load(name='sparse_dot',
sources=['extension\sparse_dot\sparse_dot.cpp',
'extension\sparse_dot\csr_dot_csc_cuda.cu',
'extension\sparse_dot\csr_dot_diag_cuda.cu'],
extra_cflags=['-O2'],
verbose=True
)
执行下面这一句时,
from data.data_loader import GMDataset, get_dataloader
打印:
Using C:\Users\lishe\AppData\Local\Temp\torch_extensions as PyTorch extensions root...
然后一直卡在这里,不会结束
【还在继续踩坑中,运行成功后开始分析源代码,会继续更新……】