使用tensorflow中的自定义ops构建图形

时间:2015-12-28 22:47:49

标签: python tensorflow

我正在尝试探索使用自定义操作的tensorflow。我构建了一个简单的开关操作,并在tensorflow文档中进行了验证。现在我正在尝试构建图形,然后在张量流中调用run()方法 会话。以下是我的代码。我收到以下错误。有人可以帮助我解决它。每次向/user_ops/添加新的自定义操作时,是否需要重新安装tensorflow?

import tensorflow as tf 

# Create a Constant op that produce integer value
input1 = tf.constant(10)

# Create another op that produce an integer value
input2 = tf.constant(5)

# Create op that produce 0 or 1 as the control input in a switch
input3 = tf.constant(1)

# Create a switch op that takes input1 and input2 as inputs and input3 as 
# the control input to produce an output
out = tf.user_ops.simple_switch(input1, input2, input3)


# Launch a default graph
sess = tf.Session()

# Call the 'run()' method and get the result
result = sess.run(out)
print(result)


# Close the Session when we're done!
sess.close()

在python解释器中执行时,我收到以下错误:

  

追踪(最近一次通话):     文件“tensorflow-switch.py​​”,第14行,in       out = tf.simple_switch(input1,input2,input3)   AttributeError:'module'对象没有属性'simple_switch'

1 个答案:

答案 0 :(得分:2)

adding a user-defined op之后(在TensorFlow 0.6.0或更早版本中),要在Python解释器中使用它,必须从源存储库重新安装。最简单的方法是使用Bazel build and install a PIP package。 (单元测试将通过,因为运行bazel test会导致重建TensorFlow,以及运行测试时要使用的重建版本。)

注意:此功能属于实验性功能,正在开发用于添加用户定义操作的改进工作流程。