Skip to content

使用指南

Siran Yang edited this page Jul 9, 2019 · 5 revisions

本节介绍Euler图学习算法包tf_eulr的用法,用户将Euler的图数据准备好之后,可以使用命令行直接进行模型的训练,评估,和embedding导出。

基本用法

python -m tf_euler --data_dir <data_dir> --mode <mode> [flags]
  • --data_dir,指定图数据位置,必须;
  • --mode,指定运行模式:train / evaluate / save_embedding,默认值为train;

数据选项

  • --train_node_type,训练集顶点类型,默认0;
  • --all_node_type,全集顶点类型,默认-1;
  • --train_edge_type,训练集边类型,默认[0];
  • --all_edge_type,全集边类型,默认[0, 1];
  • --max_id,图中最大的顶点id,必须;
  • --feature_idx,稠密特征的编号,使用稠密特征必须;
  • --feature_dim,稠密特征维度,使用稠密特征必须;
  • -—label_idx,label在稠密特征中的编号,监督模型必须;
  • --label_dim,label在稠密特征中的维度,监督模型必须;
  • --num_classes,分类个数,label为标量时必须;
  • --id_file,测试集id文件,一行一个id,evaluate必须;

训练选项

  • --model_dir,checkpoint路径,默认ckpt;
  • --batch_size,batch size,默认512;
  • --optimizer,优化器,默认adam;
  • --learning_rate,学习率,默认0.01;
  • --num_epochs,训练顶点轮数,默认10;
  • --log_steps,日志打印间隔步数,默认20;

模型选项

  • --model,模型名称,支持line / randomwalk / graphsage / graphsage_supervised / scalable_gcn / gat / saved_embedding;

  • --dim,embedding宽度,默认128;

  • --sigmoid_loss / --nosigmoid_loss,使用sigmoid或者softmax作为损失函数,默认--sigmoid_loss;

LINE

非监督模型

RandomWalk

非监督模型

GraphSage / GraphSage(Supervised) / ScalableGCN

非监督模型 / 监督模型 / 监督模型

  • --fanouts,每层的扩展数,默认[10, 10];
  • --aggregator,汇聚类型,支持gcn / mean / meanpool / maxpool,默认mean;
  • --concat / --noconcat,汇聚方法,参考GraphSAGE,默认--concat

GAT

监督模型

  • --head_num,attention head数目,默认1;

Saved Embedding

监督模型

将modir_dir中的embedding.npy文件导入作为稠密特征,并构建LR模型。用于评估非监督模型的效果。

分布式训练选项

tf_euler使用ParamerServer的方式进行分布式训练,参考: Distributed TensorFlow。其中图查询引擎会自动在worker之间进行数据切分和共享。需要注意的是分布式训练时需要把图数据放置在HDFS上。

  • --euler_zk_addr,ZooKeeper地址,分布式训练必须;
  • --euler_zk_path,ZooKeeper节点,分布式训练必须;
  • --worker_hosts,worker列表,分布式训练必须;
  • --ps_hosts,ps列表,分布式训练必须;
  • --task_name,角色名称,ps或worker,分布式训练必须;
  • --task_index,角色索引,分布式训练必须;

上面所述的图学习相关参数在worker上必须。

Clone this wiki locally