Available TensorFlow Ops

This page lists the TensorFlow Python APIs and graph operators available onCloud 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 ifthey are composed of available primitives.

See theperformance guidefor recommendations about specific operators.

ModuleAvailable Python APIComments
tftf.abs
tf.acosh
tf.add
tf.add_n
tf.angle
tf.arg_maxdimension argument must be a compile-time constant.
tf.arg_mindimension argument must be a compile-time constant.
tf.asinh
tf.assignAvailable only for resource variable.
tf.assign_addAvailable only for resource variable.
tf.assign_subAvailable only for resource variable.
tf.atan
tf.atan2
tf.atanh
tf.batch_to_spacecrops andblock_shape arguments must be compile-time constant.
tf.batch_to_space_ndcrops argument must be a compile-time constant.
tf.broadcast_dynamic_shape
tf.broadcast_static_shape
tf.caseExperimental (control-flow). May not work reliably yet.
tf.cast
tf.ceil
tf.choleskyExperimental. May have issues with numerical precision.
tf.cholesky_solveExperimental. 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.concatconcat_dim must be a compile-time constant.
tf.condExperimental (control-flow). May not work reliably yet.
tf.conj
tf.constant
tf.convert_to_tensor
tf.cos
tf.cosh
tf.cross
tf.cumprodaxis must be a compile-time constant.
tf.cumsumaxis must be a compile-time constant.
tf.depth_to_space
tf.diag
tf.diag_part
tf.divint32 division is slower than other types.
tf.divideint32 division is slower than other types.
tf.dynamic_stitchindices must be a compile-time constant.
tf.einsum
tf.equal
tf.erf
tf.erfc
tf.exp
tf.expand_dimsdims 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.filldims argument must be a compile-time constant.
tf.floor
tf.floordiv
tf.floormod
tf.foldlExperimental (control-flow).
tf.foldrExperimental (control-flow).
tf.gatheraxis must be a compile-time constant.
tf.gather_nd
tf.greater
tf.greater_equal
tf.hessiansExperimental (control-flow.
tf.identity
tf.identity_n
tf.ifft
tf.ifft2d
tf.ifft3d
tf.imag
tf.invert_permutationx 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.linspacestart,stop andnum 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.matmulUses abfloat16 matmul withfloat32 accumulation.
tf.matrix_band_part
tf.matrix_diag
tf.matrix_diag_part
tf.matrix_set_diag
tf.matrix_triangular_solveExperimental. May have issues with numerical precision.
tf.maximum
tf.meshgrid
tf.minimum
tf.mod
tf.multinomialnum_samples argument must be a compile-time constant.
tf.multiply
tf.negative
tf.no_op
tf.norm
tf.not_equal
tf.one_hotdepth must be a compile-time constant.
tf.ones
tf.ones_like
tf.padpaddings argument must be a compile-time constant. Gradient ofREFLECT padding is not yet available.
tf.pow
tf.random_normalshape must be a compile-time constant.
tf.random_uniformshape must be a compile-time constant.
tf.rangestart,limit anddelta arguments must be compile-time constants.
tf.rank
tf.real
tf.realdiv
tf.reciprocal
tf.reduce_allaxis must be a compile-time constant.
tf.reduce_anyaxis must be a compile-time constant.
tf.reduce_logsumexp
tf.reduce_maxaxis must be a compile-time constant.
tf.reduce_minaxis must be a compile-time constant.
tf.reduce_prodaxis must be a compile-time constant.
tf.reduce_sumaxis must be a compile-time constant.
tf.reshapeshape argument must be a compile-time constant.
tf.reversedims argument must be a compile-time constant.
tf.reverse_sequence
tf.reverse_v2axis argument must be a compile-time constant.
tf.rint
tf.round
tf.rsqrt
tf.saturate_cast
tf.scalar_mul
tf.scanExperimental (control-flow).
tf.scatter_nd
tf.sequence_mask
tf.shape
tf.shape_n
tf.sigmoid
tf.sign
tf.sin
tf.sinh
tf.size
tf.slicesize must be a compile-time constant. In addition, eitherbegin must be a compile-time constant orsize must be non-negative. Backpropagation is only supported ifbegin andsize are compile-time constants.
tf.space_to_batchpaddings andblock_shape must be compile-time constants.
tf.space_to_batch_ndpaddings must be a compile-time constant.
tf.space_to_depth
tf.splitaxis 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.tilemultiples argument must be a compile-time constant.
tf.to_bfloat16
tf.to_float
tf.to_int32
tf.to_int64int64 support is limited.
tf.trace
tf.transposeperm argument must be a compile-time constant.
tf.truediv
tf.truncated_normalshape must be a compile-time constant.
tf.truncatediv
tf.truncatemod
tf.unsorted_segment_sum
tf.unstack
tf.whereBothx andy must be non-None. If bothx andy areNone, the operator would not have a static shape.
tf.while_loopComputing the gradient of a while loop requires that themaximum_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.bitwisetf.bitwise_and
tf.bitwise_or
tf.bitwise_invert
tf.contrib.statelesstf.contrib.stateless.stateless_random_normal
tf.contrib.stateless.stateless_random_uniform
tf.imagetf.image.adjust_brightness
tf.image.adjust_contrast
tf.image.adjust_gamma
tf.image.adjust_hue
tf.image.adjust_saturation
tf.image.central_cropCrop 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_bilinearOnlyalign_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.layerstf.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.nntf.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_rnnExperimental.
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_rnnExperimental.
tf.nn.static_rnnExperimental.
tf.nn.weighted_cross_entropy_with_logitsExperimental.
tf.nn.weighted_moments
tf.nn.with_space_to_batch
tf.nn.xw_plus_b
tf.nn.zero_fraction
tf.spectraltf.spectral.fft
tf.spectral.fft2d
tf.spectral.fft3d
tf.spectral.ifft
tf.spectral.ifft2d
tf.spectral.ifft3d
tf.spectral.irfftfft_length must be a compile-time constant.
tf.spectral.irfft2dfft_length must be a compile-time constant.
tf.spectral.irfft3dfft_length must be a compile-time constant.
tf.spectral.rfftfft_length must be a compile-time constant.
tf.spectral.rfft2dfft_length must be a compile-time constant.
tf.spectral.rfft3dfft_length must be a compile-time constant.

Unavailable Python APIs

This list is not exhaustive. Ops that are not available onCloud TPU include the following:

ModuleUnavailable Python APIComments
tftf.accumulate_nUses Ref variables.
tf.acos
tf.asin
tf.betainc
tf.bitcast
tf.add_check_numerics_opsPrograms 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_numericsPrograms containing check numerics operators should run, but the check numerics operator is currently ignored.
tf.confusion_matrix
tf.count_nonzeroUsesint64 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

OperatorType Constraint
AbsT={bfloat16,float,int32,int64}
AcosT={bfloat16,complex64,float,int32,int64}
AcoshT={bfloat16,complex64,float}
AddT={bfloat16,complex64,float,int32,int64}
AddNT={bfloat16,complex64,float,int32,int64,uint32,uint64}
AdjustContrastv2T={float}
AdjustHueT={float}
AdjustSaturationT={float}
AllTidx={int32,int64}
AllToAllT={bfloat16,float}
AngleTout={float}
T={complex64}
AnyTidx={int32,int64}
ApproximateEqualT={bfloat16,complex64,float,int32,int64,uint32,uint64}
ArgMaxTidx={int32,int64}
output_type={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
ArgMinTidx={int32,int64}
output_type={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
AsinT={bfloat16,complex64,float,int32,int64}
AsinhT={bfloat16,complex64,float}
AssertT={bfloat16,bool,complex64,float,int32,int64,string,uint32,uint64}
AssignAddVariableOpdtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
AssignSubVariableOpdtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
AssignVariableOpdtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
AtanT={bfloat16,complex64,float,int32,int64}
Atan2T={bfloat16,float}
AtanhT={bfloat16,complex64,float}
AvgPoolT={bfloat16,float}
AvgPool3DT={bfloat16,float}
AvgPool3DGradT={bfloat16,float}
AvgPoolGradT={bfloat16,float}
BatchMatMulT={bfloat16,complex64,float,int32,int64}
BatchToSpaceTidx={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
BatchToSpaceNDTcrops={int32,int64}
Tblock_shape={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
BiasAddT={bfloat16,complex64,float,int32,int64,uint32,uint64}
BiasAddGradT={bfloat16,complex64,float,int32,int64,uint32,uint64}
BiasAddV1T={bfloat16,complex64,float,int32,int64,uint32,uint64}
Bitcasttype={bfloat16,complex64,float,int32,int64,uint32,uint64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
BitwiseAndT={int32,int64,uint32,uint64}
BitwiseOrT={int32,int64,uint32,uint64}
BitwiseXorT={int32,int64,uint32,uint64}
BroadcastArgsT={int32,int64}
BroadcastGradientArgsT={int32,int64}
BroadcastToTidx={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
BucketizeT={float,int32,int64}
CastDstT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SrcT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
CeilT={bfloat16,float}
CheckNumericsT={bfloat16,float}
CholeskyT={float}
ClipByValueT={bfloat16,complex64,float,int32,int64,uint32,uint64}
CollectivePermuteT={bfloat16,float}
ComplexTout={complex64}
T={float}
ComplexAbsTout={float}
T={complex64}
ConcatT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ConcatOffset
ConcatV2Tidx={int32}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ConjT={complex64}
ConjugateTransposeTperm={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
Constdtype={bfloat16,bool,complex64,float,int32,int64,string,uint32,uint64}
ControlTrigger
Conv2DT={bfloat16,float}
Conv2DBackpropFilterT={bfloat16,float}
Conv2DBackpropInputT={bfloat16,float}
Conv3DT={bfloat16,float}
Conv3DBackpropFilterV2T={bfloat16,float}
Conv3DBackpropInputV2Tshape={int32,int64}
T={bfloat16,float}
CosT={bfloat16,complex64,float}
CoshT={bfloat16,complex64,float}
CrossT={bfloat16,float,int32,int64,uint32,uint64}
CrossReplicaSumT={bfloat16,float}
CumprodTidx={int32,int64}
T={bfloat16,float,int32}
CumsumTidx={int32,int64}
T={bfloat16,float,int32}
DataFormatVecPermuteT={int32,int64}
DepthToSpaceT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
DepthwiseConv2dNativeT={bfloat16,float}
DepthwiseConv2dNativeBackpropFilterT={bfloat16,float}
DepthwiseConv2dNativeBackpropInputT={bfloat16,float}
DiagT={bfloat16,complex64,float,int32,int64}
DiagPartT={bfloat16,complex64,float,int32,int64}
DigammaT={bfloat16,float}
DivT={bfloat16,complex64,float,int32,int64}
DivNoNanT={float}
DynamicStitchT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
EluT={bfloat16,float}
EluGradT={bfloat16,float}
Emptydtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
EmptyTensorListshape_type={int32,int64}
element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
EqualT={bfloat16,bool,complex64,float,int32,int64}
ErfT={bfloat16,float}
ErfcT={bfloat16,float}
ExpT={bfloat16,complex64,float}
ExpandDimsTdim={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
Expm1T={bfloat16,complex64,float}
ExtractImagePatchesT={bfloat16,float,int32,int64,uint32,uint64}
FFTTcomplex={complex64}
FFT2DTcomplex={complex64}
FFT3DTcomplex={complex64}
FakeParamdtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
FakeQuantWithMinMaxArgs
FakeQuantWithMinMaxArgsGradient
FakeQuantWithMinMaxVars
FakeQuantWithMinMaxVarsGradient
Fillindex_type={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
FloorT={bfloat16,float}
FloorDivT={bfloat16,complex64,float,int32,int64}
FloorModT={bfloat16,float,int32,int64}
FusedBatchNormT={float}
FusedBatchNormGradT={float}
FusedBatchNormGradV2U={float}
T={bfloat16,float}
FusedBatchNormV2U={float}
T={bfloat16,float}
GatherTindices={int32,int64}
Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
GatherNdTindices={int32,int64}
Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
GatherV2Taxis={int32,int64}
Tindices={int32,int64}
Tparams={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
GetItemT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
GreaterT={bfloat16,float,int32,int64,uint32,uint64}
GreaterEqualT={bfloat16,float,int32,int64,uint32,uint64}
HSVToRGBT={bfloat16,float}
IFFTTcomplex={complex64}
IFFT2DTcomplex={complex64}
IFFT3DTcomplex={complex64}
IRFFT
IRFFT2D
IRFFT3D
IdentityT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
IdentityNT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
IfTout={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}
ImagTout={float}
T={complex64}
InfeedDequeuedtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
InfeedDequeueTupledtypes={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
InplaceAddT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
InplaceUpdateT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
InvT={bfloat16,complex64,float,int32,int64}
InvertT={int32,int64,uint32,uint64}
InvertPermutationT={int32}
IsFiniteT={bfloat16,float}
IsInfT={bfloat16,float}
IsNanT={bfloat16,float}
L2LossT={bfloat16,float}
LRNT={bfloat16,float}
LRNGradT={bfloat16,float}
LeakyReluT={bfloat16,float}
LeakyReluGradT={bfloat16,float}
LeftShiftT={int32,int64,uint32,uint64}
LessT={bfloat16,float,int32,int64,uint32,uint64}
LessEqualT={bfloat16,float,int32,int64,uint32,uint64}
LgammaT={bfloat16,float}
LinSpaceTidx={int32,int64}
T={bfloat16,float}
ListDiffout_idx={int32,int64}
T={int32,int64}
LogT={bfloat16,complex64,float}
Log1pT={bfloat16,complex64,float}
LogSoftmaxT={bfloat16,float}
LogicalAnd
LogicalNot
LogicalOr
MatMulT={bfloat16,complex64,float}
MatrixBandPartTindex={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
MatrixDiagT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
MatrixDiagPartT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
MatrixSetDiagT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
MatrixTriangularSolveT={complex64,float}
MaxTidx={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
MaxPoolT={bfloat16,float,int32,int64}
MaxPool3DT={bfloat16,float}
MaxPool3DGradTInput={bfloat16,float}
T={bfloat16,float}
MaxPool3DGradGradT={float}
MaxPoolGradT={bfloat16,float,int32,int64,uint32,uint64}
MaxPoolGradGradT={float}
MaxPoolGradGradV2T={float}
MaxPoolGradV2T={bfloat16,float,int32,int64,uint32,uint64}
MaxPoolV2T={bfloat16,float,int32,int64}
MaximumT={bfloat16,float,int32,int64}
MeanTidx={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
MinTidx={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
MinimumT={bfloat16,float,int32,int64}
MirrorPadTpaddings={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ModT={bfloat16,float,int32,int64}
MulT={bfloat16,complex64,float,int32,int64}
Multinomialoutput_dtype={int32,int64}
T={bfloat16,float,int32,int64,uint32,uint64}
NegT={bfloat16,complex64,float,int32,int64}
NoOp
NonMaxSuppressionV4T={float}
NotEqualT={bfloat16,bool,complex64,float,int32,int64}
OneHotTI={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
OnesLikeT={bfloat16,bool,complex64,float,int32,int64}
OutfeedEnqueuedtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
OutfeedEnqueueTupledtypes={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
PackT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
PadTpaddings={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
PadV2Tpaddings={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ParallelDynamicStitchT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
PlaceholderWithDefaultdtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
PowT={bfloat16,complex64,float,int32,int64}
PreventGradientT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ProdTidx={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
QrT={float}
QuantizeAndDequantizeV2T={bfloat16,float}
QuantizeAndDequantizeV3T={bfloat16,float}
RFFT
RFFT2D
RFFT3D
RGBToHSVT={bfloat16,float}
RandomShuffleT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
RandomStandardNormalT={int32,int64}
dtype={bfloat16,float}
RandomUniformT={int32,int64}
dtype={bfloat16,float}
RandomUniformIntT={int32,int64}
Tout={int32,int64}
RangeTidx={bfloat16,float,int32,int64}
RankT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ReadVariableOpdtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
RealTout={float}
T={complex64}
RealDivT={bfloat16,complex64,float,int32,int64}
ReciprocalT={bfloat16,complex64,float,int32,int64}
ReciprocalGradT={bfloat16,complex64,float}
RecvTPUEmbeddingActivations
ReluT={bfloat16,float,int32,int64,uint32,uint64}
Relu6T={bfloat16,float,int32,int64,uint32,uint64}
Relu6GradT={bfloat16,float,int32,int64,uint32,uint64}
ReluGradT={bfloat16,float,int32,int64,uint32,uint64}
ReshapeTshape={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResizeBilinearT={bfloat16,float,int32,int64}
ResizeBilinearGradT={bfloat16,float}
ResizeNearestNeighborT={float,int32,int64}
ResourceApplyAdaMaxT={bfloat16,float}
ResourceApplyAdadeltaT={bfloat16,float}
ResourceApplyAdagradT={bfloat16,float}
ResourceApplyAdagradDAT={bfloat16,float}
ResourceApplyAdamT={bfloat16,float}
ResourceApplyAddSignT={bfloat16,float}
ResourceApplyCenteredRMSPropT={bfloat16,float}
ResourceApplyFtrlT={bfloat16,float}
ResourceApplyFtrlV2T={bfloat16,float}
ResourceApplyGradientDescentT={bfloat16,float}
ResourceApplyKerasMomentumT={bfloat16,float}
ResourceApplyMomentumT={bfloat16,float}
ResourceApplyPowerSignT={bfloat16,float}
ResourceApplyProximalAdagradT={bfloat16,float}
ResourceApplyProximalGradientDescentT={bfloat16,float}
ResourceApplyRMSPropT={bfloat16,float}
ResourceGatherTindices={int32,int64}
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResourceScatterAddTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterDivTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterMaxTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterMinTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterMulTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterNdAddTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResourceScatterNdSubTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResourceScatterNdUpdateTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResourceScatterSubTindices={int32,int64}
dtype={bfloat16,complex64,float,int32,int64,uint32,uint64}
ResourceScatterUpdateTindices={int32,int64}
dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ResourceStridedSliceAssignIndex={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ReverseT={bool,complex64,float,int32,int64}
ReverseSequenceTlen={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ReverseV2T={bfloat16,bool,complex64,float,int32,int64}
Tidx={int32,int64}
RightShiftT={int32,int64,uint32,uint64}
RintT={bfloat16,float}
RoundT={bfloat16,complex64,float,int32,int64}
RsqrtT={bfloat16,complex64,float}
RsqrtGradT={bfloat16,complex64,float}
ScatterNdTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SelectT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SeluT={bfloat16,float}
SeluGradT={bfloat16,float}
SendTPUEmbeddingGradients
Shapeout_type={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
ShapeNout_type={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SigmoidT={bfloat16,complex64,float}
SigmoidGradT={bfloat16,complex64,float}
SignT={bfloat16,complex64,float,int32,int64}
SinT={bfloat16,complex64,float}
SinhT={bfloat16,complex64,float}
Sizeout_type={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SliceIndex={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SnapshotT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SoftmaxT={bfloat16,float}
SoftmaxCrossEntropyWithLogitsT={bfloat16,float}
SoftplusT={bfloat16,float}
SoftplusGradT={bfloat16,float}
SoftsignT={bfloat16,float}
SoftsignGradT={bfloat16,float}
SpaceToBatchTpaddings={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SpaceToBatchNDTblock_shape={int32,int64}
Tpaddings={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SpaceToDepthT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SparseMatMulTb={bfloat16,float}
Ta={bfloat16,float}
SparseSoftmaxCrossEntropyWithLogitsTlabels={int32,int64}
T={bfloat16,float}
SparseToDenseTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SplitT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SplitVTlen={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SqrtT={bfloat16,complex64,float}
SqrtGradT={bfloat16,complex64,float}
SquareT={bfloat16,complex64,float,int32,int64}
SquaredDifferenceT={bfloat16,complex64,float,int32,int64}
SqueezeT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StackCloseV2
StackPopV2elem_type={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StackPushV2T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StackV2elem_type={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StatelessIfTout={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}
StatelessMultinomialoutput_dtype={int32,int64}
Tseed={int32}
T={bfloat16,float}
StatelessRandomNormalTseed={int32}
T={int32,int64}
dtype={bfloat16,float}
StatelessRandomUniformTseed={int32}
T={int32,int64}
dtype={bfloat16,float}
StatelessRandomUniformIntTseed={int32}
T={int32,int64}
dtype={int32,int64}
StatelessTruncatedNormalTseed={int32}
T={int32,int64}
dtype={bfloat16,float}
StatelessWhileT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
StopGradientT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StridedSliceIndex={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
StridedSliceGradIndex={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
SubT={bfloat16,complex64,float,int32,int64}
SumTidx={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
SymbolicGradientTout={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
Tin={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TPUEmbeddingActivations
TanT={bfloat16,complex64,float,int32,int64}
TanhT={bfloat16,complex64,float}
TanhGradT={bfloat16,complex64,float}
TensorArrayCloseV3
TensorArrayConcatV3dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArrayGatherV3dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArrayGradV3
TensorArrayReadV3dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArrayScatterV3T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArraySizeV3
TensorArraySplitV3T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArrayV3dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorArrayWriteV3T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorListElementShapeshape_type={int32,int64}
TensorListPopBackelement_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorListPushBackelement_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TensorListReserveshape_type={int32,int64}
element_dtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TileTmultiples={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TopKV2T={bfloat16,float,int32,uint32}
TransposeTperm={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
TruncateDivT={bfloat16,complex64,float,int32,int64}
TruncateModT={bfloat16,float,int32,int64}
TruncatedNormalT={int32,int64}
dtype={float}
UnpackT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
UnsortedSegmentMaxTnumsegments={int32,int64}
Tindices={int32,int64}
T={bfloat16,float,int32,int64,uint32,uint64}
UnsortedSegmentMinTnumsegments={int32,int64}
Tindices={int32,int64}
T={bfloat16,float,int32,int64,uint32,uint64}
UnsortedSegmentProdTnumsegments={int32,int64}
Tindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
UnsortedSegmentSumTnumsegments={int32,int64}
Tindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
VarIsInitializedOp
VariableShapeout_type={int32,int64}
WhileT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
XdivyT={complex64,float}
XlaBroadcastHelperTindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaConvTindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaDequantize
XlaDotT={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaDynamicSliceTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaDynamicUpdateSliceTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaHostComputeToutputs={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
Tinputs={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaIfTout={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}
XlaKeyValueSortV={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
K={bfloat16,float,int32,int64,uint32,uint64}
XlaPadTindices={int32,int64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaRecvdtype={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaRecvFromHostToutput={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaReduceT={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaReduceWindowTindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaSelectAndScatterTindices={int32,int64}
T={bfloat16,complex64,float,int32,int64,uint32,uint64}
XlaSendT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaSendToHostTinput={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaSortT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
XlaWhileT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
XlogyT={complex64,float}
ZerosLikeT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
_ArgT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}
_ArrayToListout_types={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
T={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
_ListToArrayT={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
Tin={bfloat16,bool,complex64,float,int32,int64,uint32,uint64}
_RetvalT={bfloat16,bool,complex64,float,int32,int64,resource,uint32,uint64}

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2026-02-19 UTC.