HyperGCN代码复现

环境:python==3.6.7,torch==0.4,外加pyyaml。

问题1:TypeError: can't convert np.ndarray of type numpy.intc. The only supported types are: double, float, float16, int64, int32, and uint8.
解决办法:

复现结果:
 
带不带mediators好像正确率一模一样
 


下面对代码进行一些分析。

parse这个是用来解析命令行的命令参数的
HyperGCN代码复现_第1张图片
default这行设置了默认的配置文件路径,这个文件要用yaml语言编辑。
下一行::创建一个 configargparse.ArgParser 的实例,其中指定了配置文件解析器的类为 YAMLConfigFileParser,并设置了默认的配置文件路径为上一步中定义的 default
add()用于向命令行添加参数。


HyperGCN代码复现_第2张图片
这两部分似乎设计到python环境和gpu的设置,让一些随机种子保持一致(包括python中的哈希,硬件中总线的顺序等),方便实验的复现和对比实验的设置。

HyperGCN代码复现_第3张图片
读取数据。HyperGCN代码复现_第4张图片args.dataargs.dataset 是从命令行参数中获取的数据集名称和数据集类型。current获取了当前脚本的绝对路径。Dir 变量将包含当前脚本的目录路径。file构建了一个文件路径,包含数据集、数据集类型、拆分编号等信息,用于加载相应的拆分文件。最后,函数返回 dataset, train, test,其中包含解析的数据集对象以及训练集和测试集的拆分。

HyperGCN代码复现_第5张图片
初始化一个 HyperGCN 模型,并返回包含模型和优化器等详细信息的字典。

HyperGCN代码复现_第6张图片
训练和测试,输入包括初始化的模型,数据集。

你可能感兴趣的:(机器学习)