Skip to content

Euler 2.0 快速开始

origin edited this page Jun 30, 2020 · 3 revisions

本章的章节安排如下:

在项目的根目录下的example中有多种图模型的算法实现,下面我们以算法graphsage,数据集cora为例子介绍如何快速上手euler.

数据准备

在训练模型之前,我们需要准备符合euler2.0格式的数据(详见Euler-2.0 数据准备)。euler2.0提供了常用的数据集下载和格式转换的python脚本,详见这里。 用户可以通过以下python代码加载数据,以加载cora为例:

import tf_euler
euler_graph = tf_euler.dataset.get_dataset('cora')
euler_graph.load_graph()

模型训练

cd examples/graphsage

python run_graphsage.py

模型评估

python run_graphsage.py --run_mode evaluate

Embedding导出

首先运行

python run_graphsage.py --run_mode infer

之后当前目录的 ckpt/embedding_0.npy 文件就是embedding文件 当前目录的 ckpt/ids_0.npy 文件就是node id文件 读取npy文件的方式

import numpy as np

with open('ckpt/embedding_0.npy', 'rb') as emb_f:
  embedding = np.load(emb_f)  # 每个节点id对应的embedding
with open('ckpt/ids_0.npy', 'rb') as id_f:
  idx = np.load(id_f)  # 所有的节点id
print idx  # 所有的节点id
print embedding  # 每个节点id对应的embedding

KNN近邻检索

  • 产生embedding,(由Embedding导出得到)

  • 产生你需要查询的向量文件,这里为query.txt, 每个向量一行,向量各维之间以逗号分隔

 python knn/knn.py --embedding_file ckpt/embedding_0.npy --id_file ckpt/ids_0.npy --query_file query.txt

该命令会产生每个query的top10近邻,结果会输出到一个本地的pickle文件result.pkl, 包含id和距离。

Clone this wiki locally