origin

Results 21 comments of origin

try this?: Euler-2.0 euler内核打开多线程支持(可选) euler主要是分布式面向吞吐优化的框架,为了降低线程调度带来的额外开销,euler的内核是基于单线程开发的,导致单机用户在某些情况下有性能问题。因此可以尝试在euler项目的顶层 CMakeLists.txt 中,将: option(USE_OPENMP "Option for using open mp" OFF) 设置为 option(USE_OPENMP "Option for using open mp" ON) 然后重新运行 build.sh 脚本。

如果需要支持hdfs数据加载,则需要修改项目根目录下的CMakeLists.txt,把option(USE_HDFS "Option for using hdfs" OFF)改为option(USE_HDFS "Option for using hdfs" ON),详细过程请看编译安装部分

目前我们只测试了hdfs://这种方式,不太清楚viewfs://会有什么问题。 至于打docker, git clone --recursive https://github.com/alibaba/euler.git # 执行完这个命令之后修改一下根目录的CMakeLists.txt,设置option(USE_HDFS "Option for using hdfs" ON),然后执行下面两句命令应该就好了,Dockerfile不用修改 cd euler docker build --net=host -f tools/docker/Dockerfile .

如果编译没有问题,启动的时候会打印“hdfs file io factory register”这个日志

如果只打印local file io factory register,说明编译没有把hdfs部分编译进去。我们在euler/filo_io_factory.cc中用宏做了选择编译: " #ifdef HDFS #include "euler/common/hdfs_file_io_factory.h" static euler::common::HdfsFileIOFactoryReg hdfs_reg; #endif " 如果没有在根目录的CMakeLists.txt中把设置option(USE_HDFS "Option for using hdfs" OFF)改为option(USE_HDFS "Option for using hdfs" ON),是不会编译hdfs部分的。

能把你的编译步骤详细再说明一下吗

1.node2vec,deepwalk使用的是Euler内部的邻居采样接口实现的,从一批根结点出发采样一批邻居,然后重复这个过程得到游走序列。 2.你的理解是对的,Euler提供一些cpp接口对图进行查询采样,用户不断调用这些接口来完成计算过程。我们在Euler的cpp接口之上封装了tf的op,然后基于这些op封装了图学习的一系列算法。 | | 计算机院 魏源 邮箱:[email protected] | 签名由 网易邮箱大师 定制 在2019年02月02日 12:20,ykwd 写道: 非常感谢贵司提供这个开源项目! 我对于代码实现有两点疑问,还请不吝赐教: 欧拉自带的几个算法中,deepwalk和node2vec的随机游走的图算法的实现是不是直接调用的TensorFlow的随机游走,而没有用到欧拉自己的c++的库? 有没有一个完整的图算法的实现来展示欧拉c++的库的使用的整个流程呢?wiki里面的代码只有简单的遍历之类的,但是感觉欧拉的c++的执行流程和模型都和传统的图计算系统(例如powergraph)不太一样,不是那种定义好算子后就一遍执行到底的,而是需要用户不断调用欧拉的接口来进行交互,不知道我的理解是否正确? 预祝新年快乐! — You are receiving this because you are subscribed to this...

实际上random walk就是用node2vec实现的,random walk可以看作是node2vec的特殊情况,Euler部分的代码在euler/euler/client/graph.h下面,叫BiasedSampleNeighbor函数 | | 计算机院 魏源 邮箱:[email protected] | 签名由 网易邮箱大师 定制 在2019年02月02日 13:04,ykwd 写道: 非常抱歉问一个可能比较低级的问题:我发现Python代码里deepwalk和node2vec都调用的是c++编译好的库libtf_euler.so里的random_walk函数,而在c++中,我看了所有的cc文件,都没有找到node2vec的实现,包括在random_walk_op.cc或者walks_ops.cc等。 能否麻烦您指示一下node2vec的实现在哪里呢? — You are receiving this because you commented. Reply to this email directly,...

node2vec实现的时候会根据当前节点周围的结构信息生成一个a向量,然后乘以neighbor权重。具体可以看euler/euler/client/graph.cc | | 魏源 邮箱:[email protected] | 签名由 网易邮箱大师 定制 在2020年05月18日 12:39,lixusign 写道: 你好,https://cs.stanford.edu/people/jure/pubs/node2vec-kdd16.pdf 原始论文中, 权重指的是边的权重,而不是当前节点neighbor的权重,因为neighbor的权重是一个绝对值,无法站在从当前顶点出发的视角进行游走,我认为这里实现的有误。 — You are receiving this because you commented. Reply to this email directly, view it...

neighbor的权重是指的邻居边权重,不是邻居节点的权重