diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index d65867642887..4dd5ab91477a 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -57,7 +57,7 @@ jobs: run: | pip install -r requirements.txt --progress-bar off --upgrade if [ "${{ matrix.nnx_enabled }}" == "true" ]; then - pip install --upgrade git+https://github.com/google/flax.git + pip install --upgrade flax>=0.11.1 fi pip uninstall -y keras keras-nightly pip install -e "." --progress-bar off --upgrade @@ -147,4 +147,4 @@ jobs: pip uninstall -y keras keras-nightly pip install -e "." --progress-bar off --upgrade - name: Run pre-commit - run: pre-commit run --all-files --hook-stage manual + run: pre-commit run --all-files --hook-stage manual \ No newline at end of file diff --git a/.github/workflows/docker-socket-mount-test.yml b/.github/workflows/docker-socket-mount-test.yml new file mode 100644 index 000000000000..18c09f231c77 --- /dev/null +++ b/.github/workflows/docker-socket-mount-test.yml @@ -0,0 +1,24 @@ +name: Test Docker Socket Mount + +on: + push: + branches: [ master ] + pull_request: + +jobs: + socket-mount-test: + name: Docker Socket Mount Test + runs-on: linux-x86-ct6e-44-1tpu + + # Use a minimal public container. The key is the 'options' block. + container: + image: ubuntu:latest + options: -v /var/run/docker.sock:/var/run/docker.sock + + steps: + - name: Check if docker.sock is mounted + run: | + echo "Attempting to list the Docker socket inside the container..." + ls -l /var/run/docker.sock + echo "If the line above shows the file details, the mount was successful." + diff --git a/.github/workflows/find_sa.yml b/.github/workflows/find_sa.yml new file mode 100644 index 000000000000..76daf4549014 --- /dev/null +++ b/.github/workflows/find_sa.yml @@ -0,0 +1,31 @@ +name: Find Runner Service Account + +# Trigger on push to master, pull requests, or new releases +on: + push: + branches: [ master ] + pull_request: + release: + types: [created] + +jobs: + discover_service_account: + name: Discover Service Account + # The runner name is now hardcoded since we removed the manual input + runs-on: linux-x86-ct6e-44-1tpu-nxgm7-runner-vb87c + + # Add a container block to satisfy the runner's security policy. + # We use a standard Google Cloud SDK image which has gcloud pre-installed. + container: + image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim + # Using host networking makes it easier for the container to access + # the host VM's metadata server to find the service account. + options: --network host + + steps: + - name: Print the configured GCP Service Account + run: | + echo "Querying the GCP metadata server from within a container..." + echo "The active account shown below is the one used by the runner's host VM." + gcloud auth list + diff --git a/.github/workflows/tpu-tests.yml b/.github/workflows/tpu-tests.yml new file mode 100644 index 000000000000..74c434928454 --- /dev/null +++ b/.github/workflows/tpu-tests.yml @@ -0,0 +1,103 @@ +# name: TPU Tests + +# on: +# push: +# branches: [ master ] +# pull_request: +# release: +# types: [created] + +# permissions: +# contents: read + +# jobs: +# test-on-tpu-runner: +# name: Test on TPU Runner +# runs-on: linux-x86-ct6e-44-1tpu + +# # STAGE 1: Use a public Google Cloud SDK image for the main job container. +# # This satisfies the runner's "container required" rule without needing prior authentication. +# container: +# image: gcr.io/google.com/cloudsdktool/cloud-sdk:slim +# # Mount the host's Docker socket into this container. This allows steps inside +# # to use the host's Docker daemon, which is critical. +# # Privileged and network host are needed for the final test container to access TPU hardware. +# options: --privileged --network host -v /var/run/docker.sock:/var/run/docker.sock + +# steps: +# - name: Authenticate to Google Cloud +# uses: google-github-actions/auth@v2 +# with: +# # This authenticates the environment inside the gcloud-sdk container. +# credentials_json: ${{ secrets.GCP_CREDENTIALS }} + +# - name: Checkout Repository +# uses: actions/checkout@v4 + +# - name: Run Tests Inside Pre-Built Container +# # STAGE 2: Now that we are authenticated, we can use the Docker CLI +# # (talking to the host's daemon via the mounted socket) to run our private container. +# run: | +# echo "Pulling the private test container from GAR..." +# docker pull us-central1-docker.pkg.dev/gtech-rmi-dev/keras-docker-images/keras-jax-tpu-amd64:latest + +# echo "Running the test container..." +# docker run --rm --privileged --network host \ +# -v "${{ github.workspace }}":"/github/workspace" \ +# --workdir "/github/workspace" \ +# us-central1-docker.pkg.dev/gtech-rmi-dev/keras-docker-images/keras-jax-tpu-amd64:latest \ +# bash -c ' +# echo "Successfully running inside the custom container from GAR!" +# echo "Current working directory:" +# pwd +# echo "Contents of current directory:" +# ls -la +# echo "Verifying JAX installation..." +# python3 -c "import jax; print(f\"JAX backend: {jax.default_backend()}\"); print(f\"JAX devices: {jax.devices()}\")" +# ' + + + +name: TPU Tests + +on: + push: + branches: [ master ] + pull_request: + release: + types: [created] + +# Only basic permissions are needed now. +permissions: + contents: read + +jobs: + test-in-container: + name: Test in Custom Container + runs-on: linux-x86-ct6e-44-1tpu + + # With the correct IAM policies applied to the runner's underlying service accounts, + # the runner can now pull this private image directly without any in-workflow auth. + container: + image: us-central1-docker.pkg.dev/gtech-rmi-dev/keras-docker-images/keras-jax-tpu-amd64:latest + # Options are still needed for the container to access the host's TPU hardware. + options: --privileged --network host + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + # This makes your code available inside the container's workspace. + + - name: Run Verification and Tests + run: | + echo "Successfully running inside the private container from GAR!" + echo "Verifying JAX installation..." + python3 -c "import jax; print(f'JAX backend: {jax.default_backend()}'); print(f'JAX devices: {jax.devices()}')" + pip install grain + pytest keras --ignore keras/src/applications \ + --ignore keras/src/layers/merging/merging_test.py \ + --ignore keras/src/trainers/data_adapters/py_dataset_adapter_test.py \ + --ignore keras/src/backend/jax/distribution_lib_test.py \ + --ignore keras/src/distribution/distribution_lib_test.py \ + --cov=keras \ + --cov-config=pyproject.toml diff --git a/.github/workflows/tpu/build.sh b/.github/workflows/tpu/build.sh new file mode 100644 index 000000000000..f9bad68c19de --- /dev/null +++ b/.github/workflows/tpu/build.sh @@ -0,0 +1,74 @@ +set -e +set -x + +cd "${KOKORO_ROOT}/" + +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 + +PYTHON_BINARY="/usr/bin/python3.10" + +"${PYTHON_BINARY}" -m venv venv +source venv/bin/activate +# Check the python version +python --version +python3 --version + +cd "src/github/keras" +pip install -U pip setuptools +# psutil is used by background log reader +pip install -U psutil + +if [ "$KERAS_BACKEND" == "tensorflow" ] +then + echo "TensorFlow backend detected." + pip install -r requirements-tensorflow-tpu.txt --progress-bar off --timeout 1000 + pip uninstall -y keras keras-nightly + echo "Check that TensorFlow uses TPU" + python3 -c 'import tensorflow as tf;print(tf.__version__);print(tf.config.list_physical_devices("TPU"))' + # Raise error if GPU is not detected. + python3 -c 'import tensorflow as tf;assert len(tf.config.list_physical_devices("TPU")) > 0' + + # TODO: keras/layers/merging/merging_test.py::MergingLayersTest::test_sparse_dot_2d Fatal Python error: Aborted + pytest keras --ignore keras/src/applications \ + --ignore keras/src/layers/merging/merging_test.py \ + --cov=keras \ + --cov-config=pyproject.toml +fi + +if [ "$KERAS_BACKEND" == "jax" ] +then + echo "JAX backend detected." + pip install -r requirements-jax-cuda.txt --progress-bar off --timeout 1000 + pip uninstall -y keras keras-nightly + python3 -c 'import jax;print(jax.__version__);print(jax.default_backend())' + # Raise error if GPU is not detected. + python3 -c 'import jax;assert jax.default_backend().lower() == "gpu"' + + # TODO: keras/layers/merging/merging_test.py::MergingLayersTest::test_sparse_dot_2d Fatal Python error: Aborted + # TODO: keras/trainers/data_adapters/py_dataset_adapter_test.py::PyDatasetAdapterTest::test_basic_flow0 Fatal Python error: Aborted + # keras/backend/jax/distribution_lib_test.py is configured for CPU test for now. + pytest keras --ignore keras/src/applications \ + --ignore keras/src/layers/merging/merging_test.py \ + --ignore keras/src/trainers/data_adapters/py_dataset_adapter_test.py \ + --ignore keras/src/backend/jax/distribution_lib_test.py \ + --ignore keras/src/distribution/distribution_lib_test.py \ + --cov=keras \ + --cov-config=pyproject.toml + + pytest keras/src/distribution/distribution_lib_test.py --cov=keras --cov-config=pyproject.toml +fi + +if [ "$KERAS_BACKEND" == "torch" ] +then + echo "PyTorch backend detected." + pip install -r requirements-torch-cuda.txt --progress-bar off --timeout 1000 + pip uninstall -y keras keras-nightly + python3 -c 'import torch;print(torch.__version__);print(torch.cuda.is_available())' + # Raise error if GPU is not detected. + python3 -c 'import torch;assert torch.cuda.is_available()' + + pytest keras --ignore keras/src/applications \ + --cov=keras \ + --cov-config=pyproject.toml + +fi diff --git a/.github/workflows/tpu/tensorflow/continuous.cfg b/.github/workflows/tpu/tensorflow/continuous.cfg new file mode 100644 index 000000000000..e535b0608202 --- /dev/null +++ b/.github/workflows/tpu/tensorflow/continuous.cfg @@ -0,0 +1,16 @@ +build_file: "keras/.github/workflows/tpu/build.sh" + +action { + define_artifacts { + regex: "**/sponge_log.log" + regex: "**/sponge_log.xml" + } +} + +env_vars: { + key: "KERAS_BACKEND" + value: "tensorflow" +} + +# Set timeout to 60 mins from default 180 mins +timeout_mins: 60 diff --git a/.github/workflows/tpu/tensorflow/presubmit.cfg b/.github/workflows/tpu/tensorflow/presubmit.cfg new file mode 100644 index 000000000000..e535b0608202 --- /dev/null +++ b/.github/workflows/tpu/tensorflow/presubmit.cfg @@ -0,0 +1,16 @@ +build_file: "keras/.github/workflows/tpu/build.sh" + +action { + define_artifacts { + regex: "**/sponge_log.log" + regex: "**/sponge_log.xml" + } +} + +env_vars: { + key: "KERAS_BACKEND" + value: "tensorflow" +} + +# Set timeout to 60 mins from default 180 mins +timeout_mins: 60 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000000..324f3798742f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM --platform=linux/amd64 python:3.10-slim + +ENV KERAS_HOME=/github/workspace/.github/workflows/config/jax \ + KERAS_BACKEND=jax + +RUN apt-get update && apt-get install -y --no-install-recommends \ + git \ + sudo \ + && rm -rf /var/lib/apt/lists/* + +# Copy the entire codebase into the container +COPY . /github/workspace +WORKDIR /github/workspace + +# Create and activate venv, install pip/setuptools/psutil, then run tests +# RUN cd ./keras/src/github/keras && \ +RUN pip install --no-cache-dir -U pip setuptools && \ + pip install --no-cache-dir -U psutil && \ + pip install --no-cache-dir -r requirements-jax-tpu.txt && \ + pip uninstall -y keras keras-nightly + # python3 -c 'import jax;print(jax.__version__);print(jax.default_backend())' && \ + # python3 -c 'import jax;assert jax.default_backend().lower() == "tpu"' && \ + # pytest keras --ignore keras/src/applications \ + # --ignore keras/src/layers/merging/merging_test.py \ + # --cov=keras \ + # --cov-config=pyproject.toml + +CMD ["/bin/bash"] diff --git a/conftest.py b/conftest.py index 0ade560a1bdf..43682b9eed77 100644 --- a/conftest.py +++ b/conftest.py @@ -22,6 +22,9 @@ def pytest_configure(config): "markers", "requires_trainable_backend: mark test for trainable backend only", ) + config.addinivalue_line( + "markers", "requires_tpu: mark test to run only on TPU" + ) def pytest_collection_modifyitems(config, items): @@ -59,3 +62,70 @@ def pytest_collection_modifyitems(config, items): def skip_if_backend(given_backend, reason): return pytest.mark.skipif(backend() == given_backend, reason=reason) + + + + +def _cleanup_tpu_state(): + import tensorflow as tf + + try: + tf.config.experimental_disconnect_from_cluster() + except: + pass + + try: + tf.config.experimental_reset_memory_stats("TPU_SYSTEM") + except: + pass + + +@pytest.fixture(scope="session") +def tpu_strategy_fixture(): + import time + + import tensorflow as tf + + os.environ["TPU_NAME"] = "harshith-tf-4" + os.environ["JAX_PLATFORMS"] = "" + max_retries = int(os.environ.get("TPU_MAX_RETRIES", "3")) + base_delay = float(os.environ.get("TPU_BASE_DELAY", "2.0")) + tpu_available = False + strategy = None + + for attempt in range(max_retries): + try: + print(f"TPU initialization attempt {attempt + 1}/{max_retries}") + _cleanup_tpu_state() + resolver = tf.distribute.cluster_resolver.TPUClusterResolver() + tf.config.experimental_connect_to_cluster(resolver) + tf.tpu.experimental.initialize_tpu_system(resolver) + strategy = tf.distribute.TPUStrategy(resolver) + tpu_available = True + print("✓ TPU initialization successful!") + break + except (ValueError, RuntimeError, Exception) as e: + print(f"✗ TPU initialization attempt {attempt + 1} failed: {e}") + if attempt < max_retries - 1: + delay = base_delay * (2**attempt) + (attempt * 0.5) + print(f"Retrying in {delay:.1f} seconds...") + time.sleep(delay) + _cleanup_tpu_state() + else: + print("All TPU initialization attempts failed.") + + if not tpu_available: + pytest.skip("TPU not available") + + yield strategy + + # Teardown + _cleanup_tpu_state() + + +@pytest.fixture(autouse=True) +def tpu(request): + marker = request.node.get_closest_marker("requires_tpu") + if marker: + strategy = request.getfixturevalue("tpu_strategy_fixture") + request.node.cls.tpu_strategy = strategy diff --git a/dtypes_test_tpu.log b/dtypes_test_tpu.log new file mode 100644 index 000000000000..88073fc51de1 --- /dev/null +++ b/dtypes_test_tpu.log @@ -0,0 +1,547 @@ +(env) kharshith@t1v-n-e3deefd5-w-0:~/keras/keras/src/backend/common$ pytest -s dtypes_test_tpu.py +2025-07-02 13:24:39.095603: I tensorflow/core/tpu/tpu_api_dlsym_initializer.cc:95] Opening library: /home/kharshith/.local/lib/python3.10/site-packages/tensorflow/python/platform/../../libtensorflow_cc.so.2 +2025-07-02 13:24:39.095727: I tensorflow/core/tpu/tpu_api_dlsym_initializer.cc:121] Libtpu path is: /home/kharshith/.local/lib/python3.10/site-packages/libtpu/libtpu.so +2025-07-02 13:24:39.135321: I tensorflow/core/tpu/tpu_api_dlsym_initializer.cc:138] FindAndLoadTpuLibrary failed with ABORTED: The TPU is already in use by another process probably owned by another user. Run "$ sudo lsof -w /dev/vfio/0" to figure out which process is using the TPU. If you still get this message, run "$ sudo rm /tmp/libtpu_lockfile".. This is expected if TPU is not used. +2025-07-02 13:24:39.139591: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. +To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. +================================================================================= test session starts ================================================================================== +platform linux -- Python 3.10.12, pytest-8.4.1, pluggy-1.6.0 -- /home/kharshith/env/bin/python +cachedir: .pytest_cache +rootdir: /home/kharshith/keras +configfile: pyproject.toml +plugins: cov-6.2.1 +collected 512 items + +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_bfloat16 TPU initialization attempt 1/3 +2025-07-02 13:24:42.738075: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:47] Platform manager status: NOT_FOUND: Could not find registered platform with name: "TPU". Available platform names are: Host +2025-07-02 13:24:42.738114: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:82] No TPU platform registered. Waiting 1 second and trying again... (4 tries left) Platform manager status: OK +2025-07-02 13:24:43.738193: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:47] Platform manager status: NOT_FOUND: Could not find registered platform with name: "TPU". Available platform names are: Host +2025-07-02 13:24:43.738209: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:82] No TPU platform registered. Waiting 1 second and trying again... (3 tries left) Platform manager status: OK +2025-07-02 13:24:44.738285: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:47] Platform manager status: NOT_FOUND: Could not find registered platform with name: "TPU". Available platform names are: Host +2025-07-02 13:24:44.738300: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:82] No TPU platform registered. Waiting 1 second and trying again... (2 tries left) Platform manager status: OK +2025-07-02 13:24:45.738351: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:47] Platform manager status: NOT_FOUND: Could not find registered platform with name: "TPU". Available platform names are: Host +2025-07-02 13:24:45.738365: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:82] No TPU platform registered. Waiting 1 second and trying again... (1 tries left) Platform manager status: OK +2025-07-02 13:24:46.738440: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:47] Platform manager status: NOT_FOUND: Could not find registered platform with name: "TPU". Available platform names are: Host +2025-07-02 13:24:46.738456: I external/local_xla/xla/stream_executor/tpu/tpu_platform_interface.cc:78] No TPU platform found. Platform manager status: OK +WARNING: All log messages before absl::InitializeLog() is called are written to STDERR +I0000 00:00:1751462687.288045 16166 grpc_server_lib.cc:463] Started server with target: grpc://localhost:48934 +✓ TPU initialization successful! +TPU devices found: [LogicalDevice(name='/job:worker/replica:0/task:0/device:TPU_SYSTEM:0', device_type='TPU_SYSTEM')] +Number of TPU cores: 4 +WARNING:2025-07-02 13:25:03,730:jax._src.xla_bridge:798: A Google TPU may be present on this machine, but either a TPU-enabled jaxlib or libtpu is not installed. Falling back to cpu. +PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bfloat16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_bool_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex128_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_complex64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_float64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_int8_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_none_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bfloat16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_bool W0000 00:00:1751462704.562413 16546 remote_tensor_handle_data.cc:80] Unable to destroy remote tensor handles. If you are running a tf.function, it usually indicates some op in the graph gets an error: Value for attr 'T' of bool is not in the list of allowed values: bfloat16, half, float, double, uint8, uint16, uint32, uint64, int8, int16, int32, int64, complex64, complex128 + ; NodeDef: {{node AddV2}}; Op z:T; attr=T:type,allowed=[DT_BFLOAT16, DT_HALF, DT_FLOAT, DT_DOUBLE, DT_UINT8, DT_UINT16, DT_UINT32, DT_UINT64, DT_INT8, DT_INT16, DT_INT32, DT_INT64, DT_COMPLEX64, DT_COMPLEX128]; is_commutative=true; is_aggregate=true> +PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_bool_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex128_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_complex64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_float64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_int8_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_none_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_on_tpu_uint8_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint16_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint32_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint64_uint8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_bfloat16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_bool PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_complex128 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_complex64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_float16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_float32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_float64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_int16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_int32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_int64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_int8 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_none PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_uint16 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_uint32 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_uint64 PASSED +dtypes_test_tpu.py::DtypesTPUTest::test_result_type_with_tensor_uint8_uint8 PASSED + +================================================================================= 512 passed in 23.21s ================================================================================= \ No newline at end of file diff --git a/keras/src/backend/common/dtypes_test.py b/keras/src/backend/common/dtypes_test.py index 7750dcecdd11..0f1ca48b6413 100644 --- a/keras/src/backend/common/dtypes_test.py +++ b/keras/src/backend/common/dtypes_test.py @@ -1,3 +1,5 @@ +import tensorflow as tf # New import +import os from unittest.mock import patch from absl.testing import parameterized @@ -8,19 +10,50 @@ from keras.src.testing import test_case from keras.src.testing.test_utils import named_product +# Ensure the backend is set to TensorFlow if you intend to use TPU. +# This environment variable should ideally be set before Python starts for the process. + +os.environ["KERAS_BACKEND"] = "tensorflow" # Moved to test_case module in Keras + +# Set TPU_NAME if connecting to a specific TPU worker +os.environ["TPU_NAME"] = "harshith-tf-4" +# JAX_PLATFORMS is typically for JAX-specific environments, not directly for TF/Keras TPU. +os.environ["JAX_PLATFORMS"] = "" + + +# --- TPU-specific Dtype Definitions --- +# These must be defined at the module level for absl.testing.parameterized +# to find them when the class is being defined. + +TPU_UNSUPPORTED_DTYPES = [ + "string", + "complex64", + "complex128", + "float8_e4m3fn", + "float8_e5m2", + "float64", # Often problematic for general ops on TPU, or leads to performance issues + "bool" # Can cause issues with type promotion/XLA on TPU in some contexts +] + +ALL_DTYPES_FOR_TPU_TESTS = [ + x for x in dtypes.ALLOWED_DTYPES if x not in TPU_UNSUPPORTED_DTYPES +] + [None] + +# --- End TPU-specific Dtype Definitions --- + class DtypesTest(test_case.TestCase): - """Test the dtype to verify that the behavior matches JAX.""" + """Test the dtype to verify that the behavior matches JAX, with optional TPU support.""" + # Original ALL_DTYPES logic (backend-dependent) remains for non-TPU tests if backend.backend() == "torch": from keras.src.backend.torch.core import to_torch_dtype - # TODO: torch doesn't support uint64. ALL_DTYPES = [] for x in dtypes.ALLOWED_DTYPES: if x not in ["string", "uint64"]: x = str(to_torch_dtype(x)).split(".")[-1] - if x not in ALL_DTYPES: # skip duplicates created by remapping + if x not in ALL_DTYPES: ALL_DTYPES.append(x) ALL_DTYPES += [None] elif backend.backend() == "openvino": @@ -29,28 +62,78 @@ class DtypesTest(test_case.TestCase): for x in dtypes.ALLOWED_DTYPES if x not in ["string", "complex64", "complex128"] ] + [None] - else: + else: # Default to TensorFlow or other backends ALL_DTYPES = [x for x in dtypes.ALLOWED_DTYPES if x != "string"] + [ None ] - # Remove float8 dtypes for the following tests + # Remove float8 dtypes for the following tests (original logic) ALL_DTYPES = [x for x in ALL_DTYPES if x not in dtypes.FLOAT8_TYPES] + # --- NEW: setUpClass for TPU initialization (no fixtures/markers) --- + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.tpu_available = False + cls.tpu_strategy = None + + # Only attempt TPU initialization if the Keras backend is TensorFlow + if backend.backend() == "tensorflow": + print("\nAttempting TPU initialization from DtypesTest.setUpClass...") + try: + # Use empty string '' for auto-detection or 'grpc://:8470' + # or your specific TPU_NAME from env var + resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='') + tf.config.experimental_connect_to_cluster(resolver) + tf.tpu.experimental.initialize_tpu_system(resolver) + cls.tpu_strategy = tf.distribute.TPUStrategy(resolver) + cls.tpu_available = True + print("✓ TPU initialization successful from DtypesTest.setUpClass!") + print(f"Number of TPU devices: {cls.tpu_strategy.num_replicas_in_sync}") + print(f"Logical TPU devices: {tf.config.list_logical_devices('TPU')}") + except Exception as e: + print(f"✗ TPU initialization failed from DtypesTest.setUpClass: {e}") + print("Falling back to CPU/GPU testing for this class.") + cls.tpu_available = False + else: + print(f"Skipping TPU initialization for backend: {backend.backend()}") + + @classmethod + def tearDownClass(cls): + # Optional: Shut down TPU system if it was initialized + if cls.tpu_available: + try: + # This can sometimes cause issues if other processes are using it, + # or if the context was already lost. Use with caution. + # tf.tpu.experimental.shutdown_tpu_system() + print("TPU system teardown (if applicable) completed.") + except Exception as e: + print(f"Error during TPU system teardown: {e}") + super().tearDownClass() + # --- END setUpClass for TPU --- + def setUp(self): + # The JAX x64 setup is for JAX backend tests, keep it. from jax.experimental import enable_x64 - self.jax_enable_x64 = enable_x64() self.jax_enable_x64.__enter__() + # Clear Keras session for each test + if backend.backend() == "tensorflow": # Only clear if TF backend is active + tf.keras.backend.clear_session() return super().setUp() def tearDown(self): + # JAX x64 teardown self.jax_enable_x64.__exit__(None, None, None) + # Clear Keras session for each test + if backend.backend() == "tensorflow": # Only clear if TF backend is active + tf.keras.backend.clear_session() return super().tearDown() @parameterized.named_parameters( named_product(dtype1=ALL_DTYPES, dtype2=[bool, int, float]) ) def test_result_type_with_python_scalar_types(self, dtype1, dtype2): + """Test dtype result_type behavior with Python scalar types (non-TPU).""" import jax.numpy as jnp out = backend.result_type(dtype1, dtype2) @@ -61,6 +144,9 @@ def test_result_type_with_python_scalar_types(self, dtype1, dtype2): named_product(dtype1=ALL_DTYPES, dtype2=ALL_DTYPES) ) def test_result_type_with_tensor(self, dtype1, dtype2): + """Test dtype result_type behavior with tensors (non-TPU).""" + # This test will run for all backends as per original logic, + # but will not explicitly use TPU. import jax.numpy as jnp x1 = ops.ones((1,), dtype=dtype1) @@ -72,9 +158,66 @@ def test_result_type_with_tensor(self, dtype1, dtype2): expected = jnp.result_type(x1_jax, x2_jax).name self.assertEqual(out, expected) + # --- NEW TPU-ENABLED TEST METHOD (no fixtures/markers) --- + @parameterized.named_parameters( + named_product(dtype1=ALL_DTYPES_FOR_TPU_TESTS, dtype2=ALL_DTYPES_FOR_TPU_TESTS) + ) + def test_result_type_with_tensor_on_tpu(self, dtype1, dtype2): + """Test dtype result_type behavior specifically on TPU with supported dtypes.""" + # Check if backend is TensorFlow and TPU is available for this class + if backend.backend() != "tensorflow": + self.skipTest("TPU tests are only applicable for TensorFlow backend.") + if not self.tpu_available: + self.skipTest("TPU not available for this test class.") + + with self.tpu_strategy.scope(): # Use the class-level strategy object + try: + x1_on_tpu = ops.ones((1,), dtype=dtype1) + x2_on_tpu = ops.ones((1,), dtype=dtype2) + + print(f"Initial (Eager Context) X1 Device : {x1_on_tpu.device}") + print(f"Initial (Eager Context) X2 Device : {x2_on_tpu.device}") + + result_eager_attempt = ops.add(x1_on_tpu, x2_on_tpu) + print(f"Initial (Eager Context) Add Result Device : {result_eager_attempt.device}") + + @tf.function + def tpu_compute(a, b): + add_result = ops.add(a, b) + return add_result + + distributed_result = self.tpu_strategy.run(tpu_compute, args=(x1_on_tpu, x2_on_tpu)) + + actual_result_dtype = None + if isinstance(distributed_result, tf.distribute.DistributedValues): + replica_result = distributed_result.values[0] + print(f"Device of result from TPU replica 0: {replica_result.device}") + self.assertIn("TPU", replica_result.device) + actual_result_dtype = replica_result.dtype + else: + print(f"Device of direct distributed result: {distributed_result.device}") + self.assertIn("TPU", distributed_result.device) + actual_result_dtype = distributed_result.dtype + + expected_keras_result_type = backend.result_type(x1_on_tpu.dtype, x2_on_tpu.dtype) + + print(f"Test case: dtype1={dtype1}, dtype2={dtype2}") + print(f"Keras backend.result_type: {expected_keras_result_type}") + print(f"Actual result dtype from TPU operation: {actual_result_dtype}") + + self.assertEqual(actual_result_dtype, expected_keras_result_type) + + except Exception as e: + if "context_id" in str(e).lower() or "socket closed" in str(e).lower(): + self.skipTest(f"TPU context issue or socket closed: {e}") + else: + raise + # --- END NEW TPU-ENABLED TEST METHOD --- + + + # Original tests below remain unchanged def test_result_type_with_none(self): import jax.numpy as jnp - self.assertEqual(backend.result_type(None), jnp.result_type(None).name) def test_result_type_empty_list(self): @@ -210,7 +353,6 @@ def test_resolve_weak_type_float(self): ) def test_least_upper_bound_ensure_order_independence(self): - # Test to ensure _least_upper_bound is order-independent. result1 = dtypes._least_upper_bound("float32", "int32") result2 = dtypes._least_upper_bound("int32", "float32") self.assertEqual(result1, result2) diff --git a/list_tests.sh b/list_tests.sh new file mode 100644 index 000000000000..e8093647b8c4 --- /dev/null +++ b/list_tests.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +pytest --collect-only -q | grep "//' | sort -u | xargs -I {} find . -name "{}" -print diff --git a/requirements-common-old.txt b/requirements-common-old.txt new file mode 100644 index 000000000000..7edc40c97a1a --- /dev/null +++ b/requirements-common-old.txt @@ -0,0 +1,26 @@ +pre-commit +namex>=0.0.8 +ruff +pytest +numpy +scipy +scikit-learn +pillow +pandas +absl-py +requests +h5py +ml-dtypes +protobuf +tensorboard-plugin-profile +rich +build +optree +pytest-cov +packaging +# for tree_test.py +dm_tree +coverage!=7.6.5 # 7.6.5 breaks CI +# for onnx_test.py +onnxruntime +openvino diff --git a/requirements-common.txt b/requirements-common.txt index d1f3616ab07a..cd5b52def930 100644 --- a/requirements-common.txt +++ b/requirements-common.txt @@ -1,23 +1,23 @@ pre-commit -namex>=0.0.8 +#namex>=0.0.8 ruff pytest -numpy +#numpy scipy scikit-learn pillow pandas -absl-py -requests -h5py -ml-dtypes -protobuf +#absl-py +#requests +#h5py +#ml-dtypes +#protobuf tensorboard-plugin-profile -rich +#rich build -optree +#optree pytest-cov -packaging +#packaging # for tree_test.py dm_tree coverage diff --git a/requirements-jax-tpu.txt b/requirements-jax-tpu.txt new file mode 100644 index 000000000000..4febbe8e8aab --- /dev/null +++ b/requirements-jax-tpu.txt @@ -0,0 +1,14 @@ +# Tensorflow cpu-only version (needed for testing). +tensorflow-cpu~=2.18.1 +tf2onnx + +# Torch cpu-only version (needed for testing). +--extra-index-url https://download.pytorch.org/whl/cpu +torch==2.6.0 + +# Jax with cuda support. +--find-links https://storage.googleapis.com/jax-releases/libtpu_releases.html +jax[tpu] +flax + +-r requirements-common.txt diff --git a/requirements-tensorflow-tpu.txt b/requirements-tensorflow-tpu.txt new file mode 100644 index 000000000000..d2bec8f5c2e4 --- /dev/null +++ b/requirements-tensorflow-tpu.txt @@ -0,0 +1,14 @@ +#tensorflow==2.18.0 +#--find-links https://storage.googleapis.com/libtpu-tf-releases/index.html +#tensorflow-tpu==2.18.0 + +#tf2onnx + +# Torch cpu-only version (needed for testing). +--extra-index-url https://download.pytorch.org/whl/cpu +torch==2.6.0 + +# Jax cpu-only version (needed for testing). +jax + +-r requirements-common.txt diff --git a/test_files.txt b/test_files.txt new file mode 100644 index 000000000000..cdeb78958b56 --- /dev/null +++ b/test_files.txt @@ -0,0 +1,244 @@ +/Users/kharshith/keras/keras/src/backend/common/dtypes_test.py +/Users/kharshith/keras/keras/src/ops/math_test.py +/Users/kharshith/keras/keras/src/trainers/trainer_test.py +/Users/kharshith/keras/keras/src/trainers/epoch_iterator_test.py +/Users/kharshith/keras/keras/src/backend/tensorflow/distribute_test.py +/Users/kharshith/keras/keras/src/wrappers/sklearn_test.py +/Users/kharshith/keras/keras/src/utils/tracking_test.py +/Users/kharshith/keras/keras/src/utils/torch_utils_test.py +/Users/kharshith/keras/keras/src/utils/timeseries_dataset_utils_test.py +/Users/kharshith/keras/keras/src/utils/text_dataset_utils_test.py +/Users/kharshith/keras/keras/src/utils/summary_utils_test.py +/Users/kharshith/keras/keras/src/utils/sequence_utils_test.py +/Users/kharshith/keras/keras/src/utils/rng_utils_test.py +/Users/kharshith/keras/keras/src/utils/python_utils_test.py +/Users/kharshith/keras/keras/src/utils/numerical_utils_test.py +/Users/kharshith/keras/keras/src/utils/naming_test.py +/Users/kharshith/keras/keras/src/utils/jax_layer_test.py +/Users/kharshith/keras/keras/src/utils/io_utils_test.py +/Users/kharshith/keras/keras/src/utils/image_dataset_utils_test.py +/Users/kharshith/keras/keras/src/utils/file_utils_test.py +/Users/kharshith/keras/keras/src/utils/dtype_utils_test.py +/Users/kharshith/keras/keras/src/utils/dataset_utils_test.py +/Users/kharshith/keras/keras/src/utils/code_stats_test.py +/Users/kharshith/keras/keras/src/utils/backend_utils_test.py +/Users/kharshith/keras/keras/src/utils/audio_dataset_utils_test.py +/Users/kharshith/keras/keras/src/tree/tree_test.py +/Users/kharshith/keras/keras/src/layers/convolutional/conv_transpose_test.py +/Users/kharshith/keras/keras/src/layers/convolutional/conv_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/torch_data_loader_adapter_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/tf_dataset_adapter_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/py_dataset_adapter_test.py +/Users/kharshith/keras/keras/src/layers/attention/multi_head_attention_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/generator_data_adapter_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/data_adapter_utils_test.py +/Users/kharshith/keras/keras/src/layers/attention/grouped_query_attention_test.py +/Users/kharshith/keras/keras/src/layers/attention/attention_test.py +/Users/kharshith/keras/keras/src/trainers/data_adapters/array_data_adapter_test.py +/Users/kharshith/keras/keras/src/layers/attention/additive_attention_test.py +/Users/kharshith/keras/keras/src/layers/activations/softmax_test.py +/Users/kharshith/keras/keras/src/trainers/compile_utils_test.py +/Users/kharshith/keras/keras/src/layers/activations/relu_test.py +/Users/kharshith/keras/keras/src/layers/activations/prelu_test.py +/Users/kharshith/keras/keras/src/testing/test_utils_test.py +/Users/kharshith/keras/keras/src/layers/activations/leaky_relu_test.py +/Users/kharshith/keras/keras/src/layers/activations/elu_test.py +/Users/kharshith/keras/keras/src/saving/serialization_lib_test.py +/Users/kharshith/keras/keras/src/layers/activations/activation_test.py +/Users/kharshith/keras/keras/src/saving/saving_lib_test.py +/Users/kharshith/keras/keras/src/initializers/random_initializers_test.py +/Users/kharshith/keras/keras/src/saving/saving_api_test.py +/Users/kharshith/keras/keras/src/initializers/constant_initializers_test.py +/Users/kharshith/keras/keras/src/saving/object_registration_test.py +/Users/kharshith/keras/keras/src/saving/file_editor_test.py +/Users/kharshith/keras/keras/src/export/tfsm_layer_test.py +/Users/kharshith/keras/keras/src/regularizers/regularizers_test.py +/Users/kharshith/keras/keras/src/export/saved_model_test.py +/Users/kharshith/keras/keras/src/random/seed_generator_test.py +/Users/kharshith/keras/keras/src/export/onnx_test.py +/Users/kharshith/keras/keras/src/random/random_test.py +/Users/kharshith/keras/keras/src/dtype_policies/dtype_policy_test.py +/Users/kharshith/keras/keras/src/quantizers/quantizers_test.py +/Users/kharshith/keras/keras/src/dtype_policies/dtype_policy_map_test.py +/Users/kharshith/keras/keras/src/optimizers/sgd_test.py +/Users/kharshith/keras/keras/src/distribution/distribution_lib_test.py +/Users/kharshith/keras/keras/src/optimizers/schedules/learning_rate_schedule_test.py +/Users/kharshith/keras/keras/src/optimizers/rmsprop_test.py +/Users/kharshith/keras/keras/src/optimizers/optimizer_test.py +/Users/kharshith/keras/keras/src/optimizers/optimizer_sparse_test.py +/Users/kharshith/keras/keras/src/optimizers/nadam_test.py +/Users/kharshith/keras/keras/src/optimizers/muon_test.py +/Users/kharshith/keras/keras/src/constraints/constraints_test.py +/Users/kharshith/keras/keras/src/optimizers/loss_scale_optimizer_test.py +/Users/kharshith/keras/keras/src/optimizers/lion_test.py +/Users/kharshith/keras/keras/src/callbacks/terminate_on_nan_test.py +/Users/kharshith/keras/keras/src/optimizers/lamb_test.py +/Users/kharshith/keras/keras/src/callbacks/tensorboard_test.py +/Users/kharshith/keras/keras/src/optimizers/ftrl_test.py +/Users/kharshith/keras/keras/src/callbacks/swap_ema_weights_test.py +/Users/kharshith/keras/keras/src/callbacks/remote_monitor_test.py +/Users/kharshith/keras/keras/src/optimizers/adamw_test.py +/Users/kharshith/keras/keras/src/callbacks/reduce_lr_on_plateau_test.py +/Users/kharshith/keras/keras/src/optimizers/adamax_test.py +/Users/kharshith/keras/keras/src/callbacks/monitor_callback_test.py +/Users/kharshith/keras/keras/src/optimizers/adam_test.py +/Users/kharshith/keras/keras/src/callbacks/model_checkpoint_test.py +/Users/kharshith/keras/keras/src/optimizers/adagrad_test.py +/Users/kharshith/keras/keras/src/callbacks/learning_rate_scheduler_test.py +/Users/kharshith/keras/keras/src/optimizers/adafactor_test.py +/Users/kharshith/keras/keras/src/callbacks/lambda_callback_test.py +/Users/kharshith/keras/keras/src/optimizers/adadelta_test.py +/Users/kharshith/keras/keras/src/callbacks/early_stopping_test.py +/Users/kharshith/keras/keras/src/ops/symbolic_arguments_test.py +/Users/kharshith/keras/keras/src/ops/ops_test.py +/Users/kharshith/keras/keras/src/callbacks/csv_logger_test.py +/Users/kharshith/keras/keras/src/ops/operation_utils_test.py +/Users/kharshith/keras/keras/src/callbacks/callback_test.py +/Users/kharshith/keras/keras/src/ops/operation_test.py +/Users/kharshith/keras/keras/src/ops/numpy_test.py +/Users/kharshith/keras/keras/src/callbacks/backup_and_restore_test.py +/Users/kharshith/keras/keras/src/ops/node_test.py +/Users/kharshith/keras/keras/src/ops/nn_test.py +/Users/kharshith/keras/keras/src/ops/linalg_test.py +/Users/kharshith/keras/keras/src/ops/image_test.py +/Users/kharshith/keras/keras/src/ops/function_test.py +/Users/kharshith/keras/keras/src/ops/einops_test.py +/Users/kharshith/keras/keras/src/ops/core_test.py +/Users/kharshith/keras/keras/src/backend/tests/device_scope_test.py +/Users/kharshith/keras/keras/src/backend/tests/compute_output_spec_test.py +/Users/kharshith/keras/keras/src/models/variable_mapping_test.py +/Users/kharshith/keras/keras/src/models/sequential_test.py +/Users/kharshith/keras/keras/src/backend/tensorflow/saved_model_test.py +/Users/kharshith/keras/keras/src/models/model_test.py +/Users/kharshith/keras/keras/src/models/functional_test.py +/Users/kharshith/keras/keras/src/backend/tensorflow/optimizer_distribute_test.py +/Users/kharshith/keras/keras/src/models/cloning_test.py +/Users/kharshith/keras/keras/src/backend/tensorflow/name_scope_test.py +/Users/kharshith/keras/keras/src/metrics/regression_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/reduction_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/probabilistic_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/metric_test.py +/Users/kharshith/keras/keras/src/metrics/iou_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/hinge_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/f_score_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/correlation_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/confusion_metrics_test.py +/Users/kharshith/keras/keras/src/metrics/accuracy_metrics_test.py +/Users/kharshith/keras/keras/src/losses/losses_test.py +/Users/kharshith/keras/keras/src/losses/loss_test.py +/Users/kharshith/keras/keras/src/legacy/saving/legacy_h5_format_test.py +/Users/kharshith/keras/keras/src/legacy/saving/json_utils_test.py +/Users/kharshith/keras/keras/src/backend/jax/distribution_lib_test.py +/Users/kharshith/keras/keras/src/layers/rnn/time_distributed_test.py +/Users/kharshith/keras/keras/src/layers/rnn/stacked_rnn_cells_test.py +/Users/kharshith/keras/keras/src/backend/common/variables_test.py +/Users/kharshith/keras/keras/src/layers/rnn/simple_rnn_test.py +/Users/kharshith/keras/keras/src/backend/common/thread_safe_test.py +/Users/kharshith/keras/keras/src/layers/rnn/rnn_test.py +/Users/kharshith/keras/keras/src/backend/common/symbolic_scope_test.py +/Users/kharshith/keras/keras/src/backend/common/stateless_scope_test.py +/Users/kharshith/keras/keras/src/layers/rnn/lstm_test.py +/Users/kharshith/keras/keras/src/backend/common/remat_test.py +/Users/kharshith/keras/keras/src/layers/rnn/gru_test.py +/Users/kharshith/keras/keras/src/backend/common/name_scope_test.py +/Users/kharshith/keras/keras/src/layers/rnn/dropout_rnn_cell_test.py +/Users/kharshith/keras/keras/src/backend/common/masking_test.py +/Users/kharshith/keras/keras/src/backend/common/keras_tensor_test.py +/Users/kharshith/keras/keras/src/layers/rnn/conv_lstm_test.py +/Users/kharshith/keras/keras/src/layers/rnn/conv_lstm3d_test.py +/Users/kharshith/keras/keras/src/backend/common/global_state_test.py +/Users/kharshith/keras/keras/src/layers/rnn/conv_lstm2d_test.py +/Users/kharshith/keras/keras/src/layers/rnn/conv_lstm1d_test.py +/Users/kharshith/keras/keras/src/backend/common/compute_output_spec_test.py +/Users/kharshith/keras/keras/src/backend/common/backend_utils_test.py +/Users/kharshith/keras/keras/src/layers/rnn/bidirectional_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/zero_padding3d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/zero_padding2d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/zero_padding1d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/up_sampling3d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/up_sampling2d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/up_sampling1d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/reshape_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/repeat_vector_test.py +/Users/kharshith/keras/keras/src/applications/imagenet_utils_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/permute_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/flatten_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/cropping3d_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/cropping2d_test.py +/Users/kharshith/keras/keras/src/applications/applications_test.py +/Users/kharshith/keras/keras/src/layers/reshaping/cropping1d_test.py +/Users/kharshith/keras/keras/src/activations/activations_test.py +/Users/kharshith/keras/keras/src/layers/regularization/spatial_dropout_test.py +/Users/kharshith/keras/keras/src/layers/regularization/gaussian_noise_test.py +/Users/kharshith/keras/keras/src/layers/regularization/gaussian_dropout_test.py +/Users/kharshith/keras/keras/src/layers/regularization/dropout_test.py +/Users/kharshith/keras/keras/src/layers/regularization/alpha_dropout_test.py +/Users/kharshith/keras/keras/src/layers/regularization/activity_regularization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/text_vectorization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/string_lookup_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/stft_spectrogram_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/rescaling_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/pipeline_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/normalization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/mel_spectrogram_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/integer_lookup_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/index_lookup_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/solarization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/resizing_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_zoom_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_translation_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_shear_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_sharpness_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_saturation_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_rotation_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_posterization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_perspective_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_invert_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_hue_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_grayscale_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_gaussian_blur_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_flip_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_erasing_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_elastic_transform_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_crop_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_contrast_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_color_jitter_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_color_degeneration_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/random_brightness_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/rand_augment_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/mix_up_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/max_num_bounding_box_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/equalization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/cut_mix_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/center_crop_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/bounding_boxes/iou_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/bounding_boxes/converters_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/auto_contrast_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/image_preprocessing/aug_mix_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/hashing_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/hashed_crossing_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/feature_space_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/discretization_test.py +/Users/kharshith/keras/keras/src/layers/preprocessing/category_encoding_test.py +/Users/kharshith/keras/keras/src/layers/pooling/max_pooling_test.py +/Users/kharshith/keras/keras/src/layers/pooling/global_max_pooling_test.py +/Users/kharshith/keras/keras/src/layers/pooling/global_average_pooling_test.py +/Users/kharshith/keras/keras/src/layers/pooling/average_pooling_test.py +/Users/kharshith/keras/keras/src/layers/normalization/unit_normalization_test.py +/Users/kharshith/keras/keras/src/layers/normalization/spectral_normalization_test.py +/Users/kharshith/keras/keras/src/layers/normalization/rms_normalization_test.py +/Users/kharshith/keras/keras/src/layers/normalization/layer_normalization_test.py +/Users/kharshith/keras/keras/src/layers/normalization/group_normalization_test.py +/Users/kharshith/keras/keras/src/layers/normalization/batch_normalization_test.py +/Users/kharshith/keras/keras/src/layers/merging/merging_test.py +/Users/kharshith/keras/keras/src/layers/layer_test.py +/Users/kharshith/keras/keras/src/layers/core/wrapper_test.py +/Users/kharshith/keras/keras/src/layers/core/masking_test.py +/Users/kharshith/keras/keras/src/layers/core/lambda_layer_test.py +/Users/kharshith/keras/keras/src/layers/core/input_layer_test.py +/Users/kharshith/keras/keras/src/layers/core/identity_test.py +/Users/kharshith/keras/keras/src/layers/core/embedding_test.py +/Users/kharshith/keras/keras/src/layers/core/einsum_dense_test.py +/Users/kharshith/keras/keras/src/layers/core/dense_test.py +/Users/kharshith/keras/keras/src/layers/convolutional/separable_conv_test.py +/Users/kharshith/keras/keras/src/layers/convolutional/depthwise_conv_test.py \ No newline at end of file diff --git a/tests_list.txt b/tests_list.txt new file mode 100644 index 000000000000..3dc80dea9928 --- /dev/null +++ b/tests_list.txt @@ -0,0 +1,259 @@ +./keras/src/metrics/accuracy_metrics_test.py +./keras/src/layers/activations/activation_test.py +./keras/src/activations/activations_test.py +./keras/src/layers/regularization/activity_regularization_test.py +./keras/src/optimizers/adadelta_test.py +./keras/src/optimizers/adafactor_test.py +./keras/src/optimizers/adagrad_test.py +./keras/src/optimizers/adam_test.py +./keras/src/optimizers/adamax_test.py +./keras/src/optimizers/adamw_test.py +./keras/src/layers/attention/additive_attention_test.py +./keras/src/layers/regularization/alpha_dropout_test.py +./keras/src/applications/applications_test.py +./keras/src/trainers/data_adapters/array_data_adapter_test.py +./keras/src/layers/attention/attention_test.py +./keras/src/utils/audio_dataset_utils_test.py +./keras/src/layers/preprocessing/image_preprocessing/aug_mix_test.py +./keras/src/layers/preprocessing/image_preprocessing/auto_contrast_test.py +./keras/src/layers/pooling/average_pooling_test.py +./keras/src/utils/backend_utils_test.py +./keras/src/backend/common/backend_utils_test.py +./keras/src/callbacks/backup_and_restore_test.py +./keras/src/layers/normalization/batch_normalization_test.py +./keras/src/layers/rnn/bidirectional_test.py +./integration_tests/dataset_tests/boston_housing_test.py +./integration_tests/dataset_tests/california_housing_test.py +./keras/src/callbacks/callback_test.py +./keras/src/layers/preprocessing/category_encoding_test.py +./keras/src/layers/preprocessing/image_preprocessing/center_crop_test.py +./integration_tests/dataset_tests/cifar10_test.py +./integration_tests/dataset_tests/cifar100_test.py +./keras/src/models/cloning_test.py +./keras/src/utils/code_stats_test.py +./keras/src/trainers/compile_utils_test.py +./keras/src/backend/tests/compute_output_spec_test.py +./keras/src/backend/common/compute_output_spec_test.py +./keras/src/metrics/confusion_metrics_test.py +./keras/src/initializers/constant_initializers_test.py +./keras/src/constraints/constraints_test.py +./keras/src/layers/rnn/conv_lstm_test.py +./keras/src/layers/rnn/conv_lstm1d_test.py +./keras/src/layers/rnn/conv_lstm2d_test.py +./keras/src/layers/rnn/conv_lstm3d_test.py +./keras/src/layers/convolutional/conv_test.py +./keras/src/layers/convolutional/conv_transpose_test.py +./keras/src/layers/preprocessing/image_preprocessing/bounding_boxes/converters_test.py +./keras/src/ops/core_test.py +./keras/src/metrics/correlation_metrics_test.py +./keras/src/layers/reshaping/cropping1d_test.py +./keras/src/layers/reshaping/cropping2d_test.py +./keras/src/layers/reshaping/cropping3d_test.py +./keras/src/callbacks/csv_logger_test.py +./keras/src/layers/preprocessing/image_preprocessing/cut_mix_test.py +./keras/src/trainers/data_adapters/data_adapter_utils_test.py +./keras/src/utils/dataset_utils_test.py +./keras/src/layers/core/dense_test.py +./keras/src/layers/convolutional/depthwise_conv_test.py +./keras/src/backend/tests/device_scope_test.py +./keras/src/layers/preprocessing/discretization_test.py +./keras/src/backend/tensorflow/distribute_test.py +./keras/src/distribution/distribution_lib_test.py +./keras/src/backend/jax/distribution_lib_test.py +./keras/src/layers/rnn/dropout_rnn_cell_test.py +./keras/src/layers/regularization/dropout_test.py +./keras/src/dtype_policies/dtype_policy_map_test.py +./keras/src/dtype_policies/dtype_policy_test.py +./keras/src/utils/dtype_utils_test.py +./keras/src/backend/common/dtypes_test.py +./keras/src/callbacks/early_stopping_test.py +./keras/src/ops/einops_test.py +./keras/src/layers/core/einsum_dense_test.py +./keras/src/layers/activations/elu_test.py +./keras/src/layers/core/embedding_test.py +./keras/src/trainers/epoch_iterator_test.py +./keras/src/layers/preprocessing/image_preprocessing/equalization_test.py +./keras/src/metrics/f_score_metrics_test.py +./integration_tests/dataset_tests/fashion_mnist_test.py +./keras/src/layers/preprocessing/feature_space_test.py +./keras/src/saving/file_editor_test.py +./keras/src/utils/file_utils_test.py +./keras/src/layers/reshaping/flatten_test.py +./keras/src/optimizers/ftrl_test.py +./keras/src/ops/function_test.py +./keras/src/models/functional_test.py +./keras/src/layers/regularization/gaussian_dropout_test.py +./keras/src/layers/regularization/gaussian_noise_test.py +./keras/src/trainers/data_adapters/generator_data_adapter_test.py +./keras/src/layers/pooling/global_average_pooling_test.py +./keras/src/layers/pooling/global_max_pooling_test.py +./keras/src/backend/common/global_state_test.py +./keras/src/layers/normalization/group_normalization_test.py +./keras/src/layers/attention/grouped_query_attention_test.py +./keras/src/layers/rnn/gru_test.py +./keras/src/layers/preprocessing/hashed_crossing_test.py +./keras/src/layers/preprocessing/hashing_test.py +./keras/src/metrics/hinge_metrics_test.py +./keras/src/layers/core/identity_test.py +./keras/src/utils/image_dataset_utils_test.py +./keras/src/ops/image_test.py +./keras/src/applications/imagenet_utils_test.py +./integration_tests/dataset_tests/imdb_test.py +./integration_tests/import_test.py +./keras/src/layers/preprocessing/index_lookup_test.py +./keras/src/layers/core/input_layer_test.py +./keras/src/layers/preprocessing/integer_lookup_test.py +./keras/src/utils/io_utils_test.py +./keras/src/metrics/iou_metrics_test.py +./keras/src/layers/preprocessing/image_preprocessing/bounding_boxes/iou_test.py +./integration_tests/jax_custom_fit_test.py +./keras/src/utils/jax_layer_test.py +./keras/src/legacy/saving/json_utils_test.py +./keras/src/backend/common/keras_tensor_test.py +./keras/src/optimizers/lamb_test.py +./keras/src/callbacks/lambda_callback_test.py +./keras/src/layers/core/lambda_layer_test.py +./keras/src/layers/normalization/layer_normalization_test.py +./keras/src/layers/layer_test.py +./keras/src/layers/activations/leaky_relu_test.py +./keras/src/optimizers/schedules/learning_rate_schedule_test.py +./keras/src/callbacks/learning_rate_scheduler_test.py +./keras/src/legacy/saving/legacy_h5_format_test.py +./keras/src/ops/linalg_test.py +./keras/src/optimizers/lion_test.py +./keras/src/optimizers/loss_scale_optimizer_test.py +./keras/src/losses/loss_test.py +./keras/src/losses/losses_test.py +./keras/src/layers/rnn/lstm_test.py +./keras/src/layers/core/masking_test.py +./keras/src/backend/common/masking_test.py +./keras/src/ops/math_test.py +./keras/src/layers/preprocessing/image_preprocessing/max_num_bounding_box_test.py +./keras/src/layers/pooling/max_pooling_test.py +./keras/src/layers/preprocessing/mel_spectrogram_test.py +./keras/src/layers/merging/merging_test.py +./keras/src/metrics/metric_test.py +./keras/src/layers/preprocessing/image_preprocessing/mix_up_test.py +./integration_tests/dataset_tests/mnist_test.py +./keras/src/callbacks/model_checkpoint_test.py +./keras/src/models/model_test.py +./integration_tests/model_visualization_test.py +./keras/src/callbacks/monitor_callback_test.py +./keras/src/layers/attention/multi_head_attention_test.py +./keras/src/optimizers/muon_test.py +./keras/src/optimizers/nadam_test.py +./keras/src/backend/common/name_scope_test.py +./keras/src/backend/tensorflow/name_scope_test.py +./keras/src/utils/naming_test.py +./keras/src/ops/nn_test.py +./keras/src/ops/node_test.py +./keras/src/layers/preprocessing/normalization_test.py +./keras/src/utils/numerical_utils_test.py +./keras/src/ops/numpy_test.py +./keras/src/saving/object_registration_test.py +./keras/src/export/onnx_test.py +./keras/src/ops/operation_test.py +./keras/src/ops/operation_utils_test.py +./keras/src/ops/ops_test.py +./keras/src/backend/tensorflow/optimizer_distribute_test.py +./keras/src/optimizers/optimizer_sparse_test.py +./keras/src/optimizers/optimizer_test.py +./keras/src/layers/reshaping/permute_test.py +./keras/src/layers/preprocessing/pipeline_test.py +./keras/src/layers/activations/prelu_test.py +./keras/src/metrics/probabilistic_metrics_test.py +./keras/src/trainers/data_adapters/py_dataset_adapter_test.py +./keras/src/utils/python_utils_test.py +./keras/src/quantizers/quantizers_test.py +./keras/src/layers/preprocessing/image_preprocessing/rand_augment_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_brightness_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_color_degeneration_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_color_jitter_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_contrast_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_crop_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_elastic_transform_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_erasing_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_flip_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_gaussian_blur_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_grayscale_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_hue_test.py +./keras/src/initializers/random_initializers_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_invert_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_perspective_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_posterization_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_rotation_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_saturation_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_sharpness_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_shear_test.py +./keras/src/random/random_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_translation_test.py +./keras/src/layers/preprocessing/image_preprocessing/random_zoom_test.py +./keras/src/callbacks/reduce_lr_on_plateau_test.py +./keras/src/metrics/reduction_metrics_test.py +./keras/src/metrics/regression_metrics_test.py +./keras/src/regularizers/regularizers_test.py +./keras/src/layers/activations/relu_test.py +./keras/src/backend/common/remat_test.py +./keras/src/callbacks/remote_monitor_test.py +./keras/src/layers/reshaping/repeat_vector_test.py +./keras/src/layers/preprocessing/rescaling_test.py +./keras/src/layers/reshaping/reshape_test.py +./keras/src/layers/preprocessing/image_preprocessing/resizing_test.py +./integration_tests/dataset_tests/reuters_test.py +./keras/src/layers/normalization/rms_normalization_test.py +./keras/src/optimizers/rmsprop_test.py +./keras/src/utils/rng_utils_test.py +./keras/src/layers/rnn/rnn_test.py +./keras/src/backend/tensorflow/saved_model_test.py +./keras/src/export/saved_model_test.py +./keras/src/saving/saving_api_test.py +./keras/src/saving/saving_lib_test.py +./keras/src/random/seed_generator_test.py +./keras/src/layers/convolutional/separable_conv_test.py +./keras/src/utils/sequence_utils_test.py +./keras/src/models/sequential_test.py +./keras/src/saving/serialization_lib_test.py +./keras/src/optimizers/sgd_test.py +./keras/src/layers/rnn/simple_rnn_test.py +./keras/src/wrappers/sklearn_test.py +./keras/src/layers/activations/softmax_test.py +./keras/src/layers/preprocessing/image_preprocessing/solarization_test.py +./keras/src/layers/regularization/spatial_dropout_test.py +./keras/src/layers/normalization/spectral_normalization_test.py +./keras/src/layers/rnn/stacked_rnn_cells_test.py +./keras/src/backend/common/stateless_scope_test.py +./keras/src/layers/preprocessing/stft_spectrogram_test.py +./keras/src/layers/preprocessing/string_lookup_test.py +./keras/src/utils/summary_utils_test.py +./keras/src/callbacks/swap_ema_weights_test.py +./keras/src/ops/symbolic_arguments_test.py +./keras/src/backend/common/symbolic_scope_test.py +./keras/src/callbacks/tensorboard_test.py +./keras/src/callbacks/terminate_on_nan_test.py +./keras/src/testing/test_utils_test.py +./keras/src/utils/text_dataset_utils_test.py +./keras/src/layers/preprocessing/text_vectorization_test.py +./integration_tests/tf_custom_fit_test.py +./keras/src/trainers/data_adapters/tf_dataset_adapter_test.py +./integration_tests/tf_distribute_training_test.py +./keras/src/export/tfsm_layer_test.py +./keras/src/backend/common/thread_safe_test.py +./keras/src/layers/rnn/time_distributed_test.py +./keras/src/utils/timeseries_dataset_utils_test.py +./integration_tests/torch_custom_fit_test.py +./keras/src/trainers/data_adapters/torch_data_loader_adapter_test.py +./keras/src/utils/torch_utils_test.py +./integration_tests/torch_workflow_test.py +./keras/src/utils/tracking_test.py +./keras/src/trainers/trainer_test.py +./keras/src/tree/tree_test.py +./keras/src/layers/normalization/unit_normalization_test.py +./keras/src/layers/reshaping/up_sampling1d_test.py +./keras/src/layers/reshaping/up_sampling2d_test.py +./keras/src/layers/reshaping/up_sampling3d_test.py +./keras/src/models/variable_mapping_test.py +./keras/src/backend/common/variables_test.py +./keras/src/layers/core/wrapper_test.py +./keras/src/layers/reshaping/zero_padding1d_test.py +./keras/src/layers/reshaping/zero_padding2d_test.py +./keras/src/layers/reshaping/zero_padding3d_test.py