Available TensorFlow Ops
This page lists the TensorFlow Python APIs and graph operators available on Cloud TPU.
Available Python APIs
The list below is a guide to the set of available TensorFlow Python APIs. This list is not exhaustive. Library functions not on this list may work if they are composed of available primitives.
See the performance guide for recommendations about specific operators.
Module | Available Python API | Comments |
---|---|---|
tf |
tf.abs |
|
tf.acosh |
||
tf.add |
||
tf.add_n |
||
tf.angle |
||
tf.arg_max |
dimension argument must be a compile-time constant. |
|
tf.arg_min |
dimension argument must be a compile-time constant. |
|
tf.asinh |
||
tf.assign |
Available only for resource variable. | |
tf.assign_add |
Available only for resource variable. | |
tf.assign_sub |
Available only for resource variable. | |
tf.atan |
||
tf.atan2 |
||
tf.atanh |
||
tf.batch_to_space |
crops and block_shape arguments must be compile-time constant. |
|
tf.batch_to_space_nd |
crops argument must be a compile-time constant. |
|
tf.broadcast_dynamic_shape |
||
tf.broadcast_static_shape |
||
tf.case |
Experimental (control-flow). May not work reliably yet. | |
tf.cast |
||
tf.ceil |
||
tf.cholesky |
Experimental. May have issues with numerical precision. | |
tf.cholesky_solve |
Experimental. May have issues with numerical precision. | |
tf.clip_by_average_norm |
||
tf.clip_by_global_norm |
||
tf.clip_by_norm |
||
tf.clip_by_value |
||
tf.complex |
||
tf.concat |
concat_dim must be a compile-time constant. |
|
tf.cond |
Experimental (control-flow). May not work reliably yet. | |
tf.conj |
||
tf.constant |
||
tf.convert_to_tensor |
||
tf.cos |
||
tf.cosh |
||
tf.cross |
||
tf.cumprod |
axis must be a compile-time constant. |
|
tf.cumsum |
axis must be a compile-time constant. |
|
tf.depth_to_space |
||
tf.diag |
||
tf.diag_part |
||
tf.div |
int32 division is slower than other types. |
|
tf.divide |
int32 division is slower than other types. |
|
tf.dynamic_stitch |
indices must be a compile-time constant. |
|
tf.einsum |
||
tf.equal |
||
tf.erf |
||
tf.erfc |
||
tf.exp |
||
tf.expand_dims |
dims must be a compile-time constant. |
|
tf.expm1 |
||
tf.extract_image_patches |
||
tf.eye |
||
tf.fake_quant_with_min_max_args |
||
tf.fake_quant_with_min_max_args_gradient |
||
tf.fake_quant_with_min_max_vars |
||
tf.fake_quant_with_min_max_vars_gradient |
||
tf.fft |
||
tf.fft2d |
||
tf.fft3d |
||
tf.fill |
dims argument must be a compile-time constant. |
|
tf.floor |
||
tf.floordiv |
||
tf.floormod |
||
tf.foldl |
Experimental (control-flow). | |
tf.foldr |
Experimental (control-flow). | |
tf.gather |
axis must be a compile-time constant. |
|
tf.gather_nd |
||
tf.greater |
||
tf.greater_equal |
||
tf.hessians |
Experimental (control-flow. | |
tf.identity |
||
tf.identity_n |
||
tf.ifft |
||
tf.ifft2d |
||
tf.ifft3d |
||
tf.imag |
||
tf.invert_permutation |
x argument must be a compile-time constant. |
|
tf.is_finite |
||
tf.is_inf |
||
tf.is_nan |
||
tf.is_non_decreasing |
||
tf.is_strictly_increasing |
||
tf.less |
||
tf.less_equal |
||
tf.linspace |
start , stop and num arguments must be compile-time constants. |
|
tf.log |
||
tf.log1p |
||
tf.log_sigmoid |
||
tf.logical_and |
||
tf.logical_or |
||
tf.logical_not |
||
tf.logical_xor |
||
tf.matmul |
Uses a bfloat16 matmul with float32 accumulation. |
|
tf.matrix_band_part |
||
tf.matrix_diag |
||
tf.matrix_diag_part |
||
tf.matrix_set_diag |
||
tf.matrix_triangular_solve |
Experimental. May have issues with numerical precision. | |
tf.maximum |
||
tf.meshgrid |
||
tf.minimum |
||
tf.mod |
||
tf.multinomial |
num_samples argument must be a compile-time constant. |
|
tf.multiply |
||
tf.negative |
||
tf.no_op |
||
tf.norm |
||
tf.not_equal |
||
tf.one_hot |
depth must be a compile-time constant. |
|
tf.ones |
||
tf.ones_like |
||
tf.pad |
paddings argument must be a compile-time constant. Gradient of REFLECT padding is not yet available. |
|
tf.pow |
||
tf.random_normal |
shape must be a compile-time constant. |
|
tf.random_uniform |
shape must be a compile-time constant. |
|
tf.range |
start , limit and delta arguments must be compile-time constants. |
|
tf.rank |
||
tf.real |
||
tf.realdiv |
||
tf.reciprocal |
||
tf.reduce_all |
axis must be a compile-time constant. |
|
tf.reduce_any |
axis must be a compile-time constant. |
|
tf.reduce_logsumexp |
||
tf.reduce_max |
axis must be a compile-time constant. |
|
tf.reduce_min |
axis must be a compile-time constant. |
|
tf.reduce_prod |
axis must be a compile-time constant. |
|
tf.reduce_sum |
axis must be a compile-time constant. |
|
tf.reshape |
shape argument must be a compile-time constant. |
|
tf.reverse |
dims argument must be a compile-time constant. |
|
tf.reverse_sequence |
||
tf.reverse_v2 |
axis argument must be a compile-time constant. |
|
tf.rint |
||
tf.round |
||
tf.rsqrt |
||
tf.saturate_cast |
||
tf.scalar_mul |
||
tf.scan |
Experimental (control-flow). | |
tf.scatter_nd |
||
tf.sequence_mask |
||
tf.shape |
||
tf.shape_n |
||
tf.sigmoid |
||
tf.sign |
||
tf.sin |
||
tf.sinh |
||
tf.size |
||
tf.slice |
size must be a compile-time constant. In addition, either begin must be a compile-time constant or size must be non-negative. Backpropagation is only supported if begin and size are compile-time constants. |
|
tf.space_to_batch |
paddings and block_shape must be compile-time constants. |
|
tf.space_to_batch_nd |
paddings must be a compile-time constant. |
|
tf.space_to_depth |
||
tf.split |
axis must be a compile-time constant. |
|
tf.sqrt |
||
tf.square |
||
tf.squared_difference |
||
tf.squeeze |
||
tf.stack |
||
tf.stop_gradient |
||
tf.strided_slice |
||
tf.tan |
||
tf.tanh |
||
tf.tensordot |
||
tf.tile |
multiples argument must be a compile-time constant. |
|
tf.to_bfloat16 |
||
tf.to_float |
||
tf.to_int32 |
||
tf.to_int64 |
int64 support is limited. |
|
tf.trace |
||
tf.transpose |
perm argument must be a compile-time constant. |
|
tf.truediv |
||
tf.truncated_normal |
shape must be a compile-time constant. |
|
tf.truncatediv |
||
tf.truncatemod |
||
tf.unsorted_segment_sum |
||
tf.unstack |
||
tf.where |
Both x and y must be non-None . If both x and y are None , the operator would not have a static shape. |
|
tf.while_loop |
Computing the gradient of a while loop requires that the maximum_iterations argument is passed. |
|
tf.zeros |
||
tf.zeros_like |
||
tf.Tensor.__getitem__ |
The start, end, and strides of a slice must be compile-time constants. | |
tf.bitwise |
tf.bitwise_and |
|
tf.bitwise_or |
||
tf.bitwise_invert |
||
tf.contrib.stateless |
tf.contrib.stateless.stateless_random_normal |
|
tf.contrib.stateless.stateless_random_uniform |
||
tf.image |
tf.image.adjust_brightness |
|
tf.image.adjust_contrast |
||
tf.image.adjust_gamma |
||
tf.image.adjust_hue |
||
tf.image.adjust_saturation |
||
tf.image.central_crop |
Crop factor must be a compile-time constant. | |
tf.image.convert_image_dtype |
||
tf.image.flip_left_right |
||
tf.image.flip_up_down |
||
tf.image.grayscale_to_rgb |
||
tf.image.hsv_to_rgb |
||
tf.image.resize_bilinear |
Only align_corners=True is available. size must be a compile-time constant. |
|
tf.image.random_brightness |
||
tf.image.random_contrast |
||
tf.image.random_flip_left_right |
||
tf.image.random_flip_up_down |
||
tf.image.random_hue |
||
tf.image.random_saturation |
||
tf.image.rgb_to_hsv |
||
tf.image.rgb_to_grayscale |
||
tf.image.rot90 |
||
tf.image.total_variation |
||
tf.image.transpose_image |
||
tf.layers |
tf.layers.average_pooling1d |
|
tf.layers.average_pooling2d |
||
tf.layers.average_pooling1d |
||
tf.layers.batch_normalization |
||
tf.layers.conv1d |
||
tf.layers.conv2d |
||
tf.layers.conv2d_transpose |
||
tf.layers.conv3d |
||
tf.layers.conv3d_transpose |
||
tf.layers.dense |
||
tf.layers.dropout |
||
tf.layers.flatten |
||
tf.layers.max_pooling1d |
||
tf.layers.max_pooling2d |
||
tf.layers.max_pooling3d |
||
tf.layers.separable_conv2d |
||
tf.nn |
tf.nn.atrous_conv2d |
|
tf.nn.atrous_conv2d_transpose |
||
tf.nn.avg_pool |
||
tf.nn.avg_pool3d |
||
tf.nn.batch_normalization |
||
tf.nn.bias_add |
||
tf.nn.conv1d |
||
tf.nn.conv2d |
||
tf.nn.conv2d_backprop_filter |
||
tf.nn.conv2d_backprop_input |
||
tf.nn.conv2d_transpose |
||
tf.nn.conv3d |
||
tf.nn.conv3d_backprop_filter |
||
tf.nn.conv3d_backprop_input |
||
tf.nn.conv3d_transpose |
||
tf.nn.convolution |
||
tf.nn.crelu |
||
tf.nn.depthwise_conv2d |
||
tf.nn.depthwise_conv2d_native |
||
tf.nn.depthwise_conv2d_native_backprop_filter |
||
tf.nn.depthwise_conv2d_native_backprop_input |
||
tf.nn.dropout |
||
tf.nn.dynamic_rnn |
Experimental. | |
tf.nn.elu |
||
tf.nn.fused_batch_norm |
||
tf.nn.l2_loss |
||
tf.nn.l2_normalize |
||
tf.nn.leaky_relu |
||
tf.nn.local_response_normalization |
||
tf.nn.log_poisson_loss |
||
tf.nn.log_softmax |
||
tf.nn.max_pool |
||
tf.nn.max_pool3d |
||
tf.nn.moments |
||
tf.nn.normalize_moments |
||
tf.nn.pool |
||
tf.nn.relu |
||
tf.nn.relu6 |
||
tf.nn.relu_layer |
||
tf.nn.selu |
||
tf.nn.separable_conv2d |
||
tf.nn.sigmoid_cross_entropy_with_logits |
||
tf.nn.softmax |
||
tf.nn.softmax_cross_entropy_with_logits |
||
tf.nn.softplus |
||
tf.nn.softsign |
||
tf.nn.sparse_softmax_cross_entropy_with_logits |
||
tf.nn.static_bidirectional_rnn |
Experimental. | |
tf.nn.static_rnn |
Experimental. | |
tf.nn.weighted_cross_entropy_with_logits |
Experimental. | |
tf.nn.weighted_moments |
||
tf.nn.with_space_to_batch |
||
tf.nn.xw_plus_b |
||
tf.nn.zero_fraction |
||
tf.spectral |
tf.spectral.fft |
|
tf.spectral.fft2d |
||
tf.spectral.fft3d |
||
tf.spectral.ifft |
||
tf.spectral.ifft2d |
||
tf.spectral.ifft3d |
||
tf.spectral.irfft |
fft_length must be a compile-time constant. |
|
tf.spectral.irfft2d |
fft_length must be a compile-time constant. |
|
tf.spectral.irfft3d |
fft_length must be a compile-time constant. |
|
tf.spectral.rfft |
fft_length must be a compile-time constant. |
|
tf.spectral.rfft2d |
fft_length must be a compile-time constant. |
|
tf.spectral.rfft3d |
fft_length must be a compile-time constant. |
Unavailable Python APIs
This list is not exhaustive. Ops that are not available on Cloud TPU include the following:
Module | Unavailable Python API | Comments |
---|---|---|
tf |
tf.accumulate_n |
Uses Ref variables. |
tf.acos |
||
tf.asin |
||
tf.betainc |
||
tf.bitcast |
||
tf.add_check_numerics_ops |
Programs containing check numerics operators should run, but the check numerics operator is currently ignored. | |
tf.assert_... |
Programs containing assertions should run, but the assertions are ignored. | |
tf.check_numerics |
Programs containing check numerics operators should run, but the check numerics operator is currently ignored. | |
tf.confusion_matrix |
||
tf.count_nonzero |
Uses int64 reduction. |
|
tf.count_up_to |
||
tf.create_partitioned_variables |
||
tf.dequantize |
||
tf.digamma |
||
tf.dynamic_partition |
||
tf.edit_distance |
||
tf.fake_quant_with_min_max_vars_per_channel |
||
tf.fake_quant_with_min_max_vars_per_channel_gradient |
||
tf.histogram_fixed_width |
||
tf.igamma |
||
tf.igammac |
||
tf.lbeta |
||
tf.lgamma |
||
tf.matrix_determinant |
||
tf.matrix_inverse |
||
tf.matrix_solve |
||
tf.matrix_solve_ls |
||
tf.polygamma |
||
tf.py_func |
||
tf.qr |
||
tf.quantize_v2 |
||
tf.quantized_concat |
||
tf.random_crop |
||
tf.random_gamma |
||
tf.random_poisson |
||
tf.random_shuffle |
||
tf.scatter_add |
||
tf.scatter_div |
||
tf.scatter_mul |
||
tf.scatter_nd_add |
||
tf.scatter_nd_sub |
||
tf.scatter_nd_update |
||
tf.segment_mean |
||
tf.segment_max |
||
tf.segment_min |
||
tf.segment_prod |
||
tf.segment_sum |
||
tf.self_adjoint_eig |
||
tf.self_adjoint_eigvals |
||
tf.setdiff1d |
||
tf.sparse_... |
||
tf.string_... |
||
tf.substr |
||
tf.svd |
||
tf.to_double |
||
tf.unique |
||
tf.unsorted_segment_max |
||
tf.zeta |
||
tf.bitwise.bitwise_xor |
||
tf.contrib.stateless.stateless_truncated_normal |
Available graph operators
Operator | Type Constraint |
---|---|
Abs |
T={bfloat16,float,int32,int64} |
Acos |
T={bfloat16,complex64,float,int32,int64} |
Acosh |
T={bfloat16,complex64,float} |
Add |
T={bfloat16,complex64,float,int32,int64} |
AddN |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
AdjustContrastv2 |
T={float} |
AdjustHue |
T={float} |
AdjustSaturation |
T={float} |
All |
Tidx={int32,int64} |
AllToAll |
T={bfloat16,float} |
Angle |
Tout={float} T={complex64} |
Any |
Tidx={int32,int64} |
ApproximateEqual |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ArgMax |
Tidx={int32,int64} output_type={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ArgMin |
Tidx={int32,int64} output_type={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
Asin |
T={bfloat16,complex64,float,int32,int64} |
Asinh |
T={bfloat16,complex64,float} |
Assert |
T={bfloat16,bool,complex64,float,int32,int64,string,uint32,uint64} |
AssignAddVariableOp |
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
AssignSubVariableOp |
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
AssignVariableOp |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Atan |
T={bfloat16,complex64,float,int32,int64} |
Atan2 |
T={bfloat16,float} |
Atanh |
T={bfloat16,complex64,float} |
AvgPool |
T={bfloat16,float} |
AvgPool3D |
T={bfloat16,float} |
AvgPool3DGrad |
T={bfloat16,float} |
AvgPoolGrad |
T={bfloat16,float} |
BatchMatMul |
T={bfloat16,complex64,float,int32,int64} |
BatchToSpace |
Tidx={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
BatchToSpaceND |
Tcrops={int32,int64} Tblock_shape={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
BiasAdd |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
BiasAddGrad |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
BiasAddV1 |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
Bitcast |
type={bfloat16,complex64,float,int32,int64,uint32,uint64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
BitwiseAnd |
T={int32,int64,uint32,uint64} |
BitwiseOr |
T={int32,int64,uint32,uint64} |
BitwiseXor |
T={int32,int64,uint32,uint64} |
BroadcastArgs |
T={int32,int64} |
BroadcastGradientArgs |
T={int32,int64} |
BroadcastTo |
Tidx={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Bucketize |
T={float,int32,int64} |
Cast |
DstT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} SrcT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Ceil |
T={bfloat16,float} |
CheckNumerics |
T={bfloat16,float} |
Cholesky |
T={float} |
ClipByValue |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
CollectivePermute |
T={bfloat16,float} |
Complex |
Tout={complex64} T={float} |
ComplexAbs |
Tout={float} T={complex64} |
Concat |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ConcatOffset |
|
ConcatV2 |
Tidx={int32} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Conj |
T={complex64} |
ConjugateTranspose |
Tperm={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Const |
dtype={bfloat16,bool,complex64,float,int32,int64,string,uint32,uint64} |
ControlTrigger |
|
Conv2D |
T={bfloat16,float} |
Conv2DBackpropFilter |
T={bfloat16,float} |
Conv2DBackpropInput |
T={bfloat16,float} |
Conv3D |
T={bfloat16,float} |
Conv3DBackpropFilterV2 |
T={bfloat16,float} |
Conv3DBackpropInputV2 |
Tshape={int32,int64} T={bfloat16,float} |
Cos |
T={bfloat16,complex64,float} |
Cosh |
T={bfloat16,complex64,float} |
Cross |
T={bfloat16,float,int32,int64,uint32,uint64} |
CrossReplicaSum |
T={bfloat16,float} |
Cumprod |
Tidx={int32,int64} T={bfloat16,float,int32} |
Cumsum |
Tidx={int32,int64} T={bfloat16,float,int32} |
DataFormatVecPermute |
T={int32,int64} |
DepthToSpace |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
DepthwiseConv2dNative |
T={bfloat16,float} |
DepthwiseConv2dNativeBackpropFilter |
T={bfloat16,float} |
DepthwiseConv2dNativeBackpropInput |
T={bfloat16,float} |
Diag |
T={bfloat16,complex64,float,int32,int64} |
DiagPart |
T={bfloat16,complex64,float,int32,int64} |
Digamma |
T={bfloat16,float} |
Div |
T={bfloat16,complex64,float,int32,int64} |
DivNoNan |
T={float} |
DynamicStitch |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Elu |
T={bfloat16,float} |
EluGrad |
T={bfloat16,float} |
Empty |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
EmptyTensorList |
shape_type={int32,int64} element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Equal |
T={bfloat16,bool,complex64,float,int32,int64} |
Erf |
T={bfloat16,float} |
Erfc |
T={bfloat16,float} |
Exp |
T={bfloat16,complex64,float} |
ExpandDims |
Tdim={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Expm1 |
T={bfloat16,complex64,float} |
ExtractImagePatches |
T={bfloat16,float,int32,int64,uint32,uint64} |
FFT |
Tcomplex={complex64} |
FFT2D |
Tcomplex={complex64} |
FFT3D |
Tcomplex={complex64} |
FakeParam |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
FakeQuantWithMinMaxArgs |
|
FakeQuantWithMinMaxArgsGradient |
|
FakeQuantWithMinMaxVars |
|
FakeQuantWithMinMaxVarsGradient |
|
Fill |
index_type={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Floor |
T={bfloat16,float} |
FloorDiv |
T={bfloat16,complex64,float,int32,int64} |
FloorMod |
T={bfloat16,float,int32,int64} |
FusedBatchNorm |
T={float} |
FusedBatchNormGrad |
T={float} |
FusedBatchNormGradV2 |
U={float} T={bfloat16,float} |
FusedBatchNormV2 |
U={float} T={bfloat16,float} |
Gather |
Tindices={int32,int64} Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
GatherNd |
Tindices={int32,int64} Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
GatherV2 |
Taxis={int32,int64} Tindices={int32,int64} Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
GetItem |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Greater |
T={bfloat16,float,int32,int64,uint32,uint64} |
GreaterEqual |
T={bfloat16,float,int32,int64,uint32,uint64} |
HSVToRGB |
T={bfloat16,float} |
IFFT |
Tcomplex={complex64} |
IFFT2D |
Tcomplex={complex64} |
IFFT3D |
Tcomplex={complex64} |
IRFFT |
|
IRFFT2D |
|
IRFFT3D |
|
Identity |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
IdentityN |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
If |
Tout={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tin={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tcond={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
Imag |
Tout={float} T={complex64} |
InfeedDequeue |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
InfeedDequeueTuple |
dtypes={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
InplaceAdd |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
InplaceUpdate |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Inv |
T={bfloat16,complex64,float,int32,int64} |
Invert |
T={int32,int64,uint32,uint64} |
InvertPermutation |
T={int32} |
IsFinite |
T={bfloat16,float} |
IsInf |
T={bfloat16,float} |
IsNan |
T={bfloat16,float} |
L2Loss |
T={bfloat16,float} |
LRN |
T={bfloat16,float} |
LRNGrad |
T={bfloat16,float} |
LeakyRelu |
T={bfloat16,float} |
LeakyReluGrad |
T={bfloat16,float} |
LeftShift |
T={int32,int64,uint32,uint64} |
Less |
T={bfloat16,float,int32,int64,uint32,uint64} |
LessEqual |
T={bfloat16,float,int32,int64,uint32,uint64} |
Lgamma |
T={bfloat16,float} |
LinSpace |
Tidx={int32,int64} T={bfloat16,float} |
ListDiff |
out_idx={int32,int64} T={int32,int64} |
Log |
T={bfloat16,complex64,float} |
Log1p |
T={bfloat16,complex64,float} |
LogSoftmax |
T={bfloat16,float} |
LogicalAnd |
|
LogicalNot |
|
LogicalOr |
|
MatMul |
T={bfloat16,complex64,float} |
MatrixBandPart |
Tindex={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
MatrixDiag |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
MatrixDiagPart |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
MatrixSetDiag |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
MatrixTriangularSolve |
T={complex64,float} |
Max |
Tidx={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
MaxPool |
T={bfloat16,float,int32,int64} |
MaxPool3D |
T={bfloat16,float} |
MaxPool3DGrad |
TInput={bfloat16,float} T={bfloat16,float} |
MaxPool3DGradGrad |
T={float} |
MaxPoolGrad |
T={bfloat16,float,int32,int64,uint32,uint64} |
MaxPoolGradGrad |
T={float} |
MaxPoolGradGradV2 |
T={float} |
MaxPoolGradV2 |
T={bfloat16,float,int32,int64,uint32,uint64} |
MaxPoolV2 |
T={bfloat16,float,int32,int64} |
Maximum |
T={bfloat16,float,int32,int64} |
Mean |
Tidx={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
Min |
Tidx={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
Minimum |
T={bfloat16,float,int32,int64} |
MirrorPad |
Tpaddings={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Mod |
T={bfloat16,float,int32,int64} |
Mul |
T={bfloat16,complex64,float,int32,int64} |
Multinomial |
output_dtype={int32,int64} T={bfloat16,float,int32,int64,uint32,uint64} |
Neg |
T={bfloat16,complex64,float,int32,int64} |
NoOp |
|
NonMaxSuppressionV4 |
T={float} |
NotEqual |
T={bfloat16,bool,complex64,float,int32,int64} |
OneHot |
TI={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
OnesLike |
T={bfloat16,bool,complex64,float,int32,int64} |
OutfeedEnqueue |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
OutfeedEnqueueTuple |
dtypes={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Pack |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Pad |
Tpaddings={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
PadV2 |
Tpaddings={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ParallelDynamicStitch |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
PlaceholderWithDefault |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Pow |
T={bfloat16,complex64,float,int32,int64} |
PreventGradient |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Prod |
Tidx={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
Qr |
T={float} |
QuantizeAndDequantizeV2 |
T={bfloat16,float} |
QuantizeAndDequantizeV3 |
T={bfloat16,float} |
RFFT |
|
RFFT2D |
|
RFFT3D |
|
RGBToHSV |
T={bfloat16,float} |
RandomShuffle |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
RandomStandardNormal |
T={int32,int64} dtype={bfloat16,float} |
RandomUniform |
T={int32,int64} dtype={bfloat16,float} |
RandomUniformInt |
T={int32,int64} Tout={int32,int64} |
Range |
Tidx={bfloat16,float,int32,int64} |
Rank |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ReadVariableOp |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Real |
Tout={float} T={complex64} |
RealDiv |
T={bfloat16,complex64,float,int32,int64} |
Reciprocal |
T={bfloat16,complex64,float,int32,int64} |
ReciprocalGrad |
T={bfloat16,complex64,float} |
RecvTPUEmbeddingActivations |
|
Relu |
T={bfloat16,float,int32,int64,uint32,uint64} |
Relu6 |
T={bfloat16,float,int32,int64,uint32,uint64} |
Relu6Grad |
T={bfloat16,float,int32,int64,uint32,uint64} |
ReluGrad |
T={bfloat16,float,int32,int64,uint32,uint64} |
Reshape |
Tshape={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResizeBilinear |
T={bfloat16,float,int32,int64} |
ResizeBilinearGrad |
T={bfloat16,float} |
ResizeNearestNeighbor |
T={float,int32,int64} |
ResourceApplyAdaMax |
T={bfloat16,float} |
ResourceApplyAdadelta |
T={bfloat16,float} |
ResourceApplyAdagrad |
T={bfloat16,float} |
ResourceApplyAdagradDA |
T={bfloat16,float} |
ResourceApplyAdam |
T={bfloat16,float} |
ResourceApplyAddSign |
T={bfloat16,float} |
ResourceApplyCenteredRMSProp |
T={bfloat16,float} |
ResourceApplyFtrl |
T={bfloat16,float} |
ResourceApplyFtrlV2 |
T={bfloat16,float} |
ResourceApplyGradientDescent |
T={bfloat16,float} |
ResourceApplyKerasMomentum |
T={bfloat16,float} |
ResourceApplyMomentum |
T={bfloat16,float} |
ResourceApplyPowerSign |
T={bfloat16,float} |
ResourceApplyProximalAdagrad |
T={bfloat16,float} |
ResourceApplyProximalGradientDescent |
T={bfloat16,float} |
ResourceApplyRMSProp |
T={bfloat16,float} |
ResourceGather |
Tindices={int32,int64} dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterAdd |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterDiv |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterMax |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterMin |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterMul |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterNdAdd |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterNdSub |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterNdUpdate |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterSub |
Tindices={int32,int64} dtype={bfloat16,complex64,float,int32,int64,uint32,uint64} |
ResourceScatterUpdate |
Tindices={int32,int64} dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ResourceStridedSliceAssign |
Index={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Reverse |
T={bool,complex64,float,int32,int64} |
ReverseSequence |
Tlen={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ReverseV2 |
T={bfloat16,bool,complex64,float,int32,int64} Tidx={int32,int64} |
RightShift |
T={int32,int64,uint32,uint64} |
Rint |
T={bfloat16,float} |
Round |
T={bfloat16,complex64,float,int32,int64} |
Rsqrt |
T={bfloat16,complex64,float} |
RsqrtGrad |
T={bfloat16,complex64,float} |
ScatterNd |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Select |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Selu |
T={bfloat16,float} |
SeluGrad |
T={bfloat16,float} |
SendTPUEmbeddingGradients |
|
Shape |
out_type={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
ShapeN |
out_type={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Sigmoid |
T={bfloat16,complex64,float} |
SigmoidGrad |
T={bfloat16,complex64,float} |
Sign |
T={bfloat16,complex64,float,int32,int64} |
Sin |
T={bfloat16,complex64,float} |
Sinh |
T={bfloat16,complex64,float} |
Size |
out_type={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Slice |
Index={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Snapshot |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Softmax |
T={bfloat16,float} |
SoftmaxCrossEntropyWithLogits |
T={bfloat16,float} |
Softplus |
T={bfloat16,float} |
SoftplusGrad |
T={bfloat16,float} |
Softsign |
T={bfloat16,float} |
SoftsignGrad |
T={bfloat16,float} |
SpaceToBatch |
Tpaddings={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
SpaceToBatchND |
Tblock_shape={int32,int64} Tpaddings={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
SpaceToDepth |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
SparseMatMul |
Tb={bfloat16,float} Ta={bfloat16,float} |
SparseSoftmaxCrossEntropyWithLogits |
Tlabels={int32,int64} T={bfloat16,float} |
SparseToDense |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Split |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
SplitV |
Tlen={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Sqrt |
T={bfloat16,complex64,float} |
SqrtGrad |
T={bfloat16,complex64,float} |
Square |
T={bfloat16,complex64,float,int32,int64} |
SquaredDifference |
T={bfloat16,complex64,float,int32,int64} |
Squeeze |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StackCloseV2 |
|
StackPopV2 |
elem_type={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StackPushV2 |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StackV2 |
elem_type={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StatelessIf |
Tout={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tin={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tcond={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
StatelessMultinomial |
output_dtype={int32,int64} Tseed={int32} T={bfloat16,float} |
StatelessRandomNormal |
Tseed={int32} T={int32,int64} dtype={bfloat16,float} |
StatelessRandomUniform |
Tseed={int32} T={int32,int64} dtype={bfloat16,float} |
StatelessRandomUniformInt |
Tseed={int32} T={int32,int64} dtype={int32,int64} |
StatelessTruncatedNormal |
Tseed={int32} T={int32,int64} dtype={bfloat16,float} |
StatelessWhile |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
StopGradient |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StridedSlice |
Index={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
StridedSliceGrad |
Index={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Sub |
T={bfloat16,complex64,float,int32,int64} |
Sum |
Tidx={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
SymbolicGradient |
Tout={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} Tin={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TPUEmbeddingActivations |
|
Tan |
T={bfloat16,complex64,float,int32,int64} |
Tanh |
T={bfloat16,complex64,float} |
TanhGrad |
T={bfloat16,complex64,float} |
TensorArrayCloseV3 |
|
TensorArrayConcatV3 |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArrayGatherV3 |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArrayGradV3 |
|
TensorArrayReadV3 |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArrayScatterV3 |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArraySizeV3 |
|
TensorArraySplitV3 |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArrayV3 |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorArrayWriteV3 |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorListElementShape |
shape_type={int32,int64} |
TensorListPopBack |
element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorListPushBack |
element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TensorListReserve |
shape_type={int32,int64} element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
Tile |
Tmultiples={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TopKV2 |
T={bfloat16,float,int32,uint32} |
Transpose |
Tperm={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
TruncateDiv |
T={bfloat16,complex64,float,int32,int64} |
TruncateMod |
T={bfloat16,float,int32,int64} |
TruncatedNormal |
T={int32,int64} dtype={float} |
Unpack |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
UnsortedSegmentMax |
Tnumsegments={int32,int64} Tindices={int32,int64} T={bfloat16,float,int32,int64,uint32,uint64} |
UnsortedSegmentMin |
Tnumsegments={int32,int64} Tindices={int32,int64} T={bfloat16,float,int32,int64,uint32,uint64} |
UnsortedSegmentProd |
Tnumsegments={int32,int64} Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
UnsortedSegmentSum |
Tnumsegments={int32,int64} Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
VarIsInitializedOp |
|
VariableShape |
out_type={int32,int64} |
While |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
Xdivy |
T={complex64,float} |
XlaBroadcastHelper |
Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaConv |
Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaDequantize |
|
XlaDot |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaDynamicSlice |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaDynamicUpdateSlice |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaHostCompute |
Toutputs={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} Tinputs={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaIf |
Tout={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tin={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} Tcond={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
XlaKeyValueSort |
V={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} K={bfloat16,float,int32,int64,uint32,uint64} |
XlaPad |
Tindices={int32,int64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaRecv |
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaRecvFromHost |
Toutput={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaReduce |
T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaReduceWindow |
Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaSelectAndScatter |
Tindices={int32,int64} T={bfloat16,complex64,float,int32,int64,uint32,uint64} |
XlaSend |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaSendToHost |
Tinput={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaSort |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
XlaWhile |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
Xlogy |
T={complex64,float} |
ZerosLike |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
_Arg |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |
_ArrayToList |
out_types={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
_ListToArray |
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} Tin={bfloat16,bool,complex64,float,int32,int64,uint32,uint64} |
_Retval |
T={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64} |