getAttrList();
/**
* repeated .tensorflow.OpDef.AttrDef attr = 4;
*/
org.tensorflow.framework.OpDef.AttrDef getAttr(int index);
/**
* repeated .tensorflow.OpDef.AttrDef attr = 4;
*/
int getAttrCount();
/**
* repeated .tensorflow.OpDef.AttrDef attr = 4;
*/
java.util.List
getAttrOrBuilderList();
/**
* repeated .tensorflow.OpDef.AttrDef attr = 4;
*/
org.tensorflow.framework.OpDef.AttrDefOrBuilder getAttrOrBuilder(
int index);
/**
*
* Optional deprecation based on GraphDef versions.
*
*
* .tensorflow.OpDeprecation deprecation = 8;
* @return Whether the deprecation field is set.
*/
boolean hasDeprecation();
/**
*
* Optional deprecation based on GraphDef versions.
*
*
* .tensorflow.OpDeprecation deprecation = 8;
* @return The deprecation.
*/
org.tensorflow.framework.OpDeprecation getDeprecation();
/**
*
* Optional deprecation based on GraphDef versions.
*
*
* .tensorflow.OpDeprecation deprecation = 8;
*/
org.tensorflow.framework.OpDeprecationOrBuilder getDeprecationOrBuilder();
/**
*
* One-line human-readable description of what the Op does.
*
*
* string summary = 5;
* @return The summary.
*/
java.lang.String getSummary();
/**
*
* One-line human-readable description of what the Op does.
*
*
* string summary = 5;
* @return The bytes for summary.
*/
org.nd4j.shade.protobuf.ByteString
getSummaryBytes();
/**
*
* Additional, longer human-readable description of what the Op does.
*
*
* string description = 6;
* @return The description.
*/
java.lang.String getDescription();
/**
*
* Additional, longer human-readable description of what the Op does.
*
*
* string description = 6;
* @return The bytes for description.
*/
org.nd4j.shade.protobuf.ByteString
getDescriptionBytes();
/**
*
* True if the operation is commutative ("op(a,b) == op(b,a)" for all inputs)
*
*
* bool is_commutative = 18;
* @return The isCommutative.
*/
boolean getIsCommutative();
/**
*
* 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.
*
*
* bool is_aggregate = 16;
* @return The isAggregate.
*/
boolean getIsAggregate();
/**
*
* 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).
*
*
* bool is_stateful = 17;
* @return The isStateful.
*/
boolean getIsStateful();
/**
*
* 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.
*
*
* bool allows_uninitialized_input = 19;
* @return The allowsUninitializedInput.
*/
boolean getAllowsUninitializedInput();
}