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}
|