From d7756a7184cf453d21a7ef968237d10395d1b274 Mon Sep 17 00:00:00 2001 From: Cyrille Nofficial Date: Thu, 27 Oct 2022 14:25:09 +0200 Subject: [PATCH] build: fix typing/mypy issues --- mypy.ini | 3 + src/tf_container/__init__.py | 16 - src/tf_container/train.py | 74 +- tensorflow-stubs/__init__.py | 0 tensorflow-stubs/__init__.pyi | 5085 +++++++++++++++++ tensorflow-stubs/core/util/__init__.pyi | 3 + tensorflow-stubs/keras/__init__.pyi | 4 + .../keras/__internal__/__init__.pyi | 1 + .../keras/__internal__/backend/__init__.pyi | 1 + .../keras/__internal__/layers/__init__.pyi | 2 + .../keras/__internal__/losses/__init__.pyi | 1 + .../keras/__internal__/models/__init__.pyi | 1 + .../keras/__internal__/utils/__init__.pyi | 3 + .../keras/activations/__init__.pyi | 1 + .../keras/applications/__init__.pyi | 18 + .../keras/applications/convnext/__init__.pyi | 1 + .../keras/applications/densenet/__init__.pyi | 1 + .../applications/efficientnet/__init__.pyi | 1 + .../applications/efficientnet_v2/__init__.pyi | 1 + .../applications/imagenet_utils/__init__.pyi | 1 + .../inception_resnet_v2/__init__.pyi | 1 + .../applications/inception_v3/__init__.pyi | 1 + .../keras/applications/mobilenet/__init__.pyi | 1 + .../applications/mobilenet_v2/__init__.pyi | 1 + .../applications/mobilenet_v3/__init__.pyi | 1 + .../keras/applications/nasnet/__init__.pyi | 1 + .../keras/applications/regnet/__init__.pyi | 1 + .../keras/applications/resnet/__init__.pyi | 1 + .../keras/applications/resnet50/__init__.pyi | 1 + .../keras/applications/resnet_rs/__init__.pyi | 1 + .../keras/applications/resnet_v2/__init__.pyi | 1 + .../keras/applications/vgg16/__init__.pyi | 1 + .../keras/applications/vgg19/__init__.pyi | 1 + .../keras/applications/xception/__init__.pyi | 1 + tensorflow-stubs/keras/backend/__init__.pyi | 3 + .../keras/backend/experimental/__init__.pyi | 1 + tensorflow-stubs/keras/callbacks/__init__.pyi | 2 + .../keras/callbacks/experimental/__init__.pyi | 0 .../keras/constraints/__init__.pyi | 1 + tensorflow-stubs/keras/datasets/__init__.pyi | 1 + .../datasets/boston_housing/__init__.pyi | 1 + .../keras/datasets/cifar10/__init__.pyi | 1 + .../keras/datasets/cifar100/__init__.pyi | 1 + .../keras/datasets/fashion_mnist/__init__.pyi | 1 + .../keras/datasets/imdb/__init__.pyi | 1 + .../keras/datasets/mnist/__init__.pyi | 1 + .../keras/datasets/reuters/__init__.pyi | 1 + tensorflow-stubs/keras/dtensor/__init__.pyi | 1 + .../keras/dtensor/experimental/__init__.pyi | 2 + .../experimental/optimizers/__init__.pyi | 1 + tensorflow-stubs/keras/estimator/__init__.pyi | 0 .../keras/experimental/__init__.pyi | 4 + .../keras/initializers/__init__.pyi | 2 + tensorflow-stubs/keras/layers/__init__.pyi | 97 + .../keras/layers/experimental/__init__.pyi | 4 + .../experimental/preprocessing/__init__.pyi | 10 + tensorflow-stubs/keras/losses/__init__.pyi | 1 + tensorflow-stubs/keras/metrics/__init__.pyi | 4 + .../keras/mixed_precision/__init__.pyi | 1 + tensorflow-stubs/keras/models/__init__.pyi | 6 + .../keras/models/experimental/__init__.pyi | 1 + .../keras/optimizers/__init__.pyi | 10 + .../optimizers/experimental/__init__.pyi | 10 + .../keras/optimizers/legacy/__init__.pyi | 9 + .../keras/optimizers/schedules/__init__.pyi | 1 + tensorflow-stubs/keras/premade/__init__.pyi | 0 .../keras/preprocessing/__init__.pyi | 4 + .../keras/preprocessing/image/__init__.pyi | 2 + .../keras/preprocessing/sequence/__init__.pyi | 2 + .../keras/preprocessing/text/__init__.pyi | 1 + .../keras/regularizers/__init__.pyi | 1 + tensorflow-stubs/keras/utils/__init__.pyi | 16 + .../keras/utils/experimental/__init__.pyi | 1 + tensorflow-stubs/keras/wrappers/__init__.pyi | 1 + .../keras/wrappers/scikit_learn/__init__.pyi | 1 + tensorflow-stubs/math/__init__.pyi | 1135 ++++ tensorflow-stubs/py.typed | 1 + tensorflow-stubs/python/__init__.pyi | 3 + tensorflow-stubs/python/client/__init__.pyi | 3 + tensorflow-stubs/python/ops/__init__.pyi | 3 + tensorflow-stubs/python/util/__init__.pyi | 3 + tensorflow-stubs/train/__init__.pyi | 10 + 82 files changed, 6552 insertions(+), 46 deletions(-) create mode 100644 mypy.ini create mode 100644 tensorflow-stubs/__init__.py create mode 100755 tensorflow-stubs/__init__.pyi create mode 100644 tensorflow-stubs/core/util/__init__.pyi create mode 100644 tensorflow-stubs/keras/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/backend/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/layers/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/losses/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/models/__init__.pyi create mode 100644 tensorflow-stubs/keras/__internal__/utils/__init__.pyi create mode 100644 tensorflow-stubs/keras/activations/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/convnext/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/densenet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/efficientnet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/efficientnet_v2/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/imagenet_utils/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/inception_resnet_v2/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/inception_v3/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/mobilenet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/mobilenet_v2/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/mobilenet_v3/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/nasnet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/regnet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/resnet/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/resnet50/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/resnet_rs/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/resnet_v2/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/vgg16/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/vgg19/__init__.pyi create mode 100644 tensorflow-stubs/keras/applications/xception/__init__.pyi create mode 100644 tensorflow-stubs/keras/backend/__init__.pyi create mode 100644 tensorflow-stubs/keras/backend/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/callbacks/__init__.pyi create mode 100644 tensorflow-stubs/keras/callbacks/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/constraints/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/boston_housing/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/cifar10/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/cifar100/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/fashion_mnist/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/imdb/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/mnist/__init__.pyi create mode 100644 tensorflow-stubs/keras/datasets/reuters/__init__.pyi create mode 100644 tensorflow-stubs/keras/dtensor/__init__.pyi create mode 100644 tensorflow-stubs/keras/dtensor/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/dtensor/experimental/optimizers/__init__.pyi create mode 100644 tensorflow-stubs/keras/estimator/__init__.pyi create mode 100644 tensorflow-stubs/keras/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/initializers/__init__.pyi create mode 100644 tensorflow-stubs/keras/layers/__init__.pyi create mode 100644 tensorflow-stubs/keras/layers/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/layers/experimental/preprocessing/__init__.pyi create mode 100644 tensorflow-stubs/keras/losses/__init__.pyi create mode 100644 tensorflow-stubs/keras/metrics/__init__.pyi create mode 100644 tensorflow-stubs/keras/mixed_precision/__init__.pyi create mode 100644 tensorflow-stubs/keras/models/__init__.pyi create mode 100644 tensorflow-stubs/keras/models/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/optimizers/__init__.pyi create mode 100644 tensorflow-stubs/keras/optimizers/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/optimizers/legacy/__init__.pyi create mode 100644 tensorflow-stubs/keras/optimizers/schedules/__init__.pyi create mode 100644 tensorflow-stubs/keras/premade/__init__.pyi create mode 100644 tensorflow-stubs/keras/preprocessing/__init__.pyi create mode 100644 tensorflow-stubs/keras/preprocessing/image/__init__.pyi create mode 100644 tensorflow-stubs/keras/preprocessing/sequence/__init__.pyi create mode 100644 tensorflow-stubs/keras/preprocessing/text/__init__.pyi create mode 100644 tensorflow-stubs/keras/regularizers/__init__.pyi create mode 100644 tensorflow-stubs/keras/utils/__init__.pyi create mode 100644 tensorflow-stubs/keras/utils/experimental/__init__.pyi create mode 100644 tensorflow-stubs/keras/wrappers/__init__.pyi create mode 100644 tensorflow-stubs/keras/wrappers/scikit_learn/__init__.pyi create mode 100755 tensorflow-stubs/math/__init__.pyi create mode 100644 tensorflow-stubs/py.typed create mode 100644 tensorflow-stubs/python/__init__.pyi create mode 100644 tensorflow-stubs/python/client/__init__.pyi create mode 100644 tensorflow-stubs/python/ops/__init__.pyi create mode 100644 tensorflow-stubs/python/util/__init__.pyi create mode 100644 tensorflow-stubs/train/__init__.pyi diff --git a/mypy.ini b/mypy.ini new file mode 100644 index 0000000..c859290 --- /dev/null +++ b/mypy.ini @@ -0,0 +1,3 @@ +[mypy] +strict = true +plugins = numpy.typing.mypy_plugin diff --git a/src/tf_container/__init__.py b/src/tf_container/__init__.py index 7b63c74..e69de29 100644 --- a/src/tf_container/__init__.py +++ b/src/tf_container/__init__.py @@ -1,16 +0,0 @@ -# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"). -# You may not use this file except in compliance with the License. -# A copy of the License is located at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# or in the "license" file accompanying this file. This file is distributed -# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -# express or implied. See the License for the specific language governing -# permissions and limitations under the License. - -from tf_container.train_entry_point import train - -__all__ = ['train'] diff --git a/src/tf_container/train.py b/src/tf_container/train.py index 2aa59d4..3487eb7 100644 --- a/src/tf_container/train.py +++ b/src/tf_container/train.py @@ -5,25 +5,31 @@ import os # import container_support as cs import argparse import json +import pathlib +import typing import numpy as np import re import tensorflow as tf import zipfile + +import tensorflow.keras.losses + # from tensorflow.keras import backend as K from tensorflow.keras import callbacks -from tensorflow.keras.layers import Convolution2D +from tensorflow.keras.layers import Conv2D from tensorflow.keras.layers import Dropout, Flatten, Dense from tensorflow.keras.layers import Input +from tensorflow.keras.layers import Layer from tensorflow.keras.models import Model from tensorflow.keras.preprocessing.image import load_img, img_to_array -from tensorflow.python.client import device_lib +from numpy import typing as npt MODEL_CATEGORICAL = "categorical" MODEL_LINEAR = "linear" -def linear_bin(a: float, N: int = 15, offset: int = 1, R: float = 2.0): +def linear_bin(a: float, N: int = 15, offset: int = 1, R: float = 2.0) -> npt.NDArray[np.float64]: """ create a bin of length N map val A to range R @@ -37,7 +43,7 @@ def linear_bin(a: float, N: int = 15, offset: int = 1, R: float = 2.0): return arr -def clamp(n, min, max): +def clamp(n: int, min: int, max: int) -> int: if n <= min: return min if n >= max: @@ -45,8 +51,8 @@ def clamp(n, min, max): return n -def get_data(root_dir, filename): - print('load data from file ' + filename) +def get_data(root_dir: pathlib.Path, filename: str) -> typing.List[typing.Any]: + # print('load data from file ' + filename) d = json.load(open(os.path.join(root_dir, filename))) return [(d['user/angle']), root_dir, d['cam/image_array']] @@ -54,16 +60,16 @@ def get_data(root_dir, filename): numbers = re.compile(r'(\d+)') -def unzip_file(root, f): +def unzip_file(root: pathlib.Path, f: str) -> None: zip_ref = zipfile.ZipFile(os.path.join(root, f), 'r') zip_ref.extractall(root) zip_ref.close() -def train(model_type: str, batch_size: int, slide_size: int, img_height: int, img_width: int, img_depth: int, horizon: int, drop: float): +def train(model_type: str, batch_size: int, slide_size: int, img_height: int, img_width: int, img_depth: int, + horizon: int, drop: float) -> None: # env = cs.TrainingEnvironment() - print(device_lib.list_local_devices()) os.system('mkdir -p logs') # ### Loading the files ### @@ -75,11 +81,12 @@ def train(model_type: str, batch_size: int, slide_size: int, img_height: int, im for root, dirs, files in os.walk('/opt/ml/input/data/train'): for f in files: if f.endswith('.zip'): - unzip_file(root, f) + unzip_file(pathlib.Path(root), f) for root, dirs, files in os.walk('/opt/ml/input/data/train'): data.extend( - [get_data(root, f) for f in sorted(files, key=str.lower) if f.startswith('record') and f.endswith('.json')]) + [get_data(pathlib.Path(root), f) for f in sorted(files, key=str.lower) if + f.startswith('record') and f.endswith('.json')]) # ### Loading throttle and angle ### @@ -88,7 +95,9 @@ def train(model_type: str, batch_size: int, slide_size: int, img_height: int, im # ### Loading images ### if horizon > 0: - images = np.array([img_to_array(load_img(os.path.join(d[1], d[2])).crop((0, horizon, img_width, img_height))) for d in data], 'f') + images = np.array( + [img_to_array(load_img(os.path.join(d[1], d[2])).crop((0, horizon, img_width, img_height))) for d in data], + 'f') else: images = np.array([img_to_array(load_img(os.path.join(d[1], d[2]))) for d in data], 'f') @@ -122,7 +131,7 @@ def train(model_type: str, batch_size: int, slide_size: int, img_height: int, im model_filepath = '/opt/ml/model/model_lin' angle_cat_array = np.array([a for a in angle_array]) model = default_linear(input_shape=(img_height - horizon, img_width, img_depth), drop=drop) - loss = 'mse' + loss = tensorflow.keras.losses.Loss('mse') optimizer = 'rmsprop' else: raise Exception("invalid model type") @@ -139,14 +148,14 @@ def train(model_type: str, batch_size: int, slide_size: int, img_height: int, im callbacks_list = [save_best, early_stop, logs] model.compile(optimizer=optimizer, - loss=loss,) + loss=loss, ) model.fit({'img_in': images}, {'angle_out': angle_cat_array, }, batch_size=batch_size, epochs=100, verbose=1, validation_split=0.2, shuffle=True, callbacks=callbacks_list) # Save model for tensorflow using model.save("/opt/ml/model/tfModel", save_format="tf") - def representative_dataset(): + def representative_dataset() -> typing.Generator[typing.List[tf.float32], typing.Any, None]: for d in tf.data.Dataset.from_tensor_slices(images).batch(1).take(100): yield [tf.dtypes.cast(d, tf.float32)] @@ -163,12 +172,13 @@ def train(model_type: str, batch_size: int, slide_size: int, img_height: int, im tflite_model = converter.convert() # Save the model. - with open('/opt/ml/model/model_' + model_type + '_' + str(img_width) + 'x' + str(img_height) + 'h' + str(horizon) + '.tflite', - 'wb') as f: - f.write(tflite_model) + with open(file=f'/opt/ml/model/model_{model_type}_{img_width}x{img_height}h{horizon}.tflite', + mode='wb') as f_output: + f_output.write(tflite_model) -def conv2d(filters, kernel, strides, layer_num, activation='relu'): +def conv2d(filters: float, kernel: typing.Union[int, typing.Tuple[int, int]], strides: typing.Union[int, typing.Tuple[int, int]], layer_num: int, + activation: str = 'relu') -> Conv2D: """ Helper function to create a standard valid-padded convolutional layer with square kernel and strides and unified naming convention @@ -179,14 +189,14 @@ def conv2d(filters, kernel, strides, layer_num, activation='relu'): :param activation: activation, defaults to relu :return: tf.keras Convolution2D layer """ - return Convolution2D(filters=filters, - kernel_size=(kernel, kernel), - strides=(strides, strides), - activation=activation, - name='conv2d_' + str(layer_num)) + return Conv2D(filters=filters, + kernel_size=(kernel, kernel), + strides=(strides, strides), + activation=activation, + name='conv2d_' + str(layer_num)) -def core_cnn_layers(img_in: Input, img_height: int, img_width: int, drop: float, l4_stride: int = 1): +def core_cnn_layers(img_in: Input, img_height: int, img_width: int, drop: float, l4_stride: int = 1) -> Layer: """ Returns the core CNN layers that are shared among the different models, like linear, imu, behavioural @@ -198,7 +208,7 @@ def core_cnn_layers(img_in: Input, img_height: int, img_width: int, drop: float, :return: stack of CNN layers """ x = img_in - x = conv2d(img_height/5, 5, 2, 1)(x) + x = conv2d(img_height / 5, 5, 2, 1)(x) x = Dropout(drop)(x) x = conv2d(img_width / 5, 5, 2, 2)(x) x = Dropout(drop)(x) @@ -212,9 +222,9 @@ def core_cnn_layers(img_in: Input, img_height: int, img_width: int, drop: float, return x -def default_linear(input_shape=(120, 160, 3), drop=0.2): +def default_linear(input_shape: typing.Tuple[int, int, int] = (120, 160, 3), drop: float = 0.2) -> Model: img_in = Input(shape=input_shape, name='img_in') - x = core_cnn_layers(img_in, img_width=input_shape[1], img_height=input_shape[0], drop=drop) + x = core_cnn_layers(img_in, img_width=input_shape[1], img_height=input_shape[0], drop=drop) x = Dense(100, activation='relu', name='dense_1')(x) x = Dropout(drop)(x) x = Dense(50, activation='relu', name='dense_2')(x) @@ -225,7 +235,7 @@ def default_linear(input_shape=(120, 160, 3), drop=0.2): return model -def default_categorical(input_shape=(120, 160, 3), drop=0.2): +def default_categorical(input_shape: typing.Tuple[int, int, int] = (120, 160, 3), drop: float = 0.2) -> Model: img_in = Input(shape=input_shape, name='img_in') x = core_cnn_layers(img_in, img_width=input_shape[1], img_height=input_shape[0], drop=drop, l4_stride=2) x = Dense(100, activation='relu', name="dense_1")(x) @@ -239,7 +249,7 @@ def default_categorical(input_shape=(120, 160, 3), drop=0.2): return model -if __name__ == "__main__": +def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("--slide_size", type=int, default=0) @@ -263,3 +273,7 @@ if __name__ == "__main__": horizon=params["horizon"], drop=params["drop"], ) + + +if __name__ == "__main__": + main() diff --git a/tensorflow-stubs/__init__.py b/tensorflow-stubs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tensorflow-stubs/__init__.pyi b/tensorflow-stubs/__init__.pyi new file mode 100755 index 0000000..5e9bbe9 --- /dev/null +++ b/tensorflow-stubs/__init__.pyi @@ -0,0 +1,5085 @@ +# Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""TensorFlow stubs. + +NOTE: This file is generated from templates/tensorflow.pyi + using a Google-internal tool. +""" + +# BEGIN: tensor_annotations annotations +from typing import Any, TypeVar, Tuple, overload +from typing_extensions import Literal + +from tensor_annotations.axes import Axis +from tensor_annotations.tensorflow import Tensor0, Tensor1, Tensor2, Tensor3, Tensor4, Tensor5 + + +A1 = TypeVar('A1', bound=Axis) +A2 = TypeVar('A2', bound=Axis) +A3 = TypeVar('A3', bound=Axis) +A4 = TypeVar('A4', bound=Axis) +A5 = TypeVar('A5', bound=Axis) +# This alias makes the meaning clearer in code. +# Unfortunately, it still shows up as 'Any' in pytype output. +AnyDType = Any +DT = TypeVar('DT') + +TRUE = Literal[True] +FALSE = Literal[False] + +LN1 = Literal[-1] +L0 = Literal[0] +L1 = Literal[1] +L2 = Literal[2] +L3 = Literal[3] +L4 = Literal[4] + +Shape1 = Tuple[int] +Shape2 = Tuple[int, int] +Shape3 = Tuple[int, int, int] +Shape4 = Tuple[int, int, int, int] +Shape5 = Tuple[int, int, int, int, int] +# END: tensor_annotations annotations + +import enum +from typing import Any + +def __getattr__(name) -> Any: ... + +_HAS_DYNAMIC_ATTRIBUTES = True + +class AggregationMethod(object): + _HAS_DYNAMIC_ATTRIBUTES = True + ADD_N: Any + DEFAULT: Any + EXPERIMENTAL_ACCUMULATE_N: Any + EXPERIMENTAL_TREE: Any + def __init__(*args, **kwargs) -> None: ... + +class CriticalSection(object): + _HAS_DYNAMIC_ATTRIBUTES = True + name: Any + def __init__(self, name=..., shared_name=..., critical_section_def=..., import_scope=...) -> None: ... + def execute(self, fn, exclusive_resource_access=..., name=...) -> Any: ... + +class DType(): + _HAS_DYNAMIC_ATTRIBUTES = True + as_datatype_enum: Any + as_numpy_dtype: Any + base_dtype: Any + is_bool: Any + is_complex: Any + is_floating: Any + is_integer: Any + is_numpy_compatible: Any + is_quantized: Any + is_unsigned: Any + limits: Any + max: Any + min: Any + name: Any + real_dtype: Any + size: Any + def __init__(*args, **kwargs) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def is_compatible_with(self, other) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, types) -> Any: ... + +class DeviceSpec(object): + _HAS_DYNAMIC_ATTRIBUTES = True + device_index: Any + device_type: Any + job: Any + replica: Any + task: Any + def __init__(self, job=..., replica=..., task=..., device_type=..., device_index=...) -> None: ... + @classmethod + def from_string(cls, spec) -> Any: ... + def make_merged_spec(self, dev) -> Any: ... + def parse_from_string(self, spec) -> Any: ... + def replace(self, **kwargs) -> Any: ... + def to_string(self) -> Any: ... + +class GradientTape(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(self, persistent=..., watch_accessed_variables=...) -> None: ... + def batch_jacobian(self, target, source, unconnected_gradients=..., parallel_iterations=..., experimental_use_pfor=...) -> Any: ... + def gradient(self, target, sources, output_gradients=..., unconnected_gradients=...) -> Any: ... + def jacobian(self, target, sources, unconnected_gradients=..., parallel_iterations=..., experimental_use_pfor=...) -> Any: ... + def reset(self) -> Any: ... + def stop_recording(self) -> Any: ... + def watch(self, tensor) -> Any: ... + def watched_variables(self) -> Any: ... + +class Graph(object): + _HAS_DYNAMIC_ATTRIBUTES = True + building_function: Any + collections: Any + finalized: Any + graph_def_versions: Any + seed: Any + version: Any + def __init__(self) -> None: ... + def add_to_collection(self, name, value) -> Any: ... + def add_to_collections(self, names, value) -> Any: ... + def as_default(self) -> Any: ... + def as_graph_def(self, from_version=..., add_shapes=...) -> Any: ... + def as_graph_element(self, obj, allow_tensor=..., allow_operation=...) -> Any: ... + def clear_collection(self, name) -> Any: ... + def colocate_with(self, op, ignore_existing=...) -> Any: ... + def container(self, container_name) -> Any: ... + def control_dependencies(self, control_inputs) -> Any: ... + def create_op(self, op_type, inputs, dtypes=..., input_types=..., name=..., attrs=..., op_def=..., compute_shapes=..., compute_device=...) -> Any: ... + def device(self, device_name_or_function) -> Any: ... + def finalize(self) -> Any: ... + def get_all_collection_keys(self) -> Any: ... + def get_collection(self, name, scope=...) -> Any: ... + def get_collection_ref(self, name) -> Any: ... + def get_name_scope(self) -> Any: ... + def get_operation_by_name(self, name) -> Any: ... + def get_operations(self) -> Any: ... + def get_tensor_by_name(self, name) -> Any: ... + def gradient_override_map(self, op_type_map) -> Any: ... + def is_feedable(self, tensor) -> Any: ... + def is_fetchable(self, tensor_or_op) -> Any: ... + def name_scope(self, name) -> Any: ... + def prevent_feeding(self, tensor) -> Any: ... + def prevent_fetching(self, op) -> Any: ... + def switch_to_thread_local(self) -> Any: ... + def unique_name(self, name, mark_as_used=...) -> Any: ... + +class IndexedSlices(object): + _HAS_DYNAMIC_ATTRIBUTES = True + dense_shape: Any + device: Any + dtype: Any + graph: Any + indices: Any + name: Any + op: Any + shape: Any + values: Any + def __init__(self, values, indices, dense_shape=...) -> None: ... + def consumers(self) -> Any: ... + +class IndexedSlicesSpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + value_type: Any + def __init__(self, shape=..., dtype=..., indices_dtype=..., dense_shape_dtype=..., indices_shape=...) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def is_compatible_with(self, spec_or_value) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class Module(object): + _HAS_DYNAMIC_ATTRIBUTES = True + name: Any + name_scope: Any + non_trainable_variables: Any + submodules: Any + trainable_variables: Any + variables: Any + def __init__(self, name=...) -> None: ... + @classmethod + def with_name_scope(cls, method) -> Any: ... + +class Operation(object): + _HAS_DYNAMIC_ATTRIBUTES = True + control_inputs: Any + device: Any + graph: Any + inputs: Any + name: Any + node_def: Any + op_def: Any + outputs: Any + traceback: Any + type: Any + def __init__(self, node_def, g, inputs=..., output_types=..., control_inputs=..., input_types=..., original_op=..., op_def=...) -> None: ... + def colocation_groups(self) -> Any: ... + def experimental_set_type(self, type_proto) -> Any: ... + def get_attr(self, name) -> Any: ... + def run(self, feed_dict=..., session=...) -> Any: ... + def values(self) -> Any: ... + +class OptionalSpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + value_type: Any + def __init__(self, element_spec) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def from_value(value) -> Any: ... + def is_compatible_with(self, spec_or_value) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class RaggedTensor(object): + _HAS_DYNAMIC_ATTRIBUTES = True + dtype: Any + flat_values: Any + nested_row_splits: Any + ragged_rank: Any + row_splits: Any + shape: Any + uniform_row_length: Any + values: Any + def __init__(self, values, row_partition, internal=...) -> None: ... + def bounding_shape(self, axis=..., name=..., out_type=...) -> Any: ... + def consumers(self) -> Any: ... + @classmethod + def from_nested_row_lengths(cls, flat_values, nested_row_lengths, name=..., validate=...) -> Any: ... + @classmethod + def from_nested_row_splits(cls, flat_values, nested_row_splits, name=..., validate=...) -> Any: ... + @classmethod + def from_nested_value_rowids(cls, flat_values, nested_value_rowids, nested_nrows=..., name=..., validate=...) -> Any: ... + @classmethod + def from_row_lengths(cls, values, row_lengths, name=..., validate=...) -> Any: ... + @classmethod + def from_row_limits(cls, values, row_limits, name=..., validate=...) -> Any: ... + @classmethod + def from_row_splits(cls, values, row_splits, name=..., validate=...) -> Any: ... + @classmethod + def from_row_starts(cls, values, row_starts, name=..., validate=...) -> Any: ... + @classmethod + def from_sparse(cls, st_input, name=..., row_splits_dtype=...) -> Any: ... + @classmethod + def from_tensor(cls, tensor, lengths=..., padding=..., ragged_rank=..., name=..., row_splits_dtype=...) -> Any: ... + @classmethod + def from_uniform_row_length(cls, values, uniform_row_length, nrows=..., validate=..., name=...) -> Any: ... + @classmethod + def from_value_rowids(cls, values, value_rowids, nrows=..., name=..., validate=...) -> Any: ... + def get_shape(self) -> Any: ... + def merge_dims(self, outer_axis, inner_axis) -> Any: ... + def nested_row_lengths(self, name=...) -> Any: ... + def nested_value_rowids(self, name=...) -> Any: ... + def nrows(self, out_type=..., name=...) -> Any: ... + def numpy(self) -> Any: ... + def row_lengths(self, axis=..., name=...) -> Any: ... + def row_limits(self, name=...) -> Any: ... + def row_starts(self, name=...) -> Any: ... + def to_list(self) -> Any: ... + def to_sparse(self, name=...) -> Any: ... + def to_tensor(self, default_value=..., name=..., shape=...) -> Any: ... + def value_rowids(self, name=...) -> Any: ... + def with_flat_values(self, new_values) -> Any: ... + def with_row_splits_dtype(self, dtype) -> Any: ... + def with_values(self, new_values) -> Any: ... + +class RaggedTensorSpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + dtype: Any + flat_values_spec: Any + ragged_rank: Any + row_splits_dtype: Any + shape: Any + value_type: Any + def __init__(self, shape=..., dtype=..., ragged_rank=..., row_splits_dtype=..., flat_values_spec=...) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + @classmethod + def from_value(cls, value) -> Any: ... + def is_compatible_with(self, spec_or_value) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class RegisterGradient(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(self, op_type) -> None: ... + +class SparseTensor(object): + _HAS_DYNAMIC_ATTRIBUTES = True + dense_shape: Any + dtype: Any + graph: Any + indices: Any + op: Any + shape: Any + values: Any + def __init__(self, indices, values, dense_shape) -> None: ... + def consumers(self) -> Any: ... + def eval(self, feed_dict=..., session=...) -> Any: ... + @classmethod + def from_value(cls, sparse_tensor_value) -> Any: ... + def get_shape(self) -> Any: ... + def with_values(self, new_values) -> Any: ... + +class SparseTensorSpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + dtype: Any + shape: Any + value_type: Any + def __init__(self, shape=..., dtype=...) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + @classmethod + def from_value(cls, value) -> Any: ... + def is_compatible_with(self, spec_or_value) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class Summary(object): + def __init__(self, value=...) -> None: ... + def Value(**kwargs) -> Any: ... + +class Tensor(object): + _HAS_DYNAMIC_ATTRIBUTES = True + OVERLOADABLE_OPERATORS: Any + device: Any + dtype: Any + graph: Any + name: Any + op: Any + shape: Any + value_index: Any + def __init__(self, op, value_index, dtype) -> None: ... + def consumers(self) -> Any: ... + def eval(self, feed_dict=..., session=...) -> Any: ... + def experimental_ref(self) -> Any: ... + def get_shape(self) -> Any: ... + def ref(self) -> Any: ... + def set_shape(self, shape) -> Any: ... + +class TensorArray(object): + _HAS_DYNAMIC_ATTRIBUTES = True + dtype: Any + dynamic_size: Any + element_shape: Any + flow: Any + handle: Any + def __init__(self, dtype, size=..., dynamic_size=..., clear_after_read=..., tensor_array_name=..., handle=..., flow=..., infer_shape=..., element_shape=..., colocate_with_first_write_call=..., name=...) -> None: ... + def close(self, name=...) -> Any: ... + def concat(self, name=...) -> Any: ... + def gather(self, indices, name=...) -> Any: ... + def grad(self, source, flow=..., name=...) -> Any: ... + def identity(self) -> Any: ... + def read(self, index, name=...) -> Any: ... + def scatter(self, indices, value, name=...) -> Any: ... + def size(self, name=...) -> Any: ... + def split(self, value, lengths, name=...) -> Any: ... + def stack(self, name=...) -> Any: ... + def unstack(self, value, name=...) -> Any: ... + def write(self, index, value, name=...) -> Any: ... + +class TensorArraySpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + value_type: Any + def __init__(self, element_shape=..., dtype=..., dynamic_size=..., infer_shape=...) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def from_value(value) -> Any: ... + def is_compatible_with(self, other) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class TensorShape(object): + _HAS_DYNAMIC_ATTRIBUTES = True + dims: Any + ndims: Any + rank: Any + def __init__(self, dims) -> None: ... + def as_list(self) -> list[int]: ... + def as_proto(self) -> Any: ... + def assert_has_rank(self, rank) -> Any: ... + def assert_is_compatible_with(self, other) -> Any: ... + def assert_is_fully_defined(self) -> Any: ... + def assert_same_rank(self, other) -> Any: ... + def concatenate(self, other) -> Any: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def is_compatible_with(self, other) -> Any: ... + def is_fully_defined(self) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def merge_with(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_shape(self, other) -> Any: ... + def num_elements(self) -> Any: ... + def with_rank(self, rank) -> Any: ... + def with_rank_at_least(self, rank) -> Any: ... + def with_rank_at_most(self, rank) -> Any: ... + + @overload + def __getitem__(self, key: int) -> int: ... + + @overload + def __getitem__(self, key: slice) -> TensorShape: ... + +class TensorSpec(TypeSpec, object): + _HAS_DYNAMIC_ATTRIBUTES = True + dtype: Any + name: Any + shape: Any + value_type: Any + def __init__(self, shape, dtype=..., name=...) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + @classmethod + def from_spec(cls, spec, name=...) -> Any: ... + @classmethod + def from_tensor(cls, tensor, name=...) -> Any: ... + def is_compatible_with(self, spec_or_tensor) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class TypeSpec(object): + _HAS_DYNAMIC_ATTRIBUTES = True + value_type: Any + def __init__(*args, **kwargs) -> None: ... + def experimental_as_proto(self) -> Any: ... + @classmethod + def experimental_from_proto(cls, proto) -> Any: ... + @classmethod + def experimental_type_proto(cls) -> Any: ... + def is_compatible_with(self, spec_or_value) -> Any: ... + def is_subtype_of(self, other) -> Any: ... + def most_specific_common_supertype(self, others) -> Any: ... + def most_specific_compatible_type(self, other) -> Any: ... + +class UnconnectedGradients(enum.Enum): + _HAS_DYNAMIC_ATTRIBUTES = True + NONE: Any + ZERO: Any + +class Variable(object): + _HAS_DYNAMIC_ATTRIBUTES = True + aggregation: Any + constraint: Any + device: Any + dtype: Any + graph: Any + initial_value: Any + initializer: Any + name: Any + op: Any + shape: Any + synchronization: Any + trainable: Any + def __init__(self, initial_value=..., trainable=..., validate_shape=..., caching_device=..., name=..., variable_def=..., dtype=..., import_scope=..., constraint=..., synchronization=..., aggregation=..., shape=..., experimental_enable_variable_lifting=...) -> None: ... + def assign(self, value, use_locking=..., name=..., read_value=...) -> Any: ... + def assign_add(self, delta, use_locking=..., name=..., read_value=...) -> Any: ... + def assign_sub(self, delta, use_locking=..., name=..., read_value=...) -> Any: ... + def batch_scatter_update(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def count_up_to(self, limit) -> Any: ... + def eval(self, session=...) -> Any: ... + def experimental_ref(self) -> Any: ... + def from_proto(variable_def, import_scope=...) -> Any: ... + def gather_nd(self, indices, name=...) -> Any: ... + def get_shape(self) -> Any: ... + def initialized_value(self) -> Any: ... + def load(self, value, session=...) -> Any: ... + def read_value(self) -> Any: ... + def ref(self) -> Any: ... + def scatter_add(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_div(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_max(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_min(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_mul(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_nd_add(self, indices, updates, name=...) -> Any: ... + def scatter_nd_sub(self, indices, updates, name=...) -> Any: ... + def scatter_nd_update(self, indices, updates, name=...) -> Any: ... + def scatter_sub(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def scatter_update(self, sparse_delta, use_locking=..., name=...) -> Any: ... + def set_shape(self, shape) -> Any: ... + def sparse_read(self, indices, name=...) -> Any: ... + def to_proto(self, export_scope=...) -> Any: ... + def value(self) -> Any: ... + +class VariableAggregation(enum.Enum): + _HAS_DYNAMIC_ATTRIBUTES = True + MEAN: Any + NONE: Any + ONLY_FIRST_REPLICA: Any + SUM: Any + +class VariableSynchronization(enum.Enum): + _HAS_DYNAMIC_ATTRIBUTES = True + AUTO: Any + NONE: Any + ON_READ: Any + ON_WRITE: Any + +bfloat16: Any +bool: Any +complex128: Any +complex64: Any +class constant_initializer(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(self, value=...) -> None: ... + @classmethod + def from_config(cls, config) -> Any: ... + def get_config(self) -> Any: ... + +double: Any +float16: Any +float32: Any +float64: Any +half: Any +int16: Any +int32: Any +int64: Any +int8: Any +class name_scope(object): + _HAS_DYNAMIC_ATTRIBUTES = True + name: Any + def __init__(self, name) -> None: ... + +newaxis: Any +class ones_initializer(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(*args, **kwargs) -> None: ... + @classmethod + def from_config(cls, config) -> Any: ... + def get_config(self) -> Any: ... + +qint16: Any +qint32: Any +qint8: Any +quint16: Any +quint8: Any +class random_normal_initializer(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(self, mean=..., stddev=..., seed=...) -> None: ... + @classmethod + def from_config(cls, config) -> Any: ... + def get_config(self) -> Any: ... + +class random_uniform_initializer(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(self, minval=..., maxval=..., seed=...) -> None: ... + @classmethod + def from_config(cls, config) -> Any: ... + def get_config(self) -> Any: ... + +resource: Any +string: Any +uint16: Any +uint32: Any +uint64: Any +uint8: Any +variant: Any +class zeros_initializer(object): + _HAS_DYNAMIC_ATTRIBUTES = True + def __init__(*args, **kwargs) -> None: ... + @classmethod + def from_config(cls, config) -> Any: ... + def get_config(self) -> Any: ... + +def Assert(condition, data, summarize=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for abs(...) +@overload +def abs(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def abs(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def abs(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def abs(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def abs(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def abs(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def abs(x, name=...) -> Any: ... +# END: tensor_annotations annotations for abs(...) + + +# BEGIN: tensor_annotations annotations for acos(...) +@overload +def acos(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def acos(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def acos(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def acos(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def acos(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def acos(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def acos(x, name=...) -> Any: ... +# END: tensor_annotations annotations for acos(...) + + +# BEGIN: tensor_annotations annotations for acosh(...) +@overload +def acosh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def acosh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def acosh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def acosh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def acosh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def acosh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def acosh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for acosh(...) + +def add(x, y, name=...) -> Any: ... +def add_n(inputs, name=...) -> Any: ... +def approx_top_k(input, k, reduction_dimension=..., recall_target=..., is_max_k=..., reduction_input_size_override=..., aggregate_to_topk=..., name=...) -> Any: ... +def argmax(input, axis=..., output_type=..., name=...) -> Any: ... +def argmin(input, axis=..., output_type=..., name=...) -> Any: ... +def argsort(values, axis=..., direction=..., stable=..., name=...) -> Any: ... +def as_dtype(type_value) -> Any: ... +def as_string(input, precision=..., scientific=..., shortest=..., width=..., fill=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for asin(...) +@overload +def asin(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def asin(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def asin(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def asin(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def asin(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def asin(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def asin(x, name=...) -> Any: ... +# END: tensor_annotations annotations for asin(...) + + +# BEGIN: tensor_annotations annotations for asinh(...) +@overload +def asinh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def asinh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def asinh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def asinh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def asinh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def asinh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def asinh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for asinh(...) + +def assert_equal(x, y, message=..., summarize=..., name=...) -> Any: ... +def assert_greater(x, y, message=..., summarize=..., name=...) -> Any: ... +def assert_less(x, y, message=..., summarize=..., name=...) -> Any: ... +def assert_rank(x, rank, message=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for atan(...) +@overload +def atan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def atan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def atan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def atan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def atan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def atan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def atan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for atan(...) + +def atan2(y, x, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for atanh(...) +@overload +def atanh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def atanh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def atanh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def atanh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def atanh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def atanh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def atanh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for atanh(...) + +def batch_to_space(input, block_shape, crops, name=...) -> Any: ... +def bitcast(input, type, name=...) -> Any: ... +def boolean_mask(tensor, mask, axis=..., name=...) -> Any: ... +def broadcast_dynamic_shape(shape_x, shape_y) -> Any: ... +def broadcast_static_shape(shape_x, shape_y) -> Any: ... +def broadcast_to(input, shape, name=...) -> Any: ... +def case(pred_fn_pairs, default=..., exclusive=..., strict=..., name=...) -> Any: ... +def cast(x, dtype, name=...) -> Any: ... +def clip_by_global_norm(t_list, clip_norm, use_norm=..., name=...) -> Any: ... +def clip_by_norm(t, clip_norm, axes=..., name=...) -> Any: ... +def clip_by_value(t, clip_value_min, clip_value_max, name=...) -> Any: ... +def complex(real, imag, name=...) -> Any: ... +def concat(values, axis, name=...) -> Any: ... +def cond(pred, true_fn=..., false_fn=..., name=...) -> Any: ... +def constant(value, dtype=..., shape=..., name=...) -> Any: ... +def control_dependencies(control_inputs) -> Any: ... +def convert_to_tensor(value, dtype=..., dtype_hint=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for cos(...) +@overload +def cos(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def cos(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def cos(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def cos(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def cos(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def cos(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def cos(x, name=...) -> Any: ... +# END: tensor_annotations annotations for cos(...) + + +# BEGIN: tensor_annotations annotations for cosh(...) +@overload +def cosh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def cosh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def cosh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def cosh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def cosh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def cosh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def cosh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for cosh(...) + +def cumsum(x, axis=..., exclusive=..., reverse=..., name=...) -> Any: ... +def custom_gradient(f=...) -> Any: ... +def device(device_name) -> Any: ... +def divide(x, y, name=...) -> Any: ... +def dynamic_partition(data, partitions, num_partitions, name=...) -> Any: ... +def dynamic_stitch(indices, data, name=...) -> Any: ... +def edit_distance(hypothesis, truth, normalize=..., name=...) -> Any: ... +def eig(tensor, name=...) -> Any: ... +def eigvals(tensor, name=...) -> Any: ... +def einsum(equation, *inputs, **kwargs) -> Any: ... +def ensure_shape(x, shape, name=...) -> Any: ... +def equal(x, y, name=...) -> Any: ... +def executing_eagerly() -> Any: ... + +# BEGIN: tensor_annotations annotations for exp(...) +@overload +def exp(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def exp(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def exp(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def exp(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def exp(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def exp(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def exp(x, name=...) -> Any: ... +# END: tensor_annotations annotations for exp(...) + +def expand_dims(input, axis, name=...) -> Any: ... +def extract_volume_patches(input, ksizes, strides, padding, name=...) -> Any: ... +def eye(num_rows, num_columns=..., batch_shape=..., dtype=..., name=...) -> Any: ... +def fill(dims, value, name=...) -> Any: ... +def fingerprint(data, method=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for floor(...) +@overload +def floor(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def floor(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def floor(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def floor(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def floor(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def floor(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def floor(x, name=...) -> Any: ... +# END: tensor_annotations annotations for floor(...) + +def foldl(fn, elems, initializer=..., parallel_iterations=..., back_prop=..., swap_memory=..., name=...) -> Any: ... +def foldr(fn, elems, initializer=..., parallel_iterations=..., back_prop=..., swap_memory=..., name=...) -> Any: ... +def function(func=..., input_signature=..., autograph=..., jit_compile=..., reduce_retracing=..., experimental_implements=..., experimental_autograph_options=..., experimental_relax_shapes=..., experimental_compile=..., experimental_follow_type_hints=...) -> Any: ... +def gather(params, indices, validate_indices=..., axis=..., batch_dims=..., name=...) -> Any: ... +def gather_nd(params, indices, batch_dims=..., name=...) -> Any: ... +def get_current_name_scope() -> Any: ... +def get_logger() -> Any: ... +def get_static_value(tensor, partial=...) -> Any: ... +def get_variable(name, shape=..., dtype=..., initializer=..., regularizer=..., trainable=..., collections=..., caching_device=..., partitioner=..., validate_shape=..., use_resource=..., custom_getter=..., constraint=..., synchronization=..., aggregation=...) -> Any: ... +def grad_pass_through(f) -> Any: ... +def gradients(ys, xs, grad_ys=..., name=..., gate_gradients=..., aggregation_method=..., stop_gradients=..., unconnected_gradients=...) -> Any: ... +def greater(x, y, name=...) -> Any: ... +def greater_equal(x, y, name=...) -> Any: ... +def group(*inputs, **kwargs) -> Any: ... +def guarantee_const(input, name=...) -> Any: ... +def hessians(ys, xs, gate_gradients=..., aggregation_method=..., name=...) -> Any: ... +def histogram_fixed_width(values, value_range, nbins=..., dtype=..., name=...) -> Any: ... +def histogram_fixed_width_bins(values, value_range, nbins=..., dtype=..., name=...) -> Any: ... +def identity(input, name=...) -> Any: ... +def identity_n(input, name=...) -> Any: ... +def import_graph_def(graph_def, input_map=..., return_elements=..., name=..., op_dict=..., producer_op_list=...) -> Any: ... +def init_scope() -> Any: ... +def inside_function() -> Any: ... +def is_tensor(x) -> Any: ... +def less(x, y, name=...) -> Any: ... +def less_equal(x, y, name=...) -> Any: ... +def linspace(start, stop, num, name=..., axis=...) -> Any: ... +def load_library(library_location) -> Any: ... +def load_op_library(library_filename) -> Any: ... +def logical_and(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for logical_not(...) +@overload +def logical_not(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def logical_not(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def logical_not(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def logical_not(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def logical_not(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def logical_not(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def logical_not(x, name=...) -> Any: ... +# END: tensor_annotations annotations for logical_not(...) + +def logical_or(x, y, name=...) -> Any: ... +def make_ndarray(tensor) -> Any: ... +def make_tensor_proto(values, dtype=..., shape=..., verify_shape=..., allow_broadcast=...) -> Any: ... +def map_fn(fn, elems, dtype=..., parallel_iterations=..., back_prop=..., swap_memory=..., infer_shape=..., name=..., fn_output_signature=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for matmul(...) +@overload +def matmul( + a: Tensor2[AnyDType, A1, A2], + b: Tensor2[AnyDType, A2, A3], + name=..., +) -> Tensor2[AnyDType, A1, A3]: ... + +@overload +def matmul( + a: Tensor2[AnyDType, A1, A2], + b: Tensor2[AnyDType, A1, A3], + transpose_a: TRUE, + name=... +) -> Tensor2[AnyDType, A2, A3]: ... + +@overload +def matmul( + a: Tensor2[AnyDType, A1, A2], + b: Tensor2[AnyDType, A3, A2], + transpose_b: TRUE, + name=... +) -> Tensor2[AnyDType, A1, A3]: ... + +@overload +def matmul( + a: Tensor3[AnyDType, A1, A2, A3], + b: Tensor2[AnyDType, A3, A4], + name=... +) -> Tensor3[AnyDType, A1, A2, A4]: ... + +@overload +def matmul( + a: Tensor3[AnyDType, A1, A2, A3], + b: Tensor2[AnyDType, A4, A3], + transpose_b: TRUE, + name=... +) -> Tensor3[AnyDType, A4, A2, A3]: ... + +@overload +def matmul( + a, b, + transpose_a=..., transpose_b=..., + adjoint_a=..., adjoint_b=..., + a_is_sparse=..., b_is_sparse=..., + name=... +) -> Any: ... +# END: tensor_annotations annotations for matmul(...) + +def matrix_square_root(input, name=...) -> Any: ... +def maximum(x, y, name=...) -> Any: ... +def meshgrid(*args, **kwargs) -> Any: ... +def minimum(x, y, name=...) -> Any: ... +def multiply(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for negative(...) +@overload +def negative(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def negative(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def negative(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def negative(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def negative(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def negative(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def negative(x, name=...) -> Any: ... +# END: tensor_annotations annotations for negative(...) + +def no_gradient(op_type) -> Any: ... +def no_op(name=...) -> Any: ... +def nondifferentiable_batch_function(num_batch_threads, max_batch_size, batch_timeout_micros, allowed_batch_sizes=..., max_enqueued_batches=..., autograph=..., enable_large_batch_splitting=...) -> Any: ... +def norm(tensor, ord=..., axis=..., keepdims=..., name=...) -> Any: ... +def not_equal(x, y, name=...) -> Any: ... +def numpy_function(func, inp, Tout, stateful=..., name=...) -> Any: ... +def one_hot(indices, depth, on_value=..., off_value=..., axis=..., dtype=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for ones(...) +@overload +def ones(shape: Shape1, dtype=..., name=...) -> Tensor1[AnyDType, Any]: ... + +@overload +def ones(shape: Shape2, dtype=..., name=...) -> Tensor2[AnyDType, Any, Any]: ... + +@overload +def ones(shape: Shape3, dtype=..., name=...) -> Tensor3[AnyDType, Any, Any, Any]: ... + +@overload +def ones(shape: Shape4, dtype=..., name=...) -> Tensor4[AnyDType, Any, Any, Any, Any]: ... + +@overload +def ones(shape: Shape5, dtype=..., name=...) -> Tensor5[AnyDType, Any, Any, Any, Any, Any]: ... + +# See note about Tensor0 in `zeros` +@overload +def ones(shape: Tuple[()], dtype=..., name=...) -> Tensor0[AnyDType]: ... + +@overload +def ones(shape, dtype=..., name=...) -> AnyDType: ... +# END: tensor_annotations annotations for ones(...) + + +# BEGIN: tensor_annotations annotations for ones_like(...) +@overload +def ones_like(input: Tensor1[AnyDType, A1], dtype=..., name=...) -> Tensor1[AnyDType, A1]: ... + +@overload +def ones_like(input: Tensor2[AnyDType, A1, A2], dtype=..., name=...) -> Tensor2[AnyDType, A1, A2]: ... + +@overload +def ones_like(input: Tensor3[AnyDType, A1, A2, A3], dtype=..., name=...) -> Tensor3[AnyDType, A1, A2, A3]: ... + +@overload +def ones_like(input: Tensor4[AnyDType, A1, A2, A3, A4], dtype=..., name=...) -> Tensor4[AnyDType, A1, A2, A3, A4]: ... + +@overload +def ones_like(input: Tensor5[AnyDType, A1, A2, A3, A4, A5], dtype=..., name=...) -> Tensor5[AnyDType, A1, A2, A3, A4, A5]: ... + +@overload +def ones_like(input, dtype=..., name=...) -> Any: ... +# END: tensor_annotations annotations for ones_like(...) + +def pad(tensor, paddings, mode=..., constant_values=..., name=...) -> Any: ... +def parallel_stack(values, name=...) -> Any: ... +def placeholder(dtype, shape=..., name=...) -> Any: ... +def pow(x, y, name=...) -> Any: ... +def print(*inputs, **kwargs) -> Any: ... +def py_function(func, inp, Tout, name=...) -> Any: ... +def random_index_shuffle(index, seed, max_index, rounds=..., name=...) -> Any: ... +def range(start, limit=..., delta=..., dtype=..., name=...) -> Any: ... +def rank(input, name=...) -> Any: ... +def realdiv(x, y, name=...) -> Any: ... +def recompute_grad(f) -> Any: ... + +# BEGIN: tensor_annotations annotations for reduce_all(...) +@overload +def reduce_all(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_all(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_all(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_all(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_all(...) + + +# BEGIN: tensor_annotations annotations for reduce_any(...) +@overload +def reduce_any(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_any(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_any(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_any(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_any(...) + + +# BEGIN: tensor_annotations annotations for reduce_logsumexp(...) +@overload +def reduce_logsumexp(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_logsumexp(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_logsumexp(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_logsumexp(...) + + +# BEGIN: tensor_annotations annotations for reduce_max(...) +@overload +def reduce_max(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_max(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_max(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_max(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_max(...) + + +# BEGIN: tensor_annotations annotations for reduce_mean(...) +@overload +def reduce_mean(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_mean(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_mean(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_mean(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_mean(...) + + +# BEGIN: tensor_annotations annotations for reduce_min(...) +@overload +def reduce_min(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_min(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_min(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_min(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_min(...) + + +# BEGIN: tensor_annotations annotations for reduce_prod(...) +@overload +def reduce_prod(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_prod(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_prod(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_prod(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_prod(...) + + +# BEGIN: tensor_annotations annotations for reduce_sum(...) +@overload +def reduce_sum(input_tensor: Tensor1[DT, A1], + axis: L0, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor1[DT, A1], + axis: LN1, name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A1, A2], + axis: L0, name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A1, A2], + axis: L1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A1, A2], + axis: LN1, name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, L1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A1, A2], + axis: Tuple[L0, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L0, name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L1, name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: L2, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: LN1, name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L2], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, L2], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L1, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, L2], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A1, A2, A3], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L0, name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L1, name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L2, name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: L3, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: LN1, name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L3], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L3], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, L3], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L2, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L3], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, L3], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, L3], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A1, A2, A3, A4], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L0, name=...) -> Tensor4[DT, A2, A3, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L1, name=...) -> Tensor4[DT, A1, A3, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L2, name=...) -> Tensor4[DT, A1, A2, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L3, name=...) -> Tensor4[DT, A1, A2, A3, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: L4, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: LN1, name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1], name=...) -> Tensor3[DT, A3, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2], name=...) -> Tensor3[DT, A2, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3], name=...) -> Tensor3[DT, A2, A3, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L4], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, LN1], name=...) -> Tensor3[DT, A2, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2], name=...) -> Tensor3[DT, A1, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3], name=...) -> Tensor3[DT, A1, A3, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L4], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, LN1], name=...) -> Tensor3[DT, A1, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3], name=...) -> Tensor3[DT, A1, A2, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L4], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, LN1], name=...) -> Tensor3[DT, A1, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, L4], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L3, LN1], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2], name=...) -> Tensor2[DT, A4, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3], name=...) -> Tensor2[DT, A3, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L4], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, LN1], name=...) -> Tensor2[DT, A3, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3], name=...) -> Tensor2[DT, A2, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L4], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, LN1], name=...) -> Tensor2[DT, A2, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, L4], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L3, LN1], name=...) -> Tensor2[DT, A2, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3], name=...) -> Tensor2[DT, A1, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L4], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, LN1], name=...) -> Tensor2[DT, A1, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, L4], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L3, LN1], name=...) -> Tensor2[DT, A1, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, L4], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L2, L3, LN1], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3], name=...) -> Tensor1[DT, A5]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L4], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, LN1], name=...) -> Tensor1[DT, A4]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, L4], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L3, LN1], name=...) -> Tensor1[DT, A3]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, L4], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L2, L3, LN1], name=...) -> Tensor1[DT, A2]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, L4], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L1, L2, L3, LN1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, L4], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A1, A2, A3, A4, A5], + axis: Tuple[L0, L1, L2, L3, LN1], name=...) -> Tensor0[DT]: ... + +@overload +def reduce_sum(input_tensor: Tensor1[DT, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor1[DT, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor2[DT, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor3[DT, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor4[DT, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def reduce_sum(input_tensor: Tensor5[DT, A5, A4, A3, A2, A1], + axis=..., keepdims: TRUE = ..., name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def reduce_sum(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +# END: tensor_annotations annotations for reduce_sum(...) + +def register_tensor_conversion_function(base_type, conversion_func, priority=...) -> Any: ... +def repeat(input, repeats, axis=..., name=...) -> Any: ... +def required_space_to_batch_paddings(input_shape, block_shape, base_paddings=..., name=...) -> Any: ... +def reshape(tensor, shape, name=...) -> Any: ... +def reverse(tensor, axis, name=...) -> Any: ... +def reverse_sequence(input, seq_lengths, seq_axis=..., batch_axis=..., name=...) -> Any: ... +def roll(input, shift, axis, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for round(...) +@overload +def round(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def round(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def round(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def round(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def round(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def round(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def round(x, name=...) -> Any: ... +# END: tensor_annotations annotations for round(...) + +def saturate_cast(value, dtype, name=...) -> Any: ... +def scalar_mul(scalar, x, name=...) -> Any: ... +def scan(fn, elems, initializer=..., parallel_iterations=..., back_prop=..., swap_memory=..., infer_shape=..., reverse=..., name=...) -> Any: ... +def scatter_nd(indices, updates, shape, name=...) -> Any: ... +def searchsorted(sorted_sequence, values, side=..., out_type=..., name=...) -> Any: ... +def sequence_mask(lengths, maxlen=..., dtype=..., name=...) -> Any: ... +def shape(input, out_type=..., name=...) -> Any: ... +def shape_n(input, out_type=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for sigmoid(...) +@overload +def sigmoid(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sigmoid(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sigmoid(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sigmoid(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sigmoid(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sigmoid(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sigmoid(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sigmoid(...) + + +# BEGIN: tensor_annotations annotations for sign(...) +@overload +def sign(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sign(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sign(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sign(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sign(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sign(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sign(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sign(...) + + +# BEGIN: tensor_annotations annotations for sin(...) +@overload +def sin(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sin(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sin(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sin(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sin(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sin(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sin(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sin(...) + + +# BEGIN: tensor_annotations annotations for sinh(...) +@overload +def sinh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sinh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sinh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sinh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sinh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sinh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sinh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sinh(...) + +def size(input, out_type=..., name=...) -> Any: ... +def slice(input_, begin, size, name=...) -> Any: ... +def sort(values, axis=..., direction=..., name=...) -> Any: ... +def space_to_batch(input, block_shape, paddings, name=...) -> Any: ... +def space_to_batch_nd(input, block_shape, paddings, name=...) -> Any: ... +def split(value, num_or_size_splits, axis=..., num=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for sqrt(...) +@overload +def sqrt(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sqrt(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sqrt(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sqrt(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sqrt(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sqrt(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sqrt(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sqrt(...) + + +# BEGIN: tensor_annotations annotations for square(...) +@overload +def square(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def square(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def square(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def square(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def square(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def square(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def square(x, name=...) -> Any: ... +# END: tensor_annotations annotations for square(...) + +def squeeze(input, axis=..., name=...) -> Any: ... +def stack(values, axis=..., name=...) -> Any: ... +def stop_gradient(input, name=...) -> Any: ... +def strided_slice(input_, begin, end, strides=..., begin_mask=..., end_mask=..., ellipsis_mask=..., new_axis_mask=..., shrink_axis_mask=..., var=..., name=...) -> Any: ... +def subtract(x, y, name=...) -> Any: ... +def switch_case(branch_index, branch_fns, default=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for tan(...) +@overload +def tan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def tan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def tan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def tan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def tan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def tan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def tan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for tan(...) + + +# BEGIN: tensor_annotations annotations for tanh(...) +@overload +def tanh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def tanh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def tanh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def tanh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def tanh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def tanh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def tanh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for tanh(...) + +def tensor_scatter_nd_add(tensor, indices, updates, name=...) -> Any: ... +def tensor_scatter_nd_max(tensor, indices, updates, name=...) -> Any: ... +def tensor_scatter_nd_min(tensor, indices, updates, name=...) -> Any: ... +def tensor_scatter_nd_sub(tensor, indices, updates, name=...) -> Any: ... +def tensor_scatter_nd_update(tensor, indices, updates, name=...) -> Any: ... +def tensordot(a, b, axes, name=...) -> Any: ... +def tile(input, multiples, name=...) -> Any: ... +def timestamp(name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for transpose(...) +@overload +def transpose(a: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor2[DT, A1, A2], perm: Tuple[L0, L1], + name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def transpose(a: Tensor2[DT, A1, A2], perm: Tuple[L1, L0], + name=...) -> Tensor2[DT, A2, A1]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L0, L1, L2], + name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L0, L2, L1], + name=...) -> Tensor3[DT, A1, A3, A2]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L1, L0, L2], + name=...) -> Tensor3[DT, A2, A1, A3]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L1, L2, L0], + name=...) -> Tensor3[DT, A2, A3, A1]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L2, L0, L1], + name=...) -> Tensor3[DT, A3, A1, A2]: ... + +@overload +def transpose(a: Tensor3[DT, A1, A2, A3], perm: Tuple[L2, L1, L0], + name=...) -> Tensor3[DT, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L1, L2, L3], + name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L1, L3, L2], + name=...) -> Tensor4[DT, A1, A2, A4, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L2, L1, L3], + name=...) -> Tensor4[DT, A1, A3, A2, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L2, L3, L1], + name=...) -> Tensor4[DT, A1, A3, A4, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L3, L1, L2], + name=...) -> Tensor4[DT, A1, A4, A2, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L0, L3, L2, L1], + name=...) -> Tensor4[DT, A1, A4, A3, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L0, L2, L3], + name=...) -> Tensor4[DT, A2, A1, A3, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L0, L3, L2], + name=...) -> Tensor4[DT, A2, A1, A4, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L2, L0, L3], + name=...) -> Tensor4[DT, A2, A3, A1, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L2, L3, L0], + name=...) -> Tensor4[DT, A2, A3, A4, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L3, L0, L2], + name=...) -> Tensor4[DT, A2, A4, A1, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L1, L3, L2, L0], + name=...) -> Tensor4[DT, A2, A4, A3, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L0, L1, L3], + name=...) -> Tensor4[DT, A3, A1, A2, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L0, L3, L1], + name=...) -> Tensor4[DT, A3, A1, A4, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L1, L0, L3], + name=...) -> Tensor4[DT, A3, A2, A1, A4]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L1, L3, L0], + name=...) -> Tensor4[DT, A3, A2, A4, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L3, L0, L1], + name=...) -> Tensor4[DT, A3, A4, A1, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L2, L3, L1, L0], + name=...) -> Tensor4[DT, A3, A4, A2, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L0, L1, L2], + name=...) -> Tensor4[DT, A4, A1, A2, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L0, L2, L1], + name=...) -> Tensor4[DT, A4, A1, A3, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L1, L0, L2], + name=...) -> Tensor4[DT, A4, A2, A1, A3]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L1, L2, L0], + name=...) -> Tensor4[DT, A4, A2, A3, A1]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L2, L0, L1], + name=...) -> Tensor4[DT, A4, A3, A1, A2]: ... + +@overload +def transpose(a: Tensor4[DT, A1, A2, A3, A4], perm: Tuple[L3, L2, L1, L0], + name=...) -> Tensor4[DT, A4, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L2, L3, L4], + name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L2, L4, L3], + name=...) -> Tensor5[DT, A1, A2, A3, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L3, L2, L4], + name=...) -> Tensor5[DT, A1, A2, A4, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L3, L4, L2], + name=...) -> Tensor5[DT, A1, A2, A4, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L4, L2, L3], + name=...) -> Tensor5[DT, A1, A2, A5, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L1, L4, L3, L2], + name=...) -> Tensor5[DT, A1, A2, A5, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L1, L3, L4], + name=...) -> Tensor5[DT, A1, A3, A2, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L1, L4, L3], + name=...) -> Tensor5[DT, A1, A3, A2, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L3, L1, L4], + name=...) -> Tensor5[DT, A1, A3, A4, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L3, L4, L1], + name=...) -> Tensor5[DT, A1, A3, A4, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L4, L1, L3], + name=...) -> Tensor5[DT, A1, A3, A5, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L2, L4, L3, L1], + name=...) -> Tensor5[DT, A1, A3, A5, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L1, L2, L4], + name=...) -> Tensor5[DT, A1, A4, A2, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L1, L4, L2], + name=...) -> Tensor5[DT, A1, A4, A2, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L2, L1, L4], + name=...) -> Tensor5[DT, A1, A4, A3, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L2, L4, L1], + name=...) -> Tensor5[DT, A1, A4, A3, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L4, L1, L2], + name=...) -> Tensor5[DT, A1, A4, A5, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L3, L4, L2, L1], + name=...) -> Tensor5[DT, A1, A4, A5, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L1, L2, L3], + name=...) -> Tensor5[DT, A1, A5, A2, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L1, L3, L2], + name=...) -> Tensor5[DT, A1, A5, A2, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L2, L1, L3], + name=...) -> Tensor5[DT, A1, A5, A3, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L2, L3, L1], + name=...) -> Tensor5[DT, A1, A5, A3, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L3, L1, L2], + name=...) -> Tensor5[DT, A1, A5, A4, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L0, L4, L3, L2, L1], + name=...) -> Tensor5[DT, A1, A5, A4, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L2, L3, L4], + name=...) -> Tensor5[DT, A2, A1, A3, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L2, L4, L3], + name=...) -> Tensor5[DT, A2, A1, A3, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L3, L2, L4], + name=...) -> Tensor5[DT, A2, A1, A4, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L3, L4, L2], + name=...) -> Tensor5[DT, A2, A1, A4, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L4, L2, L3], + name=...) -> Tensor5[DT, A2, A1, A5, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L0, L4, L3, L2], + name=...) -> Tensor5[DT, A2, A1, A5, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L0, L3, L4], + name=...) -> Tensor5[DT, A2, A3, A1, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L0, L4, L3], + name=...) -> Tensor5[DT, A2, A3, A1, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L3, L0, L4], + name=...) -> Tensor5[DT, A2, A3, A4, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L3, L4, L0], + name=...) -> Tensor5[DT, A2, A3, A4, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L4, L0, L3], + name=...) -> Tensor5[DT, A2, A3, A5, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L2, L4, L3, L0], + name=...) -> Tensor5[DT, A2, A3, A5, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L0, L2, L4], + name=...) -> Tensor5[DT, A2, A4, A1, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L0, L4, L2], + name=...) -> Tensor5[DT, A2, A4, A1, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L2, L0, L4], + name=...) -> Tensor5[DT, A2, A4, A3, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L2, L4, L0], + name=...) -> Tensor5[DT, A2, A4, A3, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L4, L0, L2], + name=...) -> Tensor5[DT, A2, A4, A5, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L3, L4, L2, L0], + name=...) -> Tensor5[DT, A2, A4, A5, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L0, L2, L3], + name=...) -> Tensor5[DT, A2, A5, A1, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L0, L3, L2], + name=...) -> Tensor5[DT, A2, A5, A1, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L2, L0, L3], + name=...) -> Tensor5[DT, A2, A5, A3, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L2, L3, L0], + name=...) -> Tensor5[DT, A2, A5, A3, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L3, L0, L2], + name=...) -> Tensor5[DT, A2, A5, A4, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L1, L4, L3, L2, L0], + name=...) -> Tensor5[DT, A2, A5, A4, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L1, L3, L4], + name=...) -> Tensor5[DT, A3, A1, A2, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L1, L4, L3], + name=...) -> Tensor5[DT, A3, A1, A2, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L3, L1, L4], + name=...) -> Tensor5[DT, A3, A1, A4, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L3, L4, L1], + name=...) -> Tensor5[DT, A3, A1, A4, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L4, L1, L3], + name=...) -> Tensor5[DT, A3, A1, A5, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L0, L4, L3, L1], + name=...) -> Tensor5[DT, A3, A1, A5, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L0, L3, L4], + name=...) -> Tensor5[DT, A3, A2, A1, A4, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L0, L4, L3], + name=...) -> Tensor5[DT, A3, A2, A1, A5, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L3, L0, L4], + name=...) -> Tensor5[DT, A3, A2, A4, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L3, L4, L0], + name=...) -> Tensor5[DT, A3, A2, A4, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L4, L0, L3], + name=...) -> Tensor5[DT, A3, A2, A5, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L1, L4, L3, L0], + name=...) -> Tensor5[DT, A3, A2, A5, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L0, L1, L4], + name=...) -> Tensor5[DT, A3, A4, A1, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L0, L4, L1], + name=...) -> Tensor5[DT, A3, A4, A1, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L1, L0, L4], + name=...) -> Tensor5[DT, A3, A4, A2, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L1, L4, L0], + name=...) -> Tensor5[DT, A3, A4, A2, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L4, L0, L1], + name=...) -> Tensor5[DT, A3, A4, A5, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L3, L4, L1, L0], + name=...) -> Tensor5[DT, A3, A4, A5, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L0, L1, L3], + name=...) -> Tensor5[DT, A3, A5, A1, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L0, L3, L1], + name=...) -> Tensor5[DT, A3, A5, A1, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L1, L0, L3], + name=...) -> Tensor5[DT, A3, A5, A2, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L1, L3, L0], + name=...) -> Tensor5[DT, A3, A5, A2, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L3, L0, L1], + name=...) -> Tensor5[DT, A3, A5, A4, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L2, L4, L3, L1, L0], + name=...) -> Tensor5[DT, A3, A5, A4, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L1, L2, L4], + name=...) -> Tensor5[DT, A4, A1, A2, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L1, L4, L2], + name=...) -> Tensor5[DT, A4, A1, A2, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L2, L1, L4], + name=...) -> Tensor5[DT, A4, A1, A3, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L2, L4, L1], + name=...) -> Tensor5[DT, A4, A1, A3, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L4, L1, L2], + name=...) -> Tensor5[DT, A4, A1, A5, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L0, L4, L2, L1], + name=...) -> Tensor5[DT, A4, A1, A5, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L0, L2, L4], + name=...) -> Tensor5[DT, A4, A2, A1, A3, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L0, L4, L2], + name=...) -> Tensor5[DT, A4, A2, A1, A5, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L2, L0, L4], + name=...) -> Tensor5[DT, A4, A2, A3, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L2, L4, L0], + name=...) -> Tensor5[DT, A4, A2, A3, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L4, L0, L2], + name=...) -> Tensor5[DT, A4, A2, A5, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L1, L4, L2, L0], + name=...) -> Tensor5[DT, A4, A2, A5, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L0, L1, L4], + name=...) -> Tensor5[DT, A4, A3, A1, A2, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L0, L4, L1], + name=...) -> Tensor5[DT, A4, A3, A1, A5, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L1, L0, L4], + name=...) -> Tensor5[DT, A4, A3, A2, A1, A5]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L1, L4, L0], + name=...) -> Tensor5[DT, A4, A3, A2, A5, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L4, L0, L1], + name=...) -> Tensor5[DT, A4, A3, A5, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L2, L4, L1, L0], + name=...) -> Tensor5[DT, A4, A3, A5, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L0, L1, L2], + name=...) -> Tensor5[DT, A4, A5, A1, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L0, L2, L1], + name=...) -> Tensor5[DT, A4, A5, A1, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L1, L0, L2], + name=...) -> Tensor5[DT, A4, A5, A2, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L1, L2, L0], + name=...) -> Tensor5[DT, A4, A5, A2, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L2, L0, L1], + name=...) -> Tensor5[DT, A4, A5, A3, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L3, L4, L2, L1, L0], + name=...) -> Tensor5[DT, A4, A5, A3, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L1, L2, L3], + name=...) -> Tensor5[DT, A5, A1, A2, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L1, L3, L2], + name=...) -> Tensor5[DT, A5, A1, A2, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L2, L1, L3], + name=...) -> Tensor5[DT, A5, A1, A3, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L2, L3, L1], + name=...) -> Tensor5[DT, A5, A1, A3, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L3, L1, L2], + name=...) -> Tensor5[DT, A5, A1, A4, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L0, L3, L2, L1], + name=...) -> Tensor5[DT, A5, A1, A4, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L0, L2, L3], + name=...) -> Tensor5[DT, A5, A2, A1, A3, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L0, L3, L2], + name=...) -> Tensor5[DT, A5, A2, A1, A4, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L2, L0, L3], + name=...) -> Tensor5[DT, A5, A2, A3, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L2, L3, L0], + name=...) -> Tensor5[DT, A5, A2, A3, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L3, L0, L2], + name=...) -> Tensor5[DT, A5, A2, A4, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L1, L3, L2, L0], + name=...) -> Tensor5[DT, A5, A2, A4, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L0, L1, L3], + name=...) -> Tensor5[DT, A5, A3, A1, A2, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L0, L3, L1], + name=...) -> Tensor5[DT, A5, A3, A1, A4, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L1, L0, L3], + name=...) -> Tensor5[DT, A5, A3, A2, A1, A4]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L1, L3, L0], + name=...) -> Tensor5[DT, A5, A3, A2, A4, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L3, L0, L1], + name=...) -> Tensor5[DT, A5, A3, A4, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L2, L3, L1, L0], + name=...) -> Tensor5[DT, A5, A3, A4, A2, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L0, L1, L2], + name=...) -> Tensor5[DT, A5, A4, A1, A2, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L0, L2, L1], + name=...) -> Tensor5[DT, A5, A4, A1, A3, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L1, L0, L2], + name=...) -> Tensor5[DT, A5, A4, A2, A1, A3]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L1, L2, L0], + name=...) -> Tensor5[DT, A5, A4, A2, A3, A1]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L2, L0, L1], + name=...) -> Tensor5[DT, A5, A4, A3, A1, A2]: ... + +@overload +def transpose(a: Tensor5[DT, A1, A2, A3, A4, A5], perm: Tuple[L4, L3, L2, L1, L0], + name=...) -> Tensor5[DT, A5, A4, A3, A2, A1]: ... + +@overload +def transpose(a, perm=..., conjugate=..., name=...) -> Any: ... +# END: tensor_annotations annotations for transpose(...) + +def truediv(x, y, name=...) -> Any: ... +def truncatediv(x, y, name=...) -> Any: ... +def truncatemod(x, y, name=...) -> Any: ... +def tuple(tensors, control_inputs=..., name=...) -> Any: ... +def type_spec_from_value(value) -> Any: ... +def unique(x, out_idx=..., name=...) -> Any: ... +def unique_with_counts(x, out_idx=..., name=...) -> Any: ... +def unravel_index(indices, dims, name=...) -> Any: ... +def unstack(value, num=..., axis=..., name=...) -> Any: ... +def variable_creator_scope(variable_creator) -> Any: ... +def vectorized_map(fn, elems, fallback_to_while_loop=..., warn=...) -> Any: ... +def where(condition, x=..., y=..., name=...) -> Any: ... +def while_loop(cond, body, loop_vars, shape_invariants=..., parallel_iterations=..., back_prop=..., swap_memory=..., maximum_iterations=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for zeros(...) +@overload +def zeros(shape: Shape1, dtype=..., name=...) -> Tensor1[AnyDType, Any]: ... + +@overload +def zeros(shape: Shape2, dtype=..., name=...) -> Tensor2[AnyDType, Any, Any]: ... + +@overload +def zeros(shape: Shape3, dtype=..., name=...) -> Tensor3[AnyDType, Any, Any, Any]: ... + +@overload +def zeros(shape: Shape4, dtype=..., name=...) -> Tensor4[AnyDType, Any, Any, Any, Any]: ... + +@overload +def zeros(shape: Shape5, dtype=..., name=...) -> Tensor5[AnyDType, Any, Any, Any, Any, Any]: ... + +# Tensor0 is down here because otherwise it'd match shape e.g. Tuple[Any, Any] +# https://github.com/google/pytype/issues/767 +# (e.g. `dim = tf.shape_as_list(x); tf.zeros((dim, dim))` would be Tensor0) +@overload +def zeros(shape: Tuple[()], dtype=..., name=...) -> Tensor0[AnyDType]: ... + +@overload +def zeros(shape, dtype=..., name=...) -> AnyDType: ... +# END: tensor_annotations annotations for zeros(...) + + +# BEGIN: tensor_annotations annotations for zeros_like(...) +@overload +def zeros_like(input: Tensor1[AnyDType, A1], dtype=..., name=...) -> Tensor1[AnyDType, A1]: ... + +@overload +def zeros_like(input: Tensor2[AnyDType, A1, A2], dtype=..., name=...) -> Tensor2[AnyDType, A1, A2]: ... + +@overload +def zeros_like(input: Tensor3[AnyDType, A1, A2, A3], dtype=..., name=...) -> Tensor3[AnyDType, A1, A2, A3]: ... + +@overload +def zeros_like(input: Tensor4[AnyDType, A1, A2, A3, A4], dtype=..., name=...) -> Tensor4[AnyDType, A1, A2, A3, A4]: ... + +@overload +def zeros_like(input: Tensor5[AnyDType, A1, A2, A3, A4, A5], dtype=..., name=...) -> Tensor5[AnyDType, A1, A2, A3, A4, A5]: ... + +@overload +def zeros_like(input, dtype=..., name=...) -> Any: ... +# END: tensor_annotations annotations for zeros_like(...) \ No newline at end of file diff --git a/tensorflow-stubs/core/util/__init__.pyi b/tensorflow-stubs/core/util/__init__.pyi new file mode 100644 index 0000000..ff50844 --- /dev/null +++ b/tensorflow-stubs/core/util/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +event_pb2: Any diff --git a/tensorflow-stubs/keras/__init__.pyi b/tensorflow-stubs/keras/__init__.pyi new file mode 100644 index 0000000..186418a --- /dev/null +++ b/tensorflow-stubs/keras/__init__.pyi @@ -0,0 +1,4 @@ +from keras.api._v2.keras import __internal__ as __internal__, activations as activations, applications as applications, backend as backend, callbacks as callbacks, constraints as constraints, datasets as datasets, dtensor as dtensor, estimator as estimator, experimental as experimental, initializers as initializers, layers as layers, losses as losses, metrics as metrics, mixed_precision as mixed_precision, models as models, optimizers as optimizers, preprocessing as preprocessing, regularizers as regularizers, utils as utils, wrappers as wrappers +from keras.engine.input_layer import Input as Input +from keras.engine.sequential import Sequential as Sequential +from keras.engine.training import Model as Model diff --git a/tensorflow-stubs/keras/__internal__/__init__.pyi b/tensorflow-stubs/keras/__internal__/__init__.pyi new file mode 100644 index 0000000..6942cfe --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/__init__.pyi @@ -0,0 +1 @@ +from keras.api._v2.keras.__internal__ import backend as backend, layers as layers, losses as losses, models as models, utils as utils diff --git a/tensorflow-stubs/keras/__internal__/backend/__init__.pyi b/tensorflow-stubs/keras/__internal__/backend/__init__.pyi new file mode 100644 index 0000000..78ca130 --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/backend/__init__.pyi @@ -0,0 +1 @@ +from keras.backend import track_variable as track_variable diff --git a/tensorflow-stubs/keras/__internal__/layers/__init__.pyi b/tensorflow-stubs/keras/__internal__/layers/__init__.pyi new file mode 100644 index 0000000..a27a5a8 --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/layers/__init__.pyi @@ -0,0 +1,2 @@ +from keras.engine.base_layer import BaseRandomLayer as BaseRandomLayer +from keras.layers.preprocessing.image_preprocessing import BaseImageAugmentationLayer as BaseImageAugmentationLayer diff --git a/tensorflow-stubs/keras/__internal__/losses/__init__.pyi b/tensorflow-stubs/keras/__internal__/losses/__init__.pyi new file mode 100644 index 0000000..36803f9 --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/losses/__init__.pyi @@ -0,0 +1 @@ +from keras.utils.losses_utils import compute_weighted_loss as compute_weighted_loss diff --git a/tensorflow-stubs/keras/__internal__/models/__init__.pyi b/tensorflow-stubs/keras/__internal__/models/__init__.pyi new file mode 100644 index 0000000..90a29cb --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/models/__init__.pyi @@ -0,0 +1 @@ +from keras.models.cloning import clone_and_build_model as clone_and_build_model, in_place_subclassed_model_state_restoration as in_place_subclassed_model_state_restoration diff --git a/tensorflow-stubs/keras/__internal__/utils/__init__.pyi b/tensorflow-stubs/keras/__internal__/utils/__init__.pyi new file mode 100644 index 0000000..ea04cdd --- /dev/null +++ b/tensorflow-stubs/keras/__internal__/utils/__init__.pyi @@ -0,0 +1,3 @@ +from keras.engine.data_adapter import get_data_handler as get_data_handler +from keras.testing_infra.test_utils import layer_test as layer_test +from keras.utils.tf_utils import register_symbolic_tensor_type as register_symbolic_tensor_type diff --git a/tensorflow-stubs/keras/activations/__init__.pyi b/tensorflow-stubs/keras/activations/__init__.pyi new file mode 100644 index 0000000..0b31d8f --- /dev/null +++ b/tensorflow-stubs/keras/activations/__init__.pyi @@ -0,0 +1 @@ +from keras.activations import deserialize as deserialize, elu as elu, exponential as exponential, gelu as gelu, get as get, hard_sigmoid as hard_sigmoid, linear as linear, relu as relu, selu as selu, serialize as serialize, sigmoid as sigmoid, softmax as softmax, softplus as softplus, softsign as softsign, swish as swish, tanh as tanh diff --git a/tensorflow-stubs/keras/applications/__init__.pyi b/tensorflow-stubs/keras/applications/__init__.pyi new file mode 100644 index 0000000..92393b8 --- /dev/null +++ b/tensorflow-stubs/keras/applications/__init__.pyi @@ -0,0 +1,18 @@ +from keras.api._v2.keras.applications import convnext as convnext, densenet as densenet, efficientnet as efficientnet, efficientnet_v2 as efficientnet_v2, imagenet_utils as imagenet_utils, inception_resnet_v2 as inception_resnet_v2, inception_v3 as inception_v3, mobilenet as mobilenet, mobilenet_v2 as mobilenet_v2, mobilenet_v3 as mobilenet_v3, nasnet as nasnet, regnet as regnet, resnet as resnet, resnet50 as resnet50, resnet_rs as resnet_rs, resnet_v2 as resnet_v2, vgg16 as vgg16, vgg19 as vgg19, xception as xception +from keras.applications.convnext import ConvNeXtBase as ConvNeXtBase, ConvNeXtLarge as ConvNeXtLarge, ConvNeXtSmall as ConvNeXtSmall, ConvNeXtTiny as ConvNeXtTiny, ConvNeXtXLarge as ConvNeXtXLarge +from keras.applications.densenet import DenseNet121 as DenseNet121, DenseNet169 as DenseNet169, DenseNet201 as DenseNet201 +from keras.applications.efficientnet import EfficientNetB0 as EfficientNetB0, EfficientNetB1 as EfficientNetB1, EfficientNetB2 as EfficientNetB2, EfficientNetB3 as EfficientNetB3, EfficientNetB4 as EfficientNetB4, EfficientNetB5 as EfficientNetB5, EfficientNetB6 as EfficientNetB6, EfficientNetB7 as EfficientNetB7 +from keras.applications.efficientnet_v2 import EfficientNetV2B0 as EfficientNetV2B0, EfficientNetV2B1 as EfficientNetV2B1, EfficientNetV2B2 as EfficientNetV2B2, EfficientNetV2B3 as EfficientNetV2B3, EfficientNetV2L as EfficientNetV2L, EfficientNetV2M as EfficientNetV2M, EfficientNetV2S as EfficientNetV2S +from keras.applications.inception_resnet_v2 import InceptionResNetV2 as InceptionResNetV2 +from keras.applications.inception_v3 import InceptionV3 as InceptionV3 +from keras.applications.mobilenet import MobileNet as MobileNet +from keras.applications.mobilenet_v2 import MobileNetV2 as MobileNetV2 +from keras.applications.mobilenet_v3 import MobileNetV3Large as MobileNetV3Large, MobileNetV3Small as MobileNetV3Small +from keras.applications.nasnet import NASNetLarge as NASNetLarge, NASNetMobile as NASNetMobile +from keras.applications.regnet import RegNetX002 as RegNetX002, RegNetX004 as RegNetX004, RegNetX006 as RegNetX006, RegNetX008 as RegNetX008, RegNetX016 as RegNetX016, RegNetX032 as RegNetX032, RegNetX040 as RegNetX040, RegNetX064 as RegNetX064, RegNetX080 as RegNetX080, RegNetX120 as RegNetX120, RegNetX160 as RegNetX160, RegNetX320 as RegNetX320, RegNetY002 as RegNetY002, RegNetY004 as RegNetY004, RegNetY006 as RegNetY006, RegNetY008 as RegNetY008, RegNetY016 as RegNetY016, RegNetY032 as RegNetY032, RegNetY040 as RegNetY040, RegNetY064 as RegNetY064, RegNetY080 as RegNetY080, RegNetY120 as RegNetY120, RegNetY160 as RegNetY160, RegNetY320 as RegNetY320 +from keras.applications.resnet import ResNet101 as ResNet101, ResNet152 as ResNet152, ResNet50 as ResNet50 +from keras.applications.resnet_rs import ResNetRS101 as ResNetRS101, ResNetRS152 as ResNetRS152, ResNetRS200 as ResNetRS200, ResNetRS270 as ResNetRS270, ResNetRS350 as ResNetRS350, ResNetRS420 as ResNetRS420, ResNetRS50 as ResNetRS50 +from keras.applications.resnet_v2 import ResNet101V2 as ResNet101V2, ResNet152V2 as ResNet152V2, ResNet50V2 as ResNet50V2 +from keras.applications.vgg16 import VGG16 as VGG16 +from keras.applications.vgg19 import VGG19 as VGG19 +from keras.applications.xception import Xception as Xception diff --git a/tensorflow-stubs/keras/applications/convnext/__init__.pyi b/tensorflow-stubs/keras/applications/convnext/__init__.pyi new file mode 100644 index 0000000..067169c --- /dev/null +++ b/tensorflow-stubs/keras/applications/convnext/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.convnext import ConvNeXtBase as ConvNeXtBase, ConvNeXtLarge as ConvNeXtLarge, ConvNeXtSmall as ConvNeXtSmall, ConvNeXtTiny as ConvNeXtTiny, ConvNeXtXLarge as ConvNeXtXLarge, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/densenet/__init__.pyi b/tensorflow-stubs/keras/applications/densenet/__init__.pyi new file mode 100644 index 0000000..22096a5 --- /dev/null +++ b/tensorflow-stubs/keras/applications/densenet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.densenet import DenseNet121 as DenseNet121, DenseNet169 as DenseNet169, DenseNet201 as DenseNet201, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/efficientnet/__init__.pyi b/tensorflow-stubs/keras/applications/efficientnet/__init__.pyi new file mode 100644 index 0000000..c6146d3 --- /dev/null +++ b/tensorflow-stubs/keras/applications/efficientnet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.efficientnet import EfficientNetB0 as EfficientNetB0, EfficientNetB1 as EfficientNetB1, EfficientNetB2 as EfficientNetB2, EfficientNetB3 as EfficientNetB3, EfficientNetB4 as EfficientNetB4, EfficientNetB5 as EfficientNetB5, EfficientNetB6 as EfficientNetB6, EfficientNetB7 as EfficientNetB7, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/efficientnet_v2/__init__.pyi b/tensorflow-stubs/keras/applications/efficientnet_v2/__init__.pyi new file mode 100644 index 0000000..4168e1c --- /dev/null +++ b/tensorflow-stubs/keras/applications/efficientnet_v2/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.efficientnet_v2 import EfficientNetV2B0 as EfficientNetV2B0, EfficientNetV2B1 as EfficientNetV2B1, EfficientNetV2B2 as EfficientNetV2B2, EfficientNetV2B3 as EfficientNetV2B3, EfficientNetV2L as EfficientNetV2L, EfficientNetV2M as EfficientNetV2M, EfficientNetV2S as EfficientNetV2S, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/imagenet_utils/__init__.pyi b/tensorflow-stubs/keras/applications/imagenet_utils/__init__.pyi new file mode 100644 index 0000000..10c7e0f --- /dev/null +++ b/tensorflow-stubs/keras/applications/imagenet_utils/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.imagenet_utils import decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/inception_resnet_v2/__init__.pyi b/tensorflow-stubs/keras/applications/inception_resnet_v2/__init__.pyi new file mode 100644 index 0000000..90b741a --- /dev/null +++ b/tensorflow-stubs/keras/applications/inception_resnet_v2/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.inception_resnet_v2 import InceptionResNetV2 as InceptionResNetV2, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/inception_v3/__init__.pyi b/tensorflow-stubs/keras/applications/inception_v3/__init__.pyi new file mode 100644 index 0000000..85cc9bb --- /dev/null +++ b/tensorflow-stubs/keras/applications/inception_v3/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.inception_v3 import InceptionV3 as InceptionV3, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/mobilenet/__init__.pyi b/tensorflow-stubs/keras/applications/mobilenet/__init__.pyi new file mode 100644 index 0000000..3b71be9 --- /dev/null +++ b/tensorflow-stubs/keras/applications/mobilenet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.mobilenet import MobileNet as MobileNet, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/mobilenet_v2/__init__.pyi b/tensorflow-stubs/keras/applications/mobilenet_v2/__init__.pyi new file mode 100644 index 0000000..2778da5 --- /dev/null +++ b/tensorflow-stubs/keras/applications/mobilenet_v2/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.mobilenet_v2 import MobileNetV2 as MobileNetV2, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/mobilenet_v3/__init__.pyi b/tensorflow-stubs/keras/applications/mobilenet_v3/__init__.pyi new file mode 100644 index 0000000..3fe6745 --- /dev/null +++ b/tensorflow-stubs/keras/applications/mobilenet_v3/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.mobilenet_v3 import decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/nasnet/__init__.pyi b/tensorflow-stubs/keras/applications/nasnet/__init__.pyi new file mode 100644 index 0000000..6953206 --- /dev/null +++ b/tensorflow-stubs/keras/applications/nasnet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.nasnet import NASNetLarge as NASNetLarge, NASNetMobile as NASNetMobile, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/regnet/__init__.pyi b/tensorflow-stubs/keras/applications/regnet/__init__.pyi new file mode 100644 index 0000000..cc3e6a9 --- /dev/null +++ b/tensorflow-stubs/keras/applications/regnet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.regnet import RegNetX002 as RegNetX002, RegNetX004 as RegNetX004, RegNetX006 as RegNetX006, RegNetX008 as RegNetX008, RegNetX016 as RegNetX016, RegNetX032 as RegNetX032, RegNetX040 as RegNetX040, RegNetX064 as RegNetX064, RegNetX080 as RegNetX080, RegNetX120 as RegNetX120, RegNetX160 as RegNetX160, RegNetX320 as RegNetX320, RegNetY002 as RegNetY002, RegNetY004 as RegNetY004, RegNetY006 as RegNetY006, RegNetY008 as RegNetY008, RegNetY016 as RegNetY016, RegNetY032 as RegNetY032, RegNetY040 as RegNetY040, RegNetY064 as RegNetY064, RegNetY080 as RegNetY080, RegNetY120 as RegNetY120, RegNetY160 as RegNetY160, RegNetY320 as RegNetY320, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/resnet/__init__.pyi b/tensorflow-stubs/keras/applications/resnet/__init__.pyi new file mode 100644 index 0000000..1fd0bed --- /dev/null +++ b/tensorflow-stubs/keras/applications/resnet/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.resnet import ResNet101 as ResNet101, ResNet152 as ResNet152, ResNet50 as ResNet50, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/resnet50/__init__.pyi b/tensorflow-stubs/keras/applications/resnet50/__init__.pyi new file mode 100644 index 0000000..d94f5d6 --- /dev/null +++ b/tensorflow-stubs/keras/applications/resnet50/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.resnet import ResNet50 as ResNet50, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/resnet_rs/__init__.pyi b/tensorflow-stubs/keras/applications/resnet_rs/__init__.pyi new file mode 100644 index 0000000..f20db4a --- /dev/null +++ b/tensorflow-stubs/keras/applications/resnet_rs/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.resnet_rs import ResNetRS101 as ResNetRS101, ResNetRS152 as ResNetRS152, ResNetRS200 as ResNetRS200, ResNetRS270 as ResNetRS270, ResNetRS350 as ResNetRS350, ResNetRS420 as ResNetRS420, ResNetRS50 as ResNetRS50, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/resnet_v2/__init__.pyi b/tensorflow-stubs/keras/applications/resnet_v2/__init__.pyi new file mode 100644 index 0000000..dd5bdfb --- /dev/null +++ b/tensorflow-stubs/keras/applications/resnet_v2/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.resnet_v2 import ResNet101V2 as ResNet101V2, ResNet152V2 as ResNet152V2, ResNet50V2 as ResNet50V2, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/vgg16/__init__.pyi b/tensorflow-stubs/keras/applications/vgg16/__init__.pyi new file mode 100644 index 0000000..3693167 --- /dev/null +++ b/tensorflow-stubs/keras/applications/vgg16/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.vgg16 import VGG16 as VGG16, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/vgg19/__init__.pyi b/tensorflow-stubs/keras/applications/vgg19/__init__.pyi new file mode 100644 index 0000000..730966c --- /dev/null +++ b/tensorflow-stubs/keras/applications/vgg19/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.vgg19 import VGG19 as VGG19, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/applications/xception/__init__.pyi b/tensorflow-stubs/keras/applications/xception/__init__.pyi new file mode 100644 index 0000000..b968c93 --- /dev/null +++ b/tensorflow-stubs/keras/applications/xception/__init__.pyi @@ -0,0 +1 @@ +from keras.applications.xception import Xception as Xception, decode_predictions as decode_predictions, preprocess_input as preprocess_input diff --git a/tensorflow-stubs/keras/backend/__init__.pyi b/tensorflow-stubs/keras/backend/__init__.pyi new file mode 100644 index 0000000..c03370e --- /dev/null +++ b/tensorflow-stubs/keras/backend/__init__.pyi @@ -0,0 +1,3 @@ +from keras.api._v2.keras.backend import experimental as experimental +from keras.backend import abs as abs, all as all, any as any, arange as arange, argmax as argmax, argmin as argmin, backend as backend, batch_dot as batch_dot, batch_flatten as batch_flatten, batch_get_value as batch_get_value, batch_normalization as batch_normalization, batch_set_value as batch_set_value, bias_add as bias_add, binary_crossentropy as binary_crossentropy, binary_focal_crossentropy as binary_focal_crossentropy, cast as cast, cast_to_floatx as cast_to_floatx, categorical_crossentropy as categorical_crossentropy, clear_session as clear_session, clip as clip, concatenate as concatenate, constant as constant, conv1d as conv1d, conv2d as conv2d, conv2d_transpose as conv2d_transpose, conv3d as conv3d, cos as cos, count_params as count_params, ctc_batch_cost as ctc_batch_cost, ctc_decode as ctc_decode, ctc_label_dense_to_sparse as ctc_label_dense_to_sparse, cumprod as cumprod, cumsum as cumsum, depthwise_conv2d as depthwise_conv2d, dot as dot, dropout as dropout, dtype as dtype, elu as elu, equal as equal, eval as eval, exp as exp, expand_dims as expand_dims, eye as eye, flatten as flatten, foldl as foldl, foldr as foldr, function as function, gather as gather, get_uid as get_uid, get_value as get_value, gradients as gradients, greater as greater, greater_equal as greater_equal, hard_sigmoid as hard_sigmoid, in_test_phase as in_test_phase, in_top_k as in_top_k, in_train_phase as in_train_phase, int_shape as int_shape, is_keras_tensor as is_keras_tensor, is_sparse as is_sparse, l2_normalize as l2_normalize, learning_phase as learning_phase, learning_phase_scope as learning_phase_scope, less as less, less_equal as less_equal, local_conv1d as local_conv1d, local_conv2d as local_conv2d, log as log, manual_variable_initialization as manual_variable_initialization, map_fn as map_fn, max as max, maximum as maximum, mean as mean, min as min, minimum as minimum, moving_average_update as moving_average_update, name_scope as name_scope, ndim as ndim, normalize_batch_in_training as normalize_batch_in_training, not_equal as not_equal, one_hot as one_hot, ones as ones, ones_like as ones_like, permute_dimensions as permute_dimensions, placeholder as placeholder, pool2d as pool2d, pool3d as pool3d, pow as pow, print_tensor as print_tensor, prod as prod, random_bernoulli as random_bernoulli, random_binomial as random_binomial, random_normal as random_normal, random_normal_variable as random_normal_variable, random_uniform as random_uniform, random_uniform_variable as random_uniform_variable, relu as relu, repeat as repeat, repeat_elements as repeat_elements, reset_uids as reset_uids, reshape as reshape, resize_images as resize_images, resize_volumes as resize_volumes, reverse as reverse, rnn as rnn, round as round, separable_conv2d as separable_conv2d, set_learning_phase as set_learning_phase, set_value as set_value, shape as shape, sigmoid as sigmoid, sign as sign, sin as sin, softmax as softmax, softplus as softplus, softsign as softsign, sparse_categorical_crossentropy as sparse_categorical_crossentropy, spatial_2d_padding as spatial_2d_padding, spatial_3d_padding as spatial_3d_padding, sqrt as sqrt, square as square, squeeze as squeeze, stack as stack, std as std, stop_gradient as stop_gradient, sum as sum, switch as switch, tanh as tanh, temporal_padding as temporal_padding, tile as tile, to_dense as to_dense, transpose as transpose, truncated_normal as truncated_normal, update as update, update_add as update_add, update_sub as update_sub, var as var, variable as variable, zeros as zeros, zeros_like as zeros_like +from keras.backend_config import epsilon as epsilon, floatx as floatx, image_data_format as image_data_format, set_epsilon as set_epsilon, set_floatx as set_floatx, set_image_data_format as set_image_data_format diff --git a/tensorflow-stubs/keras/backend/experimental/__init__.pyi b/tensorflow-stubs/keras/backend/experimental/__init__.pyi new file mode 100644 index 0000000..5279cde --- /dev/null +++ b/tensorflow-stubs/keras/backend/experimental/__init__.pyi @@ -0,0 +1 @@ +from keras.backend import disable_tf_random_generator as disable_tf_random_generator, enable_tf_random_generator as enable_tf_random_generator, is_tf_random_generator_enabled as is_tf_random_generator_enabled diff --git a/tensorflow-stubs/keras/callbacks/__init__.pyi b/tensorflow-stubs/keras/callbacks/__init__.pyi new file mode 100644 index 0000000..ddb2a5b --- /dev/null +++ b/tensorflow-stubs/keras/callbacks/__init__.pyi @@ -0,0 +1,2 @@ +from keras.api._v2.keras.callbacks import experimental as experimental +from keras.callbacks import BackupAndRestore as BackupAndRestore, BaseLogger as BaseLogger, CSVLogger as CSVLogger, Callback as Callback, CallbackList as CallbackList, EarlyStopping as EarlyStopping, History as History, LambdaCallback as LambdaCallback, LearningRateScheduler as LearningRateScheduler, ModelCheckpoint as ModelCheckpoint, ProgbarLogger as ProgbarLogger, ReduceLROnPlateau as ReduceLROnPlateau, RemoteMonitor as RemoteMonitor, TensorBoard as TensorBoard, TerminateOnNaN as TerminateOnNaN diff --git a/tensorflow-stubs/keras/callbacks/experimental/__init__.pyi b/tensorflow-stubs/keras/callbacks/experimental/__init__.pyi new file mode 100644 index 0000000..e69de29 diff --git a/tensorflow-stubs/keras/constraints/__init__.pyi b/tensorflow-stubs/keras/constraints/__init__.pyi new file mode 100644 index 0000000..ff908b7 --- /dev/null +++ b/tensorflow-stubs/keras/constraints/__init__.pyi @@ -0,0 +1 @@ +from keras.constraints import Constraint as Constraint, MaxNorm as MaxNorm, MinMaxNorm as MinMaxNorm, NonNeg as NonNeg, RadialConstraint as RadialConstraint, UnitNorm as UnitNorm, deserialize as deserialize, get as get, serialize as serialize diff --git a/tensorflow-stubs/keras/datasets/__init__.pyi b/tensorflow-stubs/keras/datasets/__init__.pyi new file mode 100644 index 0000000..891b50a --- /dev/null +++ b/tensorflow-stubs/keras/datasets/__init__.pyi @@ -0,0 +1 @@ +from keras.api._v2.keras.datasets import boston_housing as boston_housing, cifar10 as cifar10, cifar100 as cifar100, fashion_mnist as fashion_mnist, imdb as imdb, mnist as mnist, reuters as reuters diff --git a/tensorflow-stubs/keras/datasets/boston_housing/__init__.pyi b/tensorflow-stubs/keras/datasets/boston_housing/__init__.pyi new file mode 100644 index 0000000..3015761 --- /dev/null +++ b/tensorflow-stubs/keras/datasets/boston_housing/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.boston_housing import load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/cifar10/__init__.pyi b/tensorflow-stubs/keras/datasets/cifar10/__init__.pyi new file mode 100644 index 0000000..e04a5bf --- /dev/null +++ b/tensorflow-stubs/keras/datasets/cifar10/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.cifar10 import load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/cifar100/__init__.pyi b/tensorflow-stubs/keras/datasets/cifar100/__init__.pyi new file mode 100644 index 0000000..15b5e90 --- /dev/null +++ b/tensorflow-stubs/keras/datasets/cifar100/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.cifar100 import load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/fashion_mnist/__init__.pyi b/tensorflow-stubs/keras/datasets/fashion_mnist/__init__.pyi new file mode 100644 index 0000000..c99bf67 --- /dev/null +++ b/tensorflow-stubs/keras/datasets/fashion_mnist/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.fashion_mnist import load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/imdb/__init__.pyi b/tensorflow-stubs/keras/datasets/imdb/__init__.pyi new file mode 100644 index 0000000..6ff2f7c --- /dev/null +++ b/tensorflow-stubs/keras/datasets/imdb/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.imdb import get_word_index as get_word_index, load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/mnist/__init__.pyi b/tensorflow-stubs/keras/datasets/mnist/__init__.pyi new file mode 100644 index 0000000..858b4d9 --- /dev/null +++ b/tensorflow-stubs/keras/datasets/mnist/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.mnist import load_data as load_data diff --git a/tensorflow-stubs/keras/datasets/reuters/__init__.pyi b/tensorflow-stubs/keras/datasets/reuters/__init__.pyi new file mode 100644 index 0000000..d18c796 --- /dev/null +++ b/tensorflow-stubs/keras/datasets/reuters/__init__.pyi @@ -0,0 +1 @@ +from keras.datasets.reuters import get_word_index as get_word_index, load_data as load_data diff --git a/tensorflow-stubs/keras/dtensor/__init__.pyi b/tensorflow-stubs/keras/dtensor/__init__.pyi new file mode 100644 index 0000000..e20a059 --- /dev/null +++ b/tensorflow-stubs/keras/dtensor/__init__.pyi @@ -0,0 +1 @@ +from keras.api._v2.keras.dtensor import experimental as experimental diff --git a/tensorflow-stubs/keras/dtensor/experimental/__init__.pyi b/tensorflow-stubs/keras/dtensor/experimental/__init__.pyi new file mode 100644 index 0000000..5ecd9fb --- /dev/null +++ b/tensorflow-stubs/keras/dtensor/experimental/__init__.pyi @@ -0,0 +1,2 @@ +from keras.api._v2.keras.dtensor.experimental import optimizers as optimizers +from keras.dtensor.layout_map import LayoutMap as LayoutMap, layout_map_scope as layout_map_scope diff --git a/tensorflow-stubs/keras/dtensor/experimental/optimizers/__init__.pyi b/tensorflow-stubs/keras/dtensor/experimental/optimizers/__init__.pyi new file mode 100644 index 0000000..262b4eb --- /dev/null +++ b/tensorflow-stubs/keras/dtensor/experimental/optimizers/__init__.pyi @@ -0,0 +1 @@ +from keras.dtensor.optimizers import Adadelta as Adadelta, Adagrad as Adagrad, Adam as Adam, AdamW as AdamW, RMSprop as RMSprop, SGD as SGD diff --git a/tensorflow-stubs/keras/estimator/__init__.pyi b/tensorflow-stubs/keras/estimator/__init__.pyi new file mode 100644 index 0000000..e69de29 diff --git a/tensorflow-stubs/keras/experimental/__init__.pyi b/tensorflow-stubs/keras/experimental/__init__.pyi new file mode 100644 index 0000000..510686e --- /dev/null +++ b/tensorflow-stubs/keras/experimental/__init__.pyi @@ -0,0 +1,4 @@ +from keras.feature_column.sequence_feature_column import SequenceFeatures as SequenceFeatures +from keras.optimizers.schedules.learning_rate_schedule import CosineDecay as CosineDecay, CosineDecayRestarts as CosineDecayRestarts +from keras.premade_models.linear import LinearModel as LinearModel +from keras.premade_models.wide_deep import WideDeepModel as WideDeepModel diff --git a/tensorflow-stubs/keras/initializers/__init__.pyi b/tensorflow-stubs/keras/initializers/__init__.pyi new file mode 100644 index 0000000..b09bf9d --- /dev/null +++ b/tensorflow-stubs/keras/initializers/__init__.pyi @@ -0,0 +1,2 @@ +from keras.initializers import deserialize as deserialize, get as get, serialize as serialize +from keras.initializers.initializers_v2 import Constant as Constant, GlorotNormal as GlorotNormal, GlorotUniform as GlorotUniform, HeNormal as HeNormal, HeUniform as HeUniform, Identity as Identity, Initializer as Initializer, LecunNormal as LecunNormal, LecunUniform as LecunUniform, Ones as Ones, Orthogonal as Orthogonal, RandomNormal as RandomNormal, RandomUniform as RandomUniform, TruncatedNormal as TruncatedNormal, VarianceScaling as VarianceScaling, Zeros as Zeros diff --git a/tensorflow-stubs/keras/layers/__init__.pyi b/tensorflow-stubs/keras/layers/__init__.pyi new file mode 100644 index 0000000..42c7c2d --- /dev/null +++ b/tensorflow-stubs/keras/layers/__init__.pyi @@ -0,0 +1,97 @@ +from keras.api._v2.keras.layers import experimental as experimental +from keras.engine.base_layer import Layer as Layer +from keras.engine.input_layer import Input as Input, InputLayer as InputLayer +from keras.engine.input_spec import InputSpec as InputSpec +from keras.feature_column.dense_features_v2 import DenseFeatures as DenseFeatures +from keras.layers.activation.elu import ELU as ELU +from keras.layers.activation.leaky_relu import LeakyReLU as LeakyReLU +from keras.layers.activation.prelu import PReLU as PReLU +from keras.layers.activation.relu import ReLU as ReLU +from keras.layers.activation.softmax import Softmax as Softmax +from keras.layers.activation.thresholded_relu import ThresholdedReLU as ThresholdedReLU +from keras.layers.attention.additive_attention import AdditiveAttention as AdditiveAttention +from keras.layers.attention.attention import Attention as Attention +from keras.layers.attention.multi_head_attention import MultiHeadAttention as MultiHeadAttention +from keras.layers.convolutional.conv1d import Conv1D as Conv1D +from keras.layers.convolutional.conv1d_transpose import Conv1DTranspose as Conv1DTranspose +from keras.layers.convolutional.conv2d import Conv2D as Conv2D +from keras.layers.convolutional.conv2d_transpose import Conv2DTranspose as Conv2DTranspose +from keras.layers.convolutional.conv3d import Conv3D as Conv3D +from keras.layers.convolutional.conv3d_transpose import Conv3DTranspose as Conv3DTranspose +from keras.layers.convolutional.depthwise_conv1d import DepthwiseConv1D as DepthwiseConv1D +from keras.layers.convolutional.depthwise_conv2d import DepthwiseConv2D as DepthwiseConv2D +from keras.layers.convolutional.separable_conv1d import SeparableConv1D as SeparableConv1D +from keras.layers.convolutional.separable_conv2d import SeparableConv2D as SeparableConv2D +from keras.layers.core.activation import Activation as Activation +from keras.layers.core.dense import Dense as Dense +from keras.layers.core.einsum_dense import EinsumDense as EinsumDense +from keras.layers.core.embedding import Embedding as Embedding +from keras.layers.core.lambda_layer import Lambda as Lambda +from keras.layers.core.masking import Masking as Masking +from keras.layers.locally_connected.locally_connected1d import LocallyConnected1D as LocallyConnected1D +from keras.layers.locally_connected.locally_connected2d import LocallyConnected2D as LocallyConnected2D +from keras.layers.merging.add import Add as Add, add as add +from keras.layers.merging.average import Average as Average, average as average +from keras.layers.merging.concatenate import Concatenate as Concatenate, concatenate as concatenate +from keras.layers.merging.dot import Dot as Dot, dot as dot +from keras.layers.merging.maximum import Maximum as Maximum, maximum as maximum +from keras.layers.merging.minimum import Minimum as Minimum, minimum as minimum +from keras.layers.merging.multiply import Multiply as Multiply, multiply as multiply +from keras.layers.merging.subtract import Subtract as Subtract, subtract as subtract +from keras.layers.normalization.batch_normalization import BatchNormalization as BatchNormalization +from keras.layers.normalization.layer_normalization import LayerNormalization as LayerNormalization +from keras.layers.normalization.unit_normalization import UnitNormalization as UnitNormalization +from keras.layers.pooling.average_pooling1d import AveragePooling1D as AveragePooling1D +from keras.layers.pooling.average_pooling2d import AveragePooling2D as AveragePooling2D +from keras.layers.pooling.average_pooling3d import AveragePooling3D as AveragePooling3D +from keras.layers.pooling.global_average_pooling1d import GlobalAveragePooling1D as GlobalAveragePooling1D +from keras.layers.pooling.global_average_pooling2d import GlobalAveragePooling2D as GlobalAveragePooling2D +from keras.layers.pooling.global_average_pooling3d import GlobalAveragePooling3D as GlobalAveragePooling3D +from keras.layers.pooling.global_max_pooling1d import GlobalMaxPooling1D as GlobalMaxPooling1D +from keras.layers.pooling.global_max_pooling2d import GlobalMaxPooling2D as GlobalMaxPooling2D +from keras.layers.pooling.global_max_pooling3d import GlobalMaxPooling3D as GlobalMaxPooling3D +from keras.layers.pooling.max_pooling1d import MaxPooling1D as MaxPooling1D +from keras.layers.pooling.max_pooling2d import MaxPooling2D as MaxPooling2D +from keras.layers.pooling.max_pooling3d import MaxPooling3D as MaxPooling3D +from keras.layers.preprocessing.category_encoding import CategoryEncoding as CategoryEncoding +from keras.layers.preprocessing.discretization import Discretization as Discretization +from keras.layers.preprocessing.hashing import Hashing as Hashing +from keras.layers.preprocessing.image_preprocessing import CenterCrop as CenterCrop, RandomBrightness as RandomBrightness, RandomContrast as RandomContrast, RandomCrop as RandomCrop, RandomFlip as RandomFlip, RandomHeight as RandomHeight, RandomRotation as RandomRotation, RandomTranslation as RandomTranslation, RandomWidth as RandomWidth, RandomZoom as RandomZoom, Rescaling as Rescaling, Resizing as Resizing +from keras.layers.preprocessing.integer_lookup import IntegerLookup as IntegerLookup +from keras.layers.preprocessing.normalization import Normalization as Normalization +from keras.layers.preprocessing.string_lookup import StringLookup as StringLookup +from keras.layers.preprocessing.text_vectorization import TextVectorization as TextVectorization +from keras.layers.regularization.activity_regularization import ActivityRegularization as ActivityRegularization +from keras.layers.regularization.alpha_dropout import AlphaDropout as AlphaDropout +from keras.layers.regularization.dropout import Dropout as Dropout +from keras.layers.regularization.gaussian_dropout import GaussianDropout as GaussianDropout +from keras.layers.regularization.gaussian_noise import GaussianNoise as GaussianNoise +from keras.layers.regularization.spatial_dropout1d import SpatialDropout1D as SpatialDropout1D +from keras.layers.regularization.spatial_dropout2d import SpatialDropout2D as SpatialDropout2D +from keras.layers.regularization.spatial_dropout3d import SpatialDropout3D as SpatialDropout3D +from keras.layers.reshaping.cropping1d import Cropping1D as Cropping1D +from keras.layers.reshaping.cropping2d import Cropping2D as Cropping2D +from keras.layers.reshaping.cropping3d import Cropping3D as Cropping3D +from keras.layers.reshaping.flatten import Flatten as Flatten +from keras.layers.reshaping.permute import Permute as Permute +from keras.layers.reshaping.repeat_vector import RepeatVector as RepeatVector +from keras.layers.reshaping.reshape import Reshape as Reshape +from keras.layers.reshaping.up_sampling1d import UpSampling1D as UpSampling1D +from keras.layers.reshaping.up_sampling2d import UpSampling2D as UpSampling2D +from keras.layers.reshaping.up_sampling3d import UpSampling3D as UpSampling3D +from keras.layers.reshaping.zero_padding1d import ZeroPadding1D as ZeroPadding1D +from keras.layers.reshaping.zero_padding2d import ZeroPadding2D as ZeroPadding2D +from keras.layers.reshaping.zero_padding3d import ZeroPadding3D as ZeroPadding3D +from keras.layers.rnn.abstract_rnn_cell import AbstractRNNCell as AbstractRNNCell +from keras.layers.rnn.base_rnn import RNN as RNN +from keras.layers.rnn.base_wrapper import Wrapper as Wrapper +from keras.layers.rnn.bidirectional import Bidirectional as Bidirectional +from keras.layers.rnn.conv_lstm1d import ConvLSTM1D as ConvLSTM1D +from keras.layers.rnn.conv_lstm2d import ConvLSTM2D as ConvLSTM2D +from keras.layers.rnn.conv_lstm3d import ConvLSTM3D as ConvLSTM3D +from keras.layers.rnn.gru import GRU as GRU, GRUCell as GRUCell +from keras.layers.rnn.lstm import LSTM as LSTM, LSTMCell as LSTMCell +from keras.layers.rnn.simple_rnn import SimpleRNN as SimpleRNN, SimpleRNNCell as SimpleRNNCell +from keras.layers.rnn.stacked_rnn_cells import StackedRNNCells as StackedRNNCells +from keras.layers.rnn.time_distributed import TimeDistributed as TimeDistributed +from keras.layers.serialization import deserialize as deserialize, serialize as serialize diff --git a/tensorflow-stubs/keras/layers/experimental/__init__.pyi b/tensorflow-stubs/keras/layers/experimental/__init__.pyi new file mode 100644 index 0000000..d09742c --- /dev/null +++ b/tensorflow-stubs/keras/layers/experimental/__init__.pyi @@ -0,0 +1,4 @@ +from keras.api._v2.keras.layers.experimental import preprocessing as preprocessing +from keras.layers.core.einsum_dense import EinsumDense as EinsumDense +from keras.layers.kernelized import RandomFourierFeatures as RandomFourierFeatures +from keras.layers.normalization.batch_normalization import SyncBatchNormalization as SyncBatchNormalization diff --git a/tensorflow-stubs/keras/layers/experimental/preprocessing/__init__.pyi b/tensorflow-stubs/keras/layers/experimental/preprocessing/__init__.pyi new file mode 100644 index 0000000..8899643 --- /dev/null +++ b/tensorflow-stubs/keras/layers/experimental/preprocessing/__init__.pyi @@ -0,0 +1,10 @@ +from keras.engine.base_preprocessing_layer import PreprocessingLayer as PreprocessingLayer +from keras.layers.preprocessing.category_encoding import CategoryEncoding as CategoryEncoding +from keras.layers.preprocessing.discretization import Discretization as Discretization +from keras.layers.preprocessing.hashed_crossing import HashedCrossing as HashedCrossing +from keras.layers.preprocessing.hashing import Hashing as Hashing +from keras.layers.preprocessing.image_preprocessing import CenterCrop as CenterCrop, RandomContrast as RandomContrast, RandomCrop as RandomCrop, RandomFlip as RandomFlip, RandomHeight as RandomHeight, RandomRotation as RandomRotation, RandomTranslation as RandomTranslation, RandomWidth as RandomWidth, RandomZoom as RandomZoom, Rescaling as Rescaling, Resizing as Resizing +from keras.layers.preprocessing.integer_lookup import IntegerLookup as IntegerLookup +from keras.layers.preprocessing.normalization import Normalization as Normalization +from keras.layers.preprocessing.string_lookup import StringLookup as StringLookup +from keras.layers.preprocessing.text_vectorization import TextVectorization as TextVectorization diff --git a/tensorflow-stubs/keras/losses/__init__.pyi b/tensorflow-stubs/keras/losses/__init__.pyi new file mode 100644 index 0000000..a086f99 --- /dev/null +++ b/tensorflow-stubs/keras/losses/__init__.pyi @@ -0,0 +1 @@ +from keras.losses import BinaryCrossentropy as BinaryCrossentropy, BinaryFocalCrossentropy as BinaryFocalCrossentropy, CategoricalCrossentropy as CategoricalCrossentropy, CategoricalHinge as CategoricalHinge, CosineSimilarity as CosineSimilarity, Hinge as Hinge, Huber as Huber, KLDivergence as KLDivergence, LogCosh as LogCosh, Loss as Loss, MeanAbsoluteError as MeanAbsoluteError, MeanAbsolutePercentageError as MeanAbsolutePercentageError, MeanSquaredError as MeanSquaredError, MeanSquaredLogarithmicError as MeanSquaredLogarithmicError, Poisson as Poisson, SparseCategoricalCrossentropy as SparseCategoricalCrossentropy, SquaredHinge as SquaredHinge, binary_crossentropy as binary_crossentropy, binary_focal_crossentropy as binary_focal_crossentropy, categorical_crossentropy as categorical_crossentropy, categorical_hinge as categorical_hinge, cosine_similarity as cosine_similarity, deserialize as deserialize, get as get, hinge as hinge, huber as huber, kl_divergence as kl_divergence, log_cosh as log_cosh, mean_absolute_error as mean_absolute_error, mean_absolute_percentage_error as mean_absolute_percentage_error, mean_squared_error as mean_squared_error, mean_squared_logarithmic_error as mean_squared_logarithmic_error, poisson as poisson, serialize as serialize, sparse_categorical_crossentropy as sparse_categorical_crossentropy, squared_hinge as squared_hinge diff --git a/tensorflow-stubs/keras/metrics/__init__.pyi b/tensorflow-stubs/keras/metrics/__init__.pyi new file mode 100644 index 0000000..31114fb --- /dev/null +++ b/tensorflow-stubs/keras/metrics/__init__.pyi @@ -0,0 +1,4 @@ +from keras.losses import binary_crossentropy as binary_crossentropy, binary_focal_crossentropy as binary_focal_crossentropy, categorical_crossentropy as categorical_crossentropy, hinge as hinge, kl_divergence as kl_divergence, log_cosh as log_cosh, mean_absolute_error as mean_absolute_error, mean_absolute_percentage_error as mean_absolute_percentage_error, mean_squared_error as mean_squared_error, mean_squared_logarithmic_error as mean_squared_logarithmic_error, poisson as poisson, sparse_categorical_crossentropy as sparse_categorical_crossentropy, squared_hinge as squared_hinge +from keras.metrics import deserialize as deserialize, get as get, serialize as serialize +from keras.metrics.base_metric import Mean as Mean, MeanMetricWrapper as MeanMetricWrapper, MeanTensor as MeanTensor, Metric as Metric, Sum as Sum +from keras.metrics.metrics import AUC as AUC, Accuracy as Accuracy, BinaryAccuracy as BinaryAccuracy, BinaryCrossentropy as BinaryCrossentropy, BinaryIoU as BinaryIoU, CategoricalAccuracy as CategoricalAccuracy, CategoricalCrossentropy as CategoricalCrossentropy, CategoricalHinge as CategoricalHinge, CosineSimilarity as CosineSimilarity, FalseNegatives as FalseNegatives, FalsePositives as FalsePositives, Hinge as Hinge, IoU as IoU, KLDivergence as KLDivergence, LogCoshError as LogCoshError, MeanAbsoluteError as MeanAbsoluteError, MeanAbsolutePercentageError as MeanAbsolutePercentageError, MeanIoU as MeanIoU, MeanRelativeError as MeanRelativeError, MeanSquaredError as MeanSquaredError, MeanSquaredLogarithmicError as MeanSquaredLogarithmicError, OneHotIoU as OneHotIoU, OneHotMeanIoU as OneHotMeanIoU, Poisson as Poisson, Precision as Precision, PrecisionAtRecall as PrecisionAtRecall, Recall as Recall, RecallAtPrecision as RecallAtPrecision, RootMeanSquaredError as RootMeanSquaredError, SensitivityAtSpecificity as SensitivityAtSpecificity, SparseCategoricalAccuracy as SparseCategoricalAccuracy, SparseCategoricalCrossentropy as SparseCategoricalCrossentropy, SparseTopKCategoricalAccuracy as SparseTopKCategoricalAccuracy, SpecificityAtSensitivity as SpecificityAtSensitivity, SquaredHinge as SquaredHinge, TopKCategoricalAccuracy as TopKCategoricalAccuracy, TrueNegatives as TrueNegatives, TruePositives as TruePositives, binary_accuracy as binary_accuracy, categorical_accuracy as categorical_accuracy, sparse_categorical_accuracy as sparse_categorical_accuracy, sparse_top_k_categorical_accuracy as sparse_top_k_categorical_accuracy, top_k_categorical_accuracy as top_k_categorical_accuracy diff --git a/tensorflow-stubs/keras/mixed_precision/__init__.pyi b/tensorflow-stubs/keras/mixed_precision/__init__.pyi new file mode 100644 index 0000000..7db1172 --- /dev/null +++ b/tensorflow-stubs/keras/mixed_precision/__init__.pyi @@ -0,0 +1 @@ +from keras.mixed_precision.policy import Policy as Policy, global_policy as global_policy, set_global_policy as set_global_policy diff --git a/tensorflow-stubs/keras/models/__init__.pyi b/tensorflow-stubs/keras/models/__init__.pyi new file mode 100644 index 0000000..2c40a35 --- /dev/null +++ b/tensorflow-stubs/keras/models/__init__.pyi @@ -0,0 +1,6 @@ +from keras.api._v2.keras.models import experimental as experimental +from keras.engine.sequential import Sequential as Sequential +from keras.engine.training import Model as Model +from keras.models.cloning import clone_model as clone_model +from keras.saving.model_config import model_from_config as model_from_config, model_from_json as model_from_json, model_from_yaml as model_from_yaml +from keras.saving.save import load_model as load_model, save_model as save_model diff --git a/tensorflow-stubs/keras/models/experimental/__init__.pyi b/tensorflow-stubs/keras/models/experimental/__init__.pyi new file mode 100644 index 0000000..d92476f --- /dev/null +++ b/tensorflow-stubs/keras/models/experimental/__init__.pyi @@ -0,0 +1 @@ +from keras.models.sharpness_aware_minimization import SharpnessAwareMinimization as SharpnessAwareMinimization diff --git a/tensorflow-stubs/keras/optimizers/__init__.pyi b/tensorflow-stubs/keras/optimizers/__init__.pyi new file mode 100644 index 0000000..641b5c9 --- /dev/null +++ b/tensorflow-stubs/keras/optimizers/__init__.pyi @@ -0,0 +1,10 @@ +from keras.api._v2.keras.optimizers import experimental as experimental, legacy as legacy, schedules as schedules +from keras.optimizers import deserialize as deserialize, get as get, serialize as serialize +from keras.optimizers.optimizer_v2.adadelta import Adadelta as Adadelta +from keras.optimizers.optimizer_v2.adagrad import Adagrad as Adagrad +from keras.optimizers.optimizer_v2.adam import Adam as Adam +from keras.optimizers.optimizer_v2.adamax import Adamax as Adamax +from keras.optimizers.optimizer_v2.ftrl import Ftrl as Ftrl +from keras.optimizers.optimizer_v2.gradient_descent import SGD as SGD +from keras.optimizers.optimizer_v2.nadam import Nadam as Nadam +from keras.optimizers.optimizer_v2.rmsprop import RMSprop as RMSprop diff --git a/tensorflow-stubs/keras/optimizers/experimental/__init__.pyi b/tensorflow-stubs/keras/optimizers/experimental/__init__.pyi new file mode 100644 index 0000000..0b65069 --- /dev/null +++ b/tensorflow-stubs/keras/optimizers/experimental/__init__.pyi @@ -0,0 +1,10 @@ +from keras.optimizers.optimizer_experimental.adadelta import Adadelta as Adadelta +from keras.optimizers.optimizer_experimental.adagrad import Adagrad as Adagrad +from keras.optimizers.optimizer_experimental.adam import Adam as Adam +from keras.optimizers.optimizer_experimental.adamax import Adamax as Adamax +from keras.optimizers.optimizer_experimental.adamw import AdamW as AdamW +from keras.optimizers.optimizer_experimental.ftrl import Ftrl as Ftrl +from keras.optimizers.optimizer_experimental.nadam import Nadam as Nadam +from keras.optimizers.optimizer_experimental.optimizer import Optimizer as Optimizer +from keras.optimizers.optimizer_experimental.rmsprop import RMSprop as RMSprop +from keras.optimizers.optimizer_experimental.sgd import SGD as SGD diff --git a/tensorflow-stubs/keras/optimizers/legacy/__init__.pyi b/tensorflow-stubs/keras/optimizers/legacy/__init__.pyi new file mode 100644 index 0000000..72ac7a1 --- /dev/null +++ b/tensorflow-stubs/keras/optimizers/legacy/__init__.pyi @@ -0,0 +1,9 @@ +from keras.optimizers.legacy.adadelta import Adadelta as Adadelta +from keras.optimizers.legacy.adagrad import Adagrad as Adagrad +from keras.optimizers.legacy.adam import Adam as Adam +from keras.optimizers.legacy.adamax import Adamax as Adamax +from keras.optimizers.legacy.ftrl import Ftrl as Ftrl +from keras.optimizers.legacy.nadam import Nadam as Nadam +from keras.optimizers.legacy.optimizer import Optimizer as Optimizer +from keras.optimizers.legacy.rmsprop import RMSprop as RMSprop +from keras.optimizers.legacy.sgd import SGD as SGD diff --git a/tensorflow-stubs/keras/optimizers/schedules/__init__.pyi b/tensorflow-stubs/keras/optimizers/schedules/__init__.pyi new file mode 100644 index 0000000..64f460a --- /dev/null +++ b/tensorflow-stubs/keras/optimizers/schedules/__init__.pyi @@ -0,0 +1 @@ +from keras.optimizers.schedules.learning_rate_schedule import CosineDecay as CosineDecay, CosineDecayRestarts as CosineDecayRestarts, ExponentialDecay as ExponentialDecay, InverseTimeDecay as InverseTimeDecay, LearningRateSchedule as LearningRateSchedule, PiecewiseConstantDecay as PiecewiseConstantDecay, PolynomialDecay as PolynomialDecay, deserialize as deserialize, serialize as serialize diff --git a/tensorflow-stubs/keras/premade/__init__.pyi b/tensorflow-stubs/keras/premade/__init__.pyi new file mode 100644 index 0000000..e69de29 diff --git a/tensorflow-stubs/keras/preprocessing/__init__.pyi b/tensorflow-stubs/keras/preprocessing/__init__.pyi new file mode 100644 index 0000000..17bb7aa --- /dev/null +++ b/tensorflow-stubs/keras/preprocessing/__init__.pyi @@ -0,0 +1,4 @@ +from keras.api._v2.keras.preprocessing import image as image, sequence as sequence, text as text +from keras.utils.image_dataset import image_dataset_from_directory as image_dataset_from_directory +from keras.utils.text_dataset import text_dataset_from_directory as text_dataset_from_directory +from keras.utils.timeseries_dataset import timeseries_dataset_from_array as timeseries_dataset_from_array diff --git a/tensorflow-stubs/keras/preprocessing/image/__init__.pyi b/tensorflow-stubs/keras/preprocessing/image/__init__.pyi new file mode 100644 index 0000000..d64bea3 --- /dev/null +++ b/tensorflow-stubs/keras/preprocessing/image/__init__.pyi @@ -0,0 +1,2 @@ +from keras.preprocessing.image import DirectoryIterator as DirectoryIterator, ImageDataGenerator as ImageDataGenerator, Iterator as Iterator, NumpyArrayIterator as NumpyArrayIterator, apply_affine_transform as apply_affine_transform, apply_brightness_shift as apply_brightness_shift, apply_channel_shift as apply_channel_shift, random_brightness as random_brightness, random_channel_shift as random_channel_shift, random_rotation as random_rotation, random_shear as random_shear, random_shift as random_shift, random_zoom as random_zoom +from keras.utils.image_utils import array_to_img as array_to_img, img_to_array as img_to_array, load_img as load_img, save_img as save_img, smart_resize as smart_resize diff --git a/tensorflow-stubs/keras/preprocessing/sequence/__init__.pyi b/tensorflow-stubs/keras/preprocessing/sequence/__init__.pyi new file mode 100644 index 0000000..0f656fe --- /dev/null +++ b/tensorflow-stubs/keras/preprocessing/sequence/__init__.pyi @@ -0,0 +1,2 @@ +from keras.preprocessing.sequence import TimeseriesGenerator as TimeseriesGenerator, make_sampling_table as make_sampling_table, skipgrams as skipgrams +from keras.utils.data_utils import pad_sequences as pad_sequences diff --git a/tensorflow-stubs/keras/preprocessing/text/__init__.pyi b/tensorflow-stubs/keras/preprocessing/text/__init__.pyi new file mode 100644 index 0000000..0efc1ea --- /dev/null +++ b/tensorflow-stubs/keras/preprocessing/text/__init__.pyi @@ -0,0 +1 @@ +from keras.preprocessing.text import Tokenizer as Tokenizer, hashing_trick as hashing_trick, one_hot as one_hot, text_to_word_sequence as text_to_word_sequence, tokenizer_from_json as tokenizer_from_json diff --git a/tensorflow-stubs/keras/regularizers/__init__.pyi b/tensorflow-stubs/keras/regularizers/__init__.pyi new file mode 100644 index 0000000..0d305d4 --- /dev/null +++ b/tensorflow-stubs/keras/regularizers/__init__.pyi @@ -0,0 +1 @@ +from keras.regularizers import L1 as L1, L1L2 as L1L2, L2 as L2, OrthogonalRegularizer as OrthogonalRegularizer, Regularizer as Regularizer, deserialize as deserialize, get as get, l1_l2 as l1_l2, serialize as serialize diff --git a/tensorflow-stubs/keras/utils/__init__.pyi b/tensorflow-stubs/keras/utils/__init__.pyi new file mode 100644 index 0000000..a853efe --- /dev/null +++ b/tensorflow-stubs/keras/utils/__init__.pyi @@ -0,0 +1,16 @@ +from keras.api._v2.keras.utils import experimental as experimental +from keras.distribute.sidecar_evaluator import SidecarEvaluator as SidecarEvaluator +from keras.engine.data_adapter import pack_x_y_sample_weight as pack_x_y_sample_weight, unpack_x_y_sample_weight as unpack_x_y_sample_weight +from keras.utils.audio_dataset import audio_dataset_from_directory as audio_dataset_from_directory +from keras.utils.data_utils import GeneratorEnqueuer as GeneratorEnqueuer, OrderedEnqueuer as OrderedEnqueuer, Sequence as Sequence, SequenceEnqueuer as SequenceEnqueuer, get_file as get_file, pad_sequences as pad_sequences +from keras.utils.dataset_utils import split_dataset as split_dataset +from keras.utils.generic_utils import CustomObjectScope as CustomObjectScope, Progbar as Progbar, deserialize_keras_object as deserialize_keras_object, get_custom_objects as get_custom_objects, get_registered_name as get_registered_name, get_registered_object as get_registered_object, register_keras_serializable as register_keras_serializable, serialize_keras_object as serialize_keras_object +from keras.utils.image_dataset import image_dataset_from_directory as image_dataset_from_directory +from keras.utils.image_utils import array_to_img as array_to_img, img_to_array as img_to_array, load_img as load_img, save_img as save_img +from keras.utils.io_utils import disable_interactive_logging as disable_interactive_logging, enable_interactive_logging as enable_interactive_logging, is_interactive_logging_enabled as is_interactive_logging_enabled +from keras.utils.layer_utils import get_source_inputs as get_source_inputs +from keras.utils.np_utils import normalize as normalize, to_categorical as to_categorical +from keras.utils.text_dataset import text_dataset_from_directory as text_dataset_from_directory +from keras.utils.tf_utils import set_random_seed as set_random_seed +from keras.utils.timeseries_dataset import timeseries_dataset_from_array as timeseries_dataset_from_array +from keras.utils.vis_utils import model_to_dot as model_to_dot, plot_model as plot_model diff --git a/tensorflow-stubs/keras/utils/experimental/__init__.pyi b/tensorflow-stubs/keras/utils/experimental/__init__.pyi new file mode 100644 index 0000000..e0ad8a1 --- /dev/null +++ b/tensorflow-stubs/keras/utils/experimental/__init__.pyi @@ -0,0 +1 @@ +from keras.utils.dataset_creator import DatasetCreator as DatasetCreator diff --git a/tensorflow-stubs/keras/wrappers/__init__.pyi b/tensorflow-stubs/keras/wrappers/__init__.pyi new file mode 100644 index 0000000..918c80b --- /dev/null +++ b/tensorflow-stubs/keras/wrappers/__init__.pyi @@ -0,0 +1 @@ +from keras.api._v2.keras.wrappers import scikit_learn as scikit_learn diff --git a/tensorflow-stubs/keras/wrappers/scikit_learn/__init__.pyi b/tensorflow-stubs/keras/wrappers/scikit_learn/__init__.pyi new file mode 100644 index 0000000..8c78753 --- /dev/null +++ b/tensorflow-stubs/keras/wrappers/scikit_learn/__init__.pyi @@ -0,0 +1 @@ +from keras.wrappers.scikit_learn import KerasClassifier as KerasClassifier, KerasRegressor as KerasRegressor diff --git a/tensorflow-stubs/math/__init__.pyi b/tensorflow-stubs/math/__init__.pyi new file mode 100755 index 0000000..aa339f1 --- /dev/null +++ b/tensorflow-stubs/math/__init__.pyi @@ -0,0 +1,1135 @@ +# Copyright 2020 DeepMind Technologies Limited. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""TensorFlow stubs. + +NOTE: This file is generated from templates/tensorflow.pyi + using a Google-internal tool. +""" + +# BEGIN: tensor_annotations annotations +from typing import Any, TypeVar, Tuple, overload +from typing_extensions import Literal + +from tensor_annotations.axes import Axis +from tensor_annotations.tensorflow import Tensor0, Tensor1, Tensor2, Tensor3, Tensor4, Tensor5 + + +A1 = TypeVar('A1', bound=Axis) +A2 = TypeVar('A2', bound=Axis) +A3 = TypeVar('A3', bound=Axis) +A4 = TypeVar('A4', bound=Axis) +A5 = TypeVar('A5', bound=Axis) +# This alias makes the meaning clearer in code. +# Unfortunately, it still shows up as 'Any' in pytype output. +AnyDType = Any +DT = TypeVar('DT') + +TRUE = Literal[True] +FALSE = Literal[False] + +LN1 = Literal[-1] +L0 = Literal[0] +L1 = Literal[1] +L2 = Literal[2] +L3 = Literal[3] +L4 = Literal[4] + +Shape1 = Tuple[int] +Shape2 = Tuple[int, int] +Shape3 = Tuple[int, int, int] +Shape4 = Tuple[int, int, int, int] +Shape5 = Tuple[int, int, int, int, int] +# END: tensor_annotations annotations + +from typing import Any + +def __getattr__(name) -> Any: ... + +_HAS_DYNAMIC_ATTRIBUTES = True + + +# BEGIN: tensor_annotations annotations for abs(...) +@overload +def abs(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def abs(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def abs(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def abs(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def abs(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def abs(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def abs(x, name=...) -> Any: ... +# END: tensor_annotations annotations for abs(...) + +def accumulate_n(inputs, shape=..., tensor_dtype=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for acos(...) +@overload +def acos(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def acos(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def acos(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def acos(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def acos(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def acos(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def acos(x, name=...) -> Any: ... +# END: tensor_annotations annotations for acos(...) + + +# BEGIN: tensor_annotations annotations for acosh(...) +@overload +def acosh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def acosh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def acosh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def acosh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def acosh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def acosh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def acosh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for acosh(...) + +def add(x, y, name=...) -> Any: ... +def add_n(inputs, name=...) -> Any: ... +def angle(input, name=...) -> Any: ... +def approx_max_k(operand, k, reduction_dimension=..., recall_target=..., reduction_input_size_override=..., aggregate_to_topk=..., name=...) -> Any: ... +def approx_min_k(operand, k, reduction_dimension=..., recall_target=..., reduction_input_size_override=..., aggregate_to_topk=..., name=...) -> Any: ... +def argmax(input, axis=..., output_type=..., name=...) -> Any: ... +def argmin(input, axis=..., output_type=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for asin(...) +@overload +def asin(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def asin(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def asin(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def asin(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def asin(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def asin(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def asin(x, name=...) -> Any: ... +# END: tensor_annotations annotations for asin(...) + + +# BEGIN: tensor_annotations annotations for asinh(...) +@overload +def asinh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def asinh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def asinh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def asinh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def asinh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def asinh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def asinh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for asinh(...) + + +# BEGIN: tensor_annotations annotations for atan(...) +@overload +def atan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def atan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def atan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def atan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def atan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def atan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def atan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for atan(...) + +def atan2(y, x, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for atanh(...) +@overload +def atanh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def atanh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def atanh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def atanh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def atanh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def atanh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def atanh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for atanh(...) + +def bessel_i0(x, name=...) -> Any: ... +def bessel_i0e(x, name=...) -> Any: ... +def bessel_i1(x, name=...) -> Any: ... +def bessel_i1e(x, name=...) -> Any: ... +def betainc(a, b, x, name=...) -> Any: ... +def bincount(arr, weights=..., minlength=..., maxlength=..., dtype=..., name=..., axis=..., binary_output=...) -> Any: ... +def ceil(x, name=...) -> Any: ... +def confusion_matrix(labels, predictions, num_classes=..., weights=..., dtype=..., name=...) -> Any: ... +def conj(x, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for cos(...) +@overload +def cos(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def cos(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def cos(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def cos(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def cos(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def cos(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def cos(x, name=...) -> Any: ... +# END: tensor_annotations annotations for cos(...) + + +# BEGIN: tensor_annotations annotations for cosh(...) +@overload +def cosh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def cosh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def cosh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def cosh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def cosh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def cosh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def cosh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for cosh(...) + +def count_nonzero(input, axis=..., keepdims=..., dtype=..., name=...) -> Any: ... +def cumprod(x, axis=..., exclusive=..., reverse=..., name=...) -> Any: ... +def cumsum(x, axis=..., exclusive=..., reverse=..., name=...) -> Any: ... +def cumulative_logsumexp(x, axis=..., exclusive=..., reverse=..., name=...) -> Any: ... +def digamma(x, name=...) -> Any: ... +def divide(x, y, name=...) -> Any: ... +def divide_no_nan(x, y, name=...) -> Any: ... +def equal(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for erf(...) +@overload +def erf(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def erf(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def erf(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def erf(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def erf(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def erf(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def erf(x, name=...) -> Any: ... +# END: tensor_annotations annotations for erf(...) + + +# BEGIN: tensor_annotations annotations for erfc(...) +@overload +def erfc(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def erfc(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def erfc(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def erfc(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def erfc(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def erfc(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def erfc(x, name=...) -> Any: ... +# END: tensor_annotations annotations for erfc(...) + +def erfcinv(x, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for erfinv(...) +@overload +def erfinv(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def erfinv(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def erfinv(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def erfinv(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def erfinv(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def erfinv(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def erfinv(x, name=...) -> Any: ... +# END: tensor_annotations annotations for erfinv(...) + + +# BEGIN: tensor_annotations annotations for exp(...) +@overload +def exp(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def exp(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def exp(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def exp(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def exp(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def exp(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def exp(x, name=...) -> Any: ... +# END: tensor_annotations annotations for exp(...) + + +# BEGIN: tensor_annotations annotations for expm1(...) +@overload +def expm1(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def expm1(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def expm1(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def expm1(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def expm1(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def expm1(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def expm1(x, name=...) -> Any: ... +# END: tensor_annotations annotations for expm1(...) + + +# BEGIN: tensor_annotations annotations for floor(...) +@overload +def floor(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def floor(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def floor(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def floor(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def floor(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def floor(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def floor(x, name=...) -> Any: ... +# END: tensor_annotations annotations for floor(...) + +def floordiv(x, y, name=...) -> Any: ... +def floormod(x, y, name=...) -> Any: ... +def greater(x, y, name=...) -> Any: ... +def greater_equal(x, y, name=...) -> Any: ... +def igamma(a, x, name=...) -> Any: ... +def igammac(a, x, name=...) -> Any: ... +def imag(input, name=...) -> Any: ... +def in_top_k(targets, predictions, k, name=...) -> Any: ... +def invert_permutation(x, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for is_finite(...) +@overload +def is_finite(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def is_finite(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def is_finite(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def is_finite(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def is_finite(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def is_finite(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def is_finite(x, name=...) -> Any: ... +# END: tensor_annotations annotations for is_finite(...) + + +# BEGIN: tensor_annotations annotations for is_inf(...) +@overload +def is_inf(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def is_inf(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def is_inf(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def is_inf(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def is_inf(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def is_inf(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def is_inf(x, name=...) -> Any: ... +# END: tensor_annotations annotations for is_inf(...) + + +# BEGIN: tensor_annotations annotations for is_nan(...) +@overload +def is_nan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def is_nan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def is_nan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def is_nan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def is_nan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def is_nan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def is_nan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for is_nan(...) + +def is_non_decreasing(x, name=...) -> Any: ... +def is_strictly_increasing(x, name=...) -> Any: ... +def l2_normalize(x, axis=..., epsilon=..., name=..., dim=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for lbeta(...) +@overload +def lbeta(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def lbeta(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def lbeta(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def lbeta(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def lbeta(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def lbeta(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def lbeta(x, name=...) -> Any: ... +# END: tensor_annotations annotations for lbeta(...) + +def less(x, y, name=...) -> Any: ... +def less_equal(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for lgamma(...) +@overload +def lgamma(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def lgamma(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def lgamma(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def lgamma(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def lgamma(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def lgamma(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def lgamma(x, name=...) -> Any: ... +# END: tensor_annotations annotations for lgamma(...) + + +# BEGIN: tensor_annotations annotations for log(...) +@overload +def log(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def log(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def log(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def log(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def log(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def log(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def log(x, name=...) -> Any: ... +# END: tensor_annotations annotations for log(...) + + +# BEGIN: tensor_annotations annotations for log1p(...) +@overload +def log1p(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def log1p(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def log1p(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def log1p(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def log1p(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def log1p(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def log1p(x, name=...) -> Any: ... +# END: tensor_annotations annotations for log1p(...) + + +# BEGIN: tensor_annotations annotations for log_sigmoid(...) +@overload +def log_sigmoid(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def log_sigmoid(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def log_sigmoid(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def log_sigmoid(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def log_sigmoid(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def log_sigmoid(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def log_sigmoid(x, name=...) -> Any: ... +# END: tensor_annotations annotations for log_sigmoid(...) + +def log_softmax(logits, axis=..., name=...) -> Any: ... +def logical_and(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for logical_not(...) +@overload +def logical_not(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def logical_not(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def logical_not(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def logical_not(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def logical_not(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def logical_not(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def logical_not(x, name=...) -> Any: ... +# END: tensor_annotations annotations for logical_not(...) + +def logical_or(x, y, name=...) -> Any: ... +def logical_xor(x, y, name=...) -> Any: ... +def maximum(x, y, name=...) -> Any: ... +def minimum(x, y, name=...) -> Any: ... +def mod(x, y, name=...) -> Any: ... +def multiply(x, y, name=...) -> Any: ... +def multiply_no_nan(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for ndtri(...) +@overload +def ndtri(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def ndtri(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def ndtri(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def ndtri(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def ndtri(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def ndtri(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def ndtri(x, name=...) -> Any: ... +# END: tensor_annotations annotations for ndtri(...) + + +# BEGIN: tensor_annotations annotations for negative(...) +@overload +def negative(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def negative(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def negative(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def negative(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def negative(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def negative(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def negative(x, name=...) -> Any: ... +# END: tensor_annotations annotations for negative(...) + +def nextafter(x1, x2, name=...) -> Any: ... +def not_equal(x, y, name=...) -> Any: ... +def polygamma(a, x, name=...) -> Any: ... +def polyval(coeffs, x, name=...) -> Any: ... +def pow(x, y, name=...) -> Any: ... +def real(input, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for reciprocal(...) +@overload +def reciprocal(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def reciprocal(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reciprocal(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reciprocal(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reciprocal(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reciprocal(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def reciprocal(x, name=...) -> Any: ... +# END: tensor_annotations annotations for reciprocal(...) + + +# BEGIN: tensor_annotations annotations for reciprocal_no_nan(...) +@overload +def reciprocal_no_nan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def reciprocal_no_nan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def reciprocal_no_nan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def reciprocal_no_nan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def reciprocal_no_nan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def reciprocal_no_nan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def reciprocal_no_nan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for reciprocal_no_nan(...) + +def reduce_all(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_any(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_euclidean_norm(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_logsumexp(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_max(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_mean(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_min(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_prod(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_std(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_sum(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... +def reduce_variance(input_tensor, axis=..., keepdims=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for rint(...) +@overload +def rint(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def rint(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def rint(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def rint(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def rint(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def rint(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def rint(x, name=...) -> Any: ... +# END: tensor_annotations annotations for rint(...) + + +# BEGIN: tensor_annotations annotations for round(...) +@overload +def round(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def round(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def round(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def round(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def round(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def round(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def round(x, name=...) -> Any: ... +# END: tensor_annotations annotations for round(...) + + +# BEGIN: tensor_annotations annotations for rsqrt(...) +@overload +def rsqrt(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def rsqrt(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def rsqrt(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def rsqrt(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def rsqrt(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def rsqrt(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def rsqrt(x, name=...) -> Any: ... +# END: tensor_annotations annotations for rsqrt(...) + +def scalar_mul(scalar, x, name=...) -> Any: ... +def segment_max(data, segment_ids, name=...) -> Any: ... +def segment_mean(data, segment_ids, name=...) -> Any: ... +def segment_min(data, segment_ids, name=...) -> Any: ... +def segment_prod(data, segment_ids, name=...) -> Any: ... +def segment_sum(data, segment_ids, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for sigmoid(...) +@overload +def sigmoid(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sigmoid(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sigmoid(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sigmoid(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sigmoid(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sigmoid(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sigmoid(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sigmoid(...) + + +# BEGIN: tensor_annotations annotations for sign(...) +@overload +def sign(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sign(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sign(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sign(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sign(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sign(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sign(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sign(...) + + +# BEGIN: tensor_annotations annotations for sin(...) +@overload +def sin(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sin(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sin(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sin(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sin(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sin(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sin(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sin(...) + + +# BEGIN: tensor_annotations annotations for sinh(...) +@overload +def sinh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sinh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sinh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sinh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sinh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sinh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sinh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sinh(...) + +def sobol_sample(dim, num_results, skip=..., dtype=..., name=...) -> Any: ... +def softmax(logits, axis=..., name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for softplus(...) +@overload +def softplus(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def softplus(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def softplus(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def softplus(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def softplus(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def softplus(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def softplus(x, name=...) -> Any: ... +# END: tensor_annotations annotations for softplus(...) + + +# BEGIN: tensor_annotations annotations for softsign(...) +@overload +def softsign(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def softsign(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def softsign(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def softsign(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def softsign(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def softsign(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def softsign(x, name=...) -> Any: ... +# END: tensor_annotations annotations for softsign(...) + + +# BEGIN: tensor_annotations annotations for sqrt(...) +@overload +def sqrt(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def sqrt(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def sqrt(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def sqrt(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def sqrt(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def sqrt(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def sqrt(x, name=...) -> Any: ... +# END: tensor_annotations annotations for sqrt(...) + + +# BEGIN: tensor_annotations annotations for square(...) +@overload +def square(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def square(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def square(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def square(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def square(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def square(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def square(x, name=...) -> Any: ... +# END: tensor_annotations annotations for square(...) + +def squared_difference(x, y, name=...) -> Any: ... +def subtract(x, y, name=...) -> Any: ... + +# BEGIN: tensor_annotations annotations for tan(...) +@overload +def tan(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def tan(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def tan(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def tan(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def tan(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def tan(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def tan(x, name=...) -> Any: ... +# END: tensor_annotations annotations for tan(...) + + +# BEGIN: tensor_annotations annotations for tanh(...) +@overload +def tanh(x: Tensor0[DT], name=...) -> Tensor0[DT]: ... + +@overload +def tanh(x: Tensor1[DT, A1], name=...) -> Tensor1[DT, A1]: ... + +@overload +def tanh(x: Tensor2[DT, A1, A2], name=...) -> Tensor2[DT, A1, A2]: ... + +@overload +def tanh(x: Tensor3[DT, A1, A2, A3], name=...) -> Tensor3[DT, A1, A2, A3]: ... + +@overload +def tanh(x: Tensor4[DT, A1, A2, A3, A4], name=...) -> Tensor4[DT, A1, A2, A3, A4]: ... + +@overload +def tanh(x: Tensor5[DT, A1, A2, A3, A4, A5], name=...) -> Tensor5[DT, A1, A2, A3, A4, A5]: ... + +@overload +def tanh(x, name=...) -> Any: ... +# END: tensor_annotations annotations for tanh(...) + +def top_k(input, k=..., sorted=..., name=...) -> Any: ... +def truediv(x, y, name=...) -> Any: ... +def unsorted_segment_max(data, segment_ids, num_segments, name=...) -> Any: ... +def unsorted_segment_mean(data, segment_ids, num_segments, name=...) -> Any: ... +def unsorted_segment_min(data, segment_ids, num_segments, name=...) -> Any: ... +def unsorted_segment_prod(data, segment_ids, num_segments, name=...) -> Any: ... +def unsorted_segment_sqrt_n(data, segment_ids, num_segments, name=...) -> Any: ... +def unsorted_segment_sum(data, segment_ids, num_segments, name=...) -> Any: ... +def xdivy(x, y, name=...) -> Any: ... +def xlog1py(x, y, name=...) -> Any: ... +def xlogy(x, y, name=...) -> Any: ... +def zero_fraction(value, name=...) -> Any: ... +def zeta(x, q, name=...) -> Any: ... \ No newline at end of file diff --git a/tensorflow-stubs/py.typed b/tensorflow-stubs/py.typed new file mode 100644 index 0000000..b648ac9 --- /dev/null +++ b/tensorflow-stubs/py.typed @@ -0,0 +1 @@ +partial diff --git a/tensorflow-stubs/python/__init__.pyi b/tensorflow-stubs/python/__init__.pyi new file mode 100644 index 0000000..b6aa304 --- /dev/null +++ b/tensorflow-stubs/python/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +pywrap_tensorflow: Any diff --git a/tensorflow-stubs/python/client/__init__.pyi b/tensorflow-stubs/python/client/__init__.pyi new file mode 100644 index 0000000..b6aa304 --- /dev/null +++ b/tensorflow-stubs/python/client/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +pywrap_tensorflow: Any diff --git a/tensorflow-stubs/python/ops/__init__.pyi b/tensorflow-stubs/python/ops/__init__.pyi new file mode 100644 index 0000000..c9f5daa --- /dev/null +++ b/tensorflow-stubs/python/ops/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +math_ops: Any diff --git a/tensorflow-stubs/python/util/__init__.pyi b/tensorflow-stubs/python/util/__init__.pyi new file mode 100644 index 0000000..434cfa5 --- /dev/null +++ b/tensorflow-stubs/python/util/__init__.pyi @@ -0,0 +1,3 @@ +from typing import Any + +compat = Any diff --git a/tensorflow-stubs/train/__init__.pyi b/tensorflow-stubs/train/__init__.pyi new file mode 100644 index 0000000..ad767a3 --- /dev/null +++ b/tensorflow-stubs/train/__init__.pyi @@ -0,0 +1,10 @@ +from typing import Any + +summary_iterator: Any +AdamOptimizer: Any +Coordinator: Any +ExponentialMovingAverage: Any +MomentumOptimizer: Any +RMSPropOptimizer: Any +QueueRunner: Any +TrackableView: Any