2016-12-19 4 views
3

я, как показано в tensorflow документа: https://www.tensorflow.org/how_tos/adding_an_op/#attrsTensorflow добавить новый оп, не может импортировать из питона

  1. получить исходный код из https://github.com/tensorflow/tensorflow
  2. добавить zero_out.cc файл под tensorflow/core/user_ops/
  3. оных a BUILD файл под № tensorflow/core/user_ops/
  4. Контактное лицо: $ bazel build -c opt //tensorflow/core/user_ops:zero_out.so

INFO: Найдено 1 цель ...
Target //tensorflow/core/user_ops:zero_out.so уточненный:
Базэл-бен/tensorflow/ядра/user_ops/zero_out.so
INFO: Прошедшее время: 0,125, Critical Path:

0,00 с

Но когда я запускаю следующий код питона, ошибка приходит:

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import tensorflow as tf 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally 
>>> zero_out_module = tf.load_op_library('zero_out.so') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/yc/tfenv/local/lib/python2.7/site-packages/tensorflow/python/framework/load_library.py", line 64, in load_op_library 
    None, None, error_msg, error_code) 
tensorflow.python.framework.errors_impl.NotFoundError: zero_out.so: cannot open shared object file: No such file or directory 
+0

Похоже, вы не используете анаконды сборки. Самый простой способ - установить его оттуда. Но попробуйте установить tensorflow 0.11, так как у 0.12 есть некоторые проблемы. – kmario23

ответ

0

Базэл будет генерировать ор библиотеки в папку bazel-bin.

Как вы использовали Bazel для застроенный, вы должны попытаться загрузить его оттуда:

zero_out_module = tf.load_op_library('bazel-bin/tensorflow/user_ops/zero_out.so') 
Смежные вопросы