tensorflow添加新操作:attr接受标量张量?

时间:2016-09-18 16:14:53

标签: tensorflow

我无法在official doc中找到有关此内容的详细信息。

有人能提供更详细的信息吗?

1 个答案:

答案 0 :(得分:1)

TensorFlow使用attrs作为“编译时常量”来确定操作的行为和类型(输入和输出的数量)。 您可以定义一个op TensorProto作为其中一个attrs的操作。例如,tf.constant() op将其值作为attr,在相应的op注册中定义为here

此功能有一些限制:

  • 目前无法静态约束张量的形状。您需要在op的构造函数中验证这一点(通常调用GetAttr)。
  • 同样,目前无法静态约束张量的元素类型,因此您还需要在运行时检查它。
  • 在op的Python包装器中,您需要将attr的值作为TensorProto传递,例如致电tf.contrib.util.make_tensor_proto()进行转换。

通常,您可能会发现使用简单的intfloatboolstring attr而不是标量更容易 TensorProto,但如果您需要编码不太常见的类型,则TensorProto选项可用。