发新帖

添加新的操作(new op)时遇到的问题

[复制链接]
390 3

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x
最近在学tensorflow给出的word2vec.py例子,里面有自定义的操作,需要编译word2vec_kernels.cc及word2vec_ops.cc,其中#include "tensorflow/core文件夹下的.h库文件。可问题是我查找了tensorflow文件夹,里面没有core文件夹,所以导致编译出错。请问为什么会没有这个文件夹呢,该怎么添加呢?


PS:我是用anaconda的pip安装包安装的gpu版本,版本号为1.6,之前做其他训练时没有任何问题。
我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有3人回答
本楼点评(0) 收起

精彩评论3

yunhai_luo  TF豆豆  发表于 2018-5-16 22:17:48 | 显示全部楼层
楼主不是从源码安装的tensorflow,头文件不在core文件夹。教程中的方法可以指示头文件的位置吗?
  1. $ python
  2. >>> import tensorflow as tf
  3. >>> tf.sysconfig.get_include()
  4. '/usr/local/lib/python2.7/site-packages/tensorflow/include'
  5. >>> tf.sysconfig.get_lib()
  6. '/usr/local/lib/python2.7/site-packages/tensorflow'
复制代码



本楼点评(0) 收起
nlprnn  TF荚荚  发表于 2018-5-17 20:42:40 | 显示全部楼层
yunhai_luo 发表于 2018-5-16 22:17
楼主不是从源码安装的tensorflow,头文件不在core文件夹。教程中的方法可以指示头文件的位置吗?

嗯,终于被我找到了。虽然我可以在word2vec_kernels.cc及word2vec_ops.cc中指定头文件的位置,但是这些头文件中又引用了头文件,位置也是在tensorflow/core文件夹下,总不能把引用的头文件中的指示位置也更改吧,那工作量就大了。
下面的代码是否就是可以解决头文件目录的问题呢?
不过在cmd命令行下只有最后一行代码才能运行,请问这应该在哪里运行这几行代码?
非常感谢!
  1. TF_CFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))') )
  2. TF_LFLAGS=( $(python -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))') )
  3. g++ -std=c++11 -shared word2vec_kernels.cc word2vec_ops.cc -o zero_out.so -fPIC ${TF_CFLAGS[@]} ${TF_LFLAGS[@]} -O2
复制代码
本楼点评(1) 收起
neverchange  TF豆豆  发表于 2018-7-4 11:09:45 | 显示全部楼层
源码安装的话,会在系统的include路径里,你就可以这样用。
但是如果不是源码安装的话,你需要在编译参数里指定路径,类似-IXXX
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

主题

帖子

6

积分
快速回复 返回顶部 返回列表