package op_def
- Alphabetic
- Public
- All
Type Members
-
final
case class
OpDef(name: String = "", inputArg: Seq[ArgDef] = _root_.scala.Seq.empty, outputArg: Seq[ArgDef] = _root_.scala.Seq.empty, controlOutput: Seq[String] = _root_.scala.Seq.empty, attr: Seq[AttrDef] = _root_.scala.Seq.empty, deprecation: Option[OpDeprecation] = _root_.scala.None, summary: String = "", description: String = "", isCommutative: Boolean = false, isAggregate: Boolean = false, isStateful: Boolean = false, allowsUninitializedInput: Boolean = false, unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[OpDef] with Product with Serializable
Defines an operation.
Defines an operation. A NodeDef in a GraphDef specifies an Op by using the "op" field which should match the name of a OpDef. LINT.IfChange
- name
Op names starting with an underscore are reserved for internal use. Names should be CamelCase and match the regexp "[A-Z][a-zA-Z0-9>_]*".
- inputArg
Description of the input(s).
- outputArg
Description of the output(s).
- controlOutput
Named control outputs for this operation. Useful only for composite operations (i.e. functions) which want to name different control outputs.
- deprecation
Optional deprecation based on GraphDef versions.
- summary
One-line human-readable description of what the Op does.
- description
Additional, longer human-readable description of what the Op does.
- isCommutative
True if the operation is commutative ("op(a,b) == op(b,a)" for all inputs)
- isAggregate
If is_aggregate is true, then this operation accepts N >= 2 inputs and produces 1 output all of the same type. Should be associative and commutative, and produce output with the same shape as the input. The optimizer may replace an aggregate op taking input from multiple devices with a tree of aggregate ops that aggregate locally within each device (and possibly within groups of nearby devices) before communicating. TODO(josh11b): Implement that optimization. for things like add
- isStateful
Ops are marked as stateful if their behavior depends on some state beyond their input tensors (e.g. variable reading op) or if they have a side-effect (e.g. printing or asserting ops). Equivalently, stateless ops must always produce the same output for the same input and have no side-effects. By default Ops may be moved between devices. Stateful ops should either not be moved, or should only be moved if that state can also be moved (e.g. via some sort of save / restore). Stateful ops are guaranteed to never be optimized away by Common Subexpression Elimination (CSE). for things like variables, queue
- allowsUninitializedInput
By default, all inputs to an Op must be initialized Tensors. Ops that may initialize tensors for the first time should set this field to true, to allow the Op to take an uninitialized Tensor as input. for Assign, etc.
- Annotations
- @SerialVersionUID()
-
final
case class
OpDeprecation(version: Int = 0, explanation: String = "", unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[OpDeprecation] with Product with Serializable
Information about version-dependent deprecation of an op
Information about version-dependent deprecation of an op
- version
First GraphDef version at which the op is disallowed.
- explanation
Explanation of why it was deprecated and what to use instead.
- Annotations
- @SerialVersionUID()
-
final
case class
OpList(op: Seq[OpDef] = _root_.scala.Seq.empty, unknownFields: UnknownFieldSet = ...) extends GeneratedMessage with Updatable[OpList] with Product with Serializable
A collection of OpDefs
A collection of OpDefs
- Annotations
- @SerialVersionUID()
Value Members
- object OpDef extends GeneratedMessageCompanion[OpDef]
- object OpDefProto extends GeneratedFileObject
- object OpDeprecation extends GeneratedMessageCompanion[OpDeprecation]
- object OpList extends GeneratedMessageCompanion[OpList]