From b01e181ec89229355d427351442b96df738c445f Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 13:54:05 +0000 Subject: [PATCH 01/13] Add required jobs for Unit test. Signed-off-by: Jay Zhang --- .github/actions/prepare_env/action.yml | 53 ----------- .github/actions/unit_test/action.yml | 64 +++++++++++++ .github/workflows/unit_tests_ci.yml | 119 ++++++++++++++----------- 3 files changed, 132 insertions(+), 104 deletions(-) delete mode 100644 .github/actions/prepare_env/action.yml create mode 100644 .github/actions/unit_test/action.yml diff --git a/.github/actions/prepare_env/action.yml b/.github/actions/prepare_env/action.yml deleted file mode 100644 index 8d54be491..000000000 --- a/.github/actions/prepare_env/action.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: Prepare Environment. - -on: - workflow_call: - inputs: - tf_version: - description: 'TensorFlow version' - required: true - type: string - -jobs: - setup: - runs-on: ubuntu-latest - env: - tensorflow_version: ${{ github.event.inputs.tf_version }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - - # - name: Install dependencies (tf ${{ inputs.tf_version }}) - - name: Install dependencies (tf $tensorflow_version) - run: | - pip install pytest pytest-cov pytest-runner coverage graphviz requests pyyaml pillow pandas parameterized sympy coloredlogs flatbuffers timeout-decorator - pip install onnx - pip install onnxruntime==1.16.3 - pip install numpy - - pip install onnxruntime-extensions - # pip install "tensorflow-text<=${{ inputs.tf_version }}" - pip install "tensorflow-text<=$tensorflow_version" - - pip uninstall -y tensorflow - # pip install tensorflow==${{ inputs.tf_version }} - pip install tensorflow==$tensorflow_version - pip uninstall -y protobuf - pip install "protobuf~=3.20" - - python setup.py install - - pip freeze --all - - - name: Fix Paths (Windows only) - if: runner.os == 'Windows' - run: | - $site_dir = python -c "import site; print(site.getsitepackages()[1])" - echo "##vso[task.prependpath]$site_dir\numpy\.libs" - $base_dir = python -c "import site; print(site.getsitepackages()[0])" - echo "##vso[task.prependpath]$base_dir/Library/bin" - - - name: List all dependencies - run: | - pip list - diff --git a/.github/actions/unit_test/action.yml b/.github/actions/unit_test/action.yml new file mode 100644 index 000000000..f3d0ea1e7 --- /dev/null +++ b/.github/actions/unit_test/action.yml @@ -0,0 +1,64 @@ +name: Unit Test Run + +inputs: + os: + description: 'OS type' + tf_version: + description: 'TensorFlow version' + python_version: + description: 'Python version' + ort_version: + description: 'ONNXRuntime version' + onnx_version: + description: 'ONNX version' + opset_version: + description: 'OPSET version' + skip_tflite: + description: 'Skip TFLite tests' + +runs: + using: "composite" + steps: + - name: Set up Python (${{ inputs.python_version }}) + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python_version }} + + - name: Install dependencies (TF-v${{ inputs.tf_version }}) + shell: bash + run: | + chmod +x ./tests/utils/setup_test_env.sh + ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + + - name: Fix Paths (Windows only) + shell: pwsh + if: runner.os == 'Windows' + run: | + $site_dir = python -c "import site; print(site.getsitepackages()[1])" + echo "##vso[task.prependpath]$site_dir\numpy\.libs" + $base_dir = python -c "import site; print(site.getsitepackages()[0])" + echo "##vso[task.prependpath]$base_dir/Library/bin" + + - name: Run unit_test (Linux) + shell: bash + if: runner.os == 'Linux' + run: | + export TF2ONNX_TEST_BACKEND=onnxruntime + export TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + export TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + export TF2ONNX_SKIP_TFJS_TESTS=True + export TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls + + - name: Run unit_test (Windows) + shell: pwsh + if: runner.os == 'Windows' + run: | + set TF2ONNX_TEST_BACKEND=onnxruntime + set TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + set TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + set TF2ONNX_SKIP_TFJS_TESTS=True + set TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls diff --git a/.github/workflows/unit_tests_ci.yml b/.github/workflows/unit_tests_ci.yml index 6239f8aed..bff847a43 100644 --- a/.github/workflows/unit_tests_ci.yml +++ b/.github/workflows/unit_tests_ci.yml @@ -14,33 +14,80 @@ concurrency: cancel-in-progress: true jobs: - run_tests: + + Test_min_py_with_min_tf: + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py38-TF2.9-18) + uses: ./.github/actions/unit_test_run + with: + os: 'ubuntu-latest' + tf_version: '2.9.0' + python_version: '3.8' + ort_version: '1.16.3' + onnx_version: '1.16.1' + opset_version: '18' + skip_tflite: 'False' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py38-TF2.9-18-ubuntu) + path: ./**/test-results-*.xml + + Test_max_py_with_latest_tf: + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py39-TF2.15-18) + uses: ./.github/actions/unit_test_run + with: + os: 'ubuntu-latest' + tf_version: '2.15.0' + python_version: '3.9' + ort_version: '1.16.3' + onnx_version: '1.16.1' + opset_version: '18' + skip_tflite: 'False' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py39-TF2.15-18-ubuntu) + path: ./**/test-results-*.xml + + Extra_tests: strategy: fail-fast: false matrix: name: - - 'py38-tf2.9' - 'py39-tf2.10' - 'py39-tf2.15' - - 'py310-tf2.15' - os: ['ubuntu-latest', 'windows-2022'] + os: ['windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] skip_tflite: ['False'] include: - - name: 'py38-tf2.9' - tf_version: '2.9.0' - python_version: '3.8' - name: 'py39-tf2.10' tf_version: '2.10.0' python_version: '3.9' - name: 'py39-tf2.15' tf_version: '2.15.0' python_version: '3.9' - - name: 'py310-tf2.15' - tf_version: '2.15.0' - python_version: '3.10' - name: 'py37-tf1.15' tf_version: '1.15.5' python_version: '3.7' @@ -53,55 +100,25 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - name: Checkout code uses: actions/checkout@v4 - - name: Install dependencies (TF-v${{ matrix.tf_version }}) - shell: bash - run: | - chmod +x ./tests/utils/setup_test_env.sh - ./tests/utils/setup_test_env.sh ${{ matrix.tf_version }} ${{ matrix.ort_version }} ${{ matrix.onnx_version }} - - - name: Fix Paths (Windows only) - if: runner.os == 'Windows' - run: | - $site_dir = python -c "import site; print(site.getsitepackages()[1])" - echo "##vso[task.prependpath]$site_dir\numpy\.libs" - $base_dir = python -c "import site; print(site.getsitepackages()[0])" - echo "##vso[task.prependpath]$base_dir/Library/bin" - - - name: Run unit_test (Linux) - if: runner.os == 'Linux' - run: | - export TF2ONNX_TEST_BACKEND=onnxruntime - export TF2ONNX_TEST_OPSET=${{ matrix.opset_version }} - export TF2ONNX_SKIP_TFLITE_TESTS=${{ matrix.skip_tflite }} - export TF2ONNX_SKIP_TFJS_TESTS=True - export TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls - - - name: Run unit_test (Windows) - if: runner.os == 'Windows' - run: | - set TF2ONNX_TEST_BACKEND=onnxruntime - set TF2ONNX_TEST_OPSET=${{ matrix.opset_version }} - set TF2ONNX_SKIP_TFLITE_TESTS=${{ matrix.skip_tflite }} - set TF2ONNX_SKIP_TFJS_TESTS=True - set TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls + - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.opset_version }}_${{ matrix.ort_version }}_${{ matrix.skip_tflite }}) + uses: ./.github/actions/unit_test + with: + os: ${{ matrix.os }} + tf_version: ${{ matrix.tf_version }} + python_version: ${{ matrix.python_version }} + ort_version: ${{ matrix.ort_version }} + onnx_version: ${{ matrix.onnx_version }} + opset_version: ${{ matrix.opset_version }} + skip_tflite: ${{ matrix.skip_tflite }} - name: Upload Test Results if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) + name: Test Results (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.opset_version }}_${{ matrix.ort_version }}_${{ matrix.skip_tflite }}) path: ./**/test-results-*.xml publish-test-results: From a677fdd5f18a05b984a0bdd91ab0f61b165e4fef Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 14:13:44 +0000 Subject: [PATCH 02/13] Update the needs of publishing test results job. Signed-off-by: Jay Zhang --- .github/workflows/unit_tests_ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit_tests_ci.yml b/.github/workflows/unit_tests_ci.yml index bff847a43..5c7953acc 100644 --- a/.github/workflows/unit_tests_ci.yml +++ b/.github/workflows/unit_tests_ci.yml @@ -15,7 +15,7 @@ concurrency: jobs: - Test_min_py_with_min_tf: + Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. strategy: fail-fast: false runs-on: ubuntu-latest @@ -42,7 +42,7 @@ jobs: name: Test Results (Py38-TF2.9-18-ubuntu) path: ./**/test-results-*.xml - Test_max_py_with_latest_tf: + Test_max_py_with_latest_tf: # Do not change this name because it is used in Ruleset of this repo. strategy: fail-fast: false runs-on: ubuntu-latest @@ -123,7 +123,7 @@ jobs: publish-test-results: name: "Publish Tests Results to Github" - needs: run_tests + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests] runs-on: ubuntu-latest permissions: checks: write From c0645f2be7a380e87d56f2ff0dd764709744a442 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 14:15:52 +0000 Subject: [PATCH 03/13] Correct the action.yml file path. Signed-off-by: Jay Zhang --- .github/workflows/unit_tests_ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit_tests_ci.yml b/.github/workflows/unit_tests_ci.yml index 5c7953acc..d18eab55e 100644 --- a/.github/workflows/unit_tests_ci.yml +++ b/.github/workflows/unit_tests_ci.yml @@ -25,7 +25,7 @@ jobs: uses: actions/checkout@v4 - name: Run Tests (Py38-TF2.9-18) - uses: ./.github/actions/unit_test_run + uses: ./.github/actions/unit_test with: os: 'ubuntu-latest' tf_version: '2.9.0' @@ -52,7 +52,7 @@ jobs: uses: actions/checkout@v4 - name: Run Tests (Py39-TF2.15-18) - uses: ./.github/actions/unit_test_run + uses: ./.github/actions/unit_test with: os: 'ubuntu-latest' tf_version: '2.15.0' From 9b883313a8f0587413fa62b223931f209a706e40 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 14:51:41 +0000 Subject: [PATCH 04/13] Add required jobs for pretrained_model_test. Signed-off-by: Jay Zhang --- .../actions/keras_application_test/action.yml | 64 ++++++++ .github/actions/keras_unit_test/action.yml | 64 ++++++++ .../actions/pretrained_model_test/action.yml | 45 ++++++ .github/actions/unit_test/action.yml | 2 - .../workflows/pretrained_model_test_ci.yml | 139 ++++++++++++++++++ .../workflows/pretrained_model_tests_ci.yml | 99 ------------- .github/workflows/pylint.yml | 2 +- .../{unit_tests_ci.yml => unit_test_ci.yml} | 15 +- 8 files changed, 320 insertions(+), 110 deletions(-) create mode 100644 .github/actions/keras_application_test/action.yml create mode 100644 .github/actions/keras_unit_test/action.yml create mode 100644 .github/actions/pretrained_model_test/action.yml create mode 100644 .github/workflows/pretrained_model_test_ci.yml delete mode 100644 .github/workflows/pretrained_model_tests_ci.yml rename .github/workflows/{unit_tests_ci.yml => unit_test_ci.yml} (94%) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml new file mode 100644 index 000000000..f3d0ea1e7 --- /dev/null +++ b/.github/actions/keras_application_test/action.yml @@ -0,0 +1,64 @@ +name: Unit Test Run + +inputs: + os: + description: 'OS type' + tf_version: + description: 'TensorFlow version' + python_version: + description: 'Python version' + ort_version: + description: 'ONNXRuntime version' + onnx_version: + description: 'ONNX version' + opset_version: + description: 'OPSET version' + skip_tflite: + description: 'Skip TFLite tests' + +runs: + using: "composite" + steps: + - name: Set up Python (${{ inputs.python_version }}) + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python_version }} + + - name: Install dependencies (TF-v${{ inputs.tf_version }}) + shell: bash + run: | + chmod +x ./tests/utils/setup_test_env.sh + ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + + - name: Fix Paths (Windows only) + shell: pwsh + if: runner.os == 'Windows' + run: | + $site_dir = python -c "import site; print(site.getsitepackages()[1])" + echo "##vso[task.prependpath]$site_dir\numpy\.libs" + $base_dir = python -c "import site; print(site.getsitepackages()[0])" + echo "##vso[task.prependpath]$base_dir/Library/bin" + + - name: Run unit_test (Linux) + shell: bash + if: runner.os == 'Linux' + run: | + export TF2ONNX_TEST_BACKEND=onnxruntime + export TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + export TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + export TF2ONNX_SKIP_TFJS_TESTS=True + export TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls + + - name: Run unit_test (Windows) + shell: pwsh + if: runner.os == 'Windows' + run: | + set TF2ONNX_TEST_BACKEND=onnxruntime + set TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + set TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + set TF2ONNX_SKIP_TFJS_TESTS=True + set TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls diff --git a/.github/actions/keras_unit_test/action.yml b/.github/actions/keras_unit_test/action.yml new file mode 100644 index 000000000..f3d0ea1e7 --- /dev/null +++ b/.github/actions/keras_unit_test/action.yml @@ -0,0 +1,64 @@ +name: Unit Test Run + +inputs: + os: + description: 'OS type' + tf_version: + description: 'TensorFlow version' + python_version: + description: 'Python version' + ort_version: + description: 'ONNXRuntime version' + onnx_version: + description: 'ONNX version' + opset_version: + description: 'OPSET version' + skip_tflite: + description: 'Skip TFLite tests' + +runs: + using: "composite" + steps: + - name: Set up Python (${{ inputs.python_version }}) + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python_version }} + + - name: Install dependencies (TF-v${{ inputs.tf_version }}) + shell: bash + run: | + chmod +x ./tests/utils/setup_test_env.sh + ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + + - name: Fix Paths (Windows only) + shell: pwsh + if: runner.os == 'Windows' + run: | + $site_dir = python -c "import site; print(site.getsitepackages()[1])" + echo "##vso[task.prependpath]$site_dir\numpy\.libs" + $base_dir = python -c "import site; print(site.getsitepackages()[0])" + echo "##vso[task.prependpath]$base_dir/Library/bin" + + - name: Run unit_test (Linux) + shell: bash + if: runner.os == 'Linux' + run: | + export TF2ONNX_TEST_BACKEND=onnxruntime + export TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + export TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + export TF2ONNX_SKIP_TFJS_TESTS=True + export TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls + + - name: Run unit_test (Windows) + shell: pwsh + if: runner.os == 'Windows' + run: | + set TF2ONNX_TEST_BACKEND=onnxruntime + set TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} + set TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} + set TF2ONNX_SKIP_TFJS_TESTS=True + set TF2ONNX_SKIP_TF_TESTS=False + python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml + ls diff --git a/.github/actions/pretrained_model_test/action.yml b/.github/actions/pretrained_model_test/action.yml new file mode 100644 index 000000000..01e6a86c0 --- /dev/null +++ b/.github/actions/pretrained_model_test/action.yml @@ -0,0 +1,45 @@ +name: Unit Test Run + +inputs: + tf_version: + description: 'TensorFlow version' + python_version: + description: 'Python version' + ort_version: + description: 'ONNXRuntime version' + onnx_version: + description: 'ONNX version' + opset_version: + description: 'OPSET version' + skip_tflite: + description: 'Skip TFLite tests' + +runs: + using: "composite" + steps: + - name: Set up Python (${{ inputs.python_version }}) + uses: actions/setup-python@v5 + with: + python-version: ${{ inputs.python_version }} + + - name: Install dependencies (TF-v${{ inputs.tf_version }}) + shell: bash + run: | + chmod +x ./tests/utils/setup_test_env.sh + ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + + - name: Fix Paths (Windows only) + shell: pwsh + if: runner.os == 'Windows' + run: | + $site_dir = python -c "import site; print(site.getsitepackages()[1])" + echo "##vso[task.prependpath]$site_dir\numpy\.libs" + $base_dir = python -c "import site; print(site.getsitepackages()[0])" + echo "##vso[task.prependpath]$base_dir/Library/bin" + + - name: Run pretrained_model_test + run: | + # TODO: fix unity model path + # python tests/run_pretrained_models.py --backend $CI_ONNX_BACKEND --opset $CI_ONNX_OPSET --config tests/unity.yaml || status=$? + python tests/run_pretrained_models.py --backend onnxruntime --opset ${{ inputs.opset_version }} --skip_tf_tests False --skip_tflite_tests ${{ inputs.skip_tflite }} --skip_tfjs_tests True --config tests/run_pretrained_models.yaml || status=$? + ls diff --git a/.github/actions/unit_test/action.yml b/.github/actions/unit_test/action.yml index f3d0ea1e7..00cb28386 100644 --- a/.github/actions/unit_test/action.yml +++ b/.github/actions/unit_test/action.yml @@ -1,8 +1,6 @@ name: Unit Test Run inputs: - os: - description: 'OS type' tf_version: description: 'TensorFlow version' python_version: diff --git a/.github/workflows/pretrained_model_test_ci.yml b/.github/workflows/pretrained_model_test_ci.yml new file mode 100644 index 000000000..25585fde7 --- /dev/null +++ b/.github/workflows/pretrained_model_test_ci.yml @@ -0,0 +1,139 @@ +name: Pretrained Model Test (CI) + +on: + pull_request: + branches: + - main + push: + branches: + - main + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }} + cancel-in-progress: true + +jobs: + + Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py38-TF2.9-18) + uses: ./.github/actions/pretrained_model_test + with: + os: 'ubuntu-latest' + tf_version: '2.9.0' + python_version: '3.8' + ort_version: '1.16.3' + onnx_version: '1.16.1' + opset_version: '18' + skip_tflite: 'False' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py38-TF2.9-18-ubuntu) + path: ./**/test-results-*.xml + + Test_max_py_with_latest_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py39-TF2.15-18) + uses: ./.github/actions/pretrained_model_test + with: + os: 'ubuntu-latest' + tf_version: '2.15.0' + python_version: '3.9' + ort_version: '1.16.3' + onnx_version: '1.16.1' + opset_version: '18' + skip_tflite: 'False' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py39-TF2.15-18-ubuntu) + path: ./**/test-results-*.xml + + Extra_tests: + strategy: + fail-fast: false + matrix: + name: + - 'py38-tf2.13' + - 'py39-tf2.14' + os: ['windows-2022'] + opset_version: ['18', '15'] + ort_version: ['1.16.3'] + onnx_version: ['1.16.1'] + skip_tflite: ['False'] + include: + - name: 'py38-tf2.13' + tf_version: '2.13.0' + python_version: '3.8' + - name: 'py39-tf2.14' + tf_version: '2.14.0' + python_version: '3.9' + - name: 'py37-tf1.15' + tf_version: '1.15.5' + python_version: '3.7' + os: 'ubuntu-latest' + opset_version: '15' + ort_version: '1.14.1' + onnx_version: '1.14.1' + + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.opset_version }}_${{ matrix.ort_version }}_${{ matrix.skip_tflite }}) + uses: ./.github/actions/pretrained_model_test + with: + tf_version: ${{ matrix.tf_version }} + python_version: ${{ matrix.python_version }} + ort_version: ${{ matrix.ort_version }} + onnx_version: ${{ matrix.onnx_version }} + opset_version: ${{ matrix.opset_version }} + skip_tflite: ${{ matrix.skip_tflite }} + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.opset_version }}_${{ matrix.ort_version }}_${{ matrix.skip_tflite }}) + path: ./**/test-results-*.xml + + publish-test-results: + name: "Publish Tests Results to Github" + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests] + runs-on: ubuntu-latest + permissions: + checks: write + pull-requests: write + if: always() + steps: + - name: Download Artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + with: + files: "**/pytest*.xml" \ No newline at end of file diff --git a/.github/workflows/pretrained_model_tests_ci.yml b/.github/workflows/pretrained_model_tests_ci.yml deleted file mode 100644 index cc3826c69..000000000 --- a/.github/workflows/pretrained_model_tests_ci.yml +++ /dev/null @@ -1,99 +0,0 @@ -name: Pretrained Model Test (CI) - -on: - pull_request: - branches: - - main - push: - branches: - - main - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'workflow_dispatch' }} - cancel-in-progress: true - -jobs: - run_tests: - strategy: - fail-fast: false - matrix: - name: - - 'py38-tf2.9' - - 'py39-tf2.9' - - 'py39-tf2.15' - - 'py310-tf2.15' - opset_version: ['18', '15'] - ort_version: ['1.16.3'] - onnx_version: ['1.16.1'] - include: - - name: 'py38-tf2.9' - tf_version: '2.9.0' - python_version: '3.8' - - name: 'py39-tf2.9' - tf_version: '2.9.0' - python_version: '3.9' - - name: 'py39-tf2.15' - tf_version: '2.15.0' - python_version: '3.9' - - name: 'py310-tf2.15' - tf_version: '2.15.0' - python_version: '3.10' - - name: 'py37-tf1.15' - tf_version: '1.15.5' - python_version: '3.7' - os: 'ubuntu-latest' - opset_version: '15' - ort_version: '1.14.1' - onnx_version: '1.14.1' - - runs-on: ubuntu-latest - - steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies (TF-v${{ matrix.tf_version }}) - shell: bash - run: | - chmod +x ./tests/utils/setup_test_env.sh - ./tests/utils/setup_test_env.sh ${{ matrix.tf_version }} ${{ matrix.ort_version }} ${{ matrix.onnx_version }} - - - name: Fix Paths (Windows only) - if: runner.os == 'Windows' - run: | - $site_dir = python -c "import site; print(site.getsitepackages()[1])" - echo "##vso[task.prependpath]$site_dir\numpy\.libs" - $base_dir = python -c "import site; print(site.getsitepackages()[0])" - echo "##vso[task.prependpath]$base_dir/Library/bin" - - - name: Run pretrained_model_test - run: | - # TODO: fix unity model path - # python tests/run_pretrained_models.py --backend $CI_ONNX_BACKEND --opset $CI_ONNX_OPSET --config tests/unity.yaml || status=$? - python tests/run_pretrained_models.py --backend onnxruntime --opset ${{ matrix.opset_version }} --skip_tf_tests False --skip_tflite_tests False --skip_tfjs_tests True --config tests/run_pretrained_models.yaml || status=$? - ls - - # publish-test-results: - # name: "Publish Tests Results to Github" - # needs: run_tests - # runs-on: ubuntu-latest - # permissions: - # checks: write - # pull-requests: write - # if: always() - # steps: - # - name: Download Artifacts - # uses: actions/download-artifact@v3 - # with: - # path: artifacts - - # - name: Publish Test Results - # uses: EnricoMi/publish-unit-test-result-action@v2 - # with: - # files: "**/pytest*.xml" \ No newline at end of file diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index 6586126ea..ac5631aa3 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -9,7 +9,7 @@ on: - main jobs: - pylint: + enforce-style: runs-on: ubuntu-latest steps: - name: Checkout code diff --git a/.github/workflows/unit_tests_ci.yml b/.github/workflows/unit_test_ci.yml similarity index 94% rename from .github/workflows/unit_tests_ci.yml rename to .github/workflows/unit_test_ci.yml index d18eab55e..71193fc3c 100644 --- a/.github/workflows/unit_tests_ci.yml +++ b/.github/workflows/unit_test_ci.yml @@ -74,19 +74,19 @@ jobs: fail-fast: false matrix: name: - - 'py39-tf2.10' - - 'py39-tf2.15' + - 'py38-tf2.13' + - 'py39-tf2.14' os: ['windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] skip_tflite: ['False'] include: - - name: 'py39-tf2.10' - tf_version: '2.10.0' - python_version: '3.9' - - name: 'py39-tf2.15' - tf_version: '2.15.0' + - name: 'py38-tf2.13' + tf_version: '2.13.0' + python_version: '3.8' + - name: 'py39-tf2.14' + tf_version: '2.14.0' python_version: '3.9' - name: 'py37-tf1.15' tf_version: '1.15.5' @@ -106,7 +106,6 @@ jobs: - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.opset_version }}_${{ matrix.ort_version }}_${{ matrix.skip_tflite }}) uses: ./.github/actions/unit_test with: - os: ${{ matrix.os }} tf_version: ${{ matrix.tf_version }} python_version: ${{ matrix.python_version }} ort_version: ${{ matrix.ort_version }} From 3160180c4d932b15fc3f7a9b5435b0ad6675c5e1 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 15:15:08 +0000 Subject: [PATCH 05/13] Fix an issue in action.yml file. Signed-off-by: Jay Zhang --- .github/actions/pretrained_model_test/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/pretrained_model_test/action.yml b/.github/actions/pretrained_model_test/action.yml index 01e6a86c0..60e2e35b2 100644 --- a/.github/actions/pretrained_model_test/action.yml +++ b/.github/actions/pretrained_model_test/action.yml @@ -38,6 +38,7 @@ runs: echo "##vso[task.prependpath]$base_dir/Library/bin" - name: Run pretrained_model_test + shell: bash run: | # TODO: fix unity model path # python tests/run_pretrained_models.py --backend $CI_ONNX_BACKEND --opset $CI_ONNX_OPSET --config tests/unity.yaml || status=$? From b0a8bf90a36ad04ee158e11613f1b60bae37692a Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 15:49:58 +0000 Subject: [PATCH 06/13] Add required jobs for keras_unit_test_ci. Signed-off-by: Jay Zhang --- .github/actions/keras_unit_test/action.yml | 57 +++----- .github/workflows/keras_unit_test_ci.yml | 123 +++++++++--------- .../workflows/pretrained_model_test_ci.yml | 10 +- .github/workflows/unit_test_ci.yml | 10 +- 4 files changed, 89 insertions(+), 111 deletions(-) diff --git a/.github/actions/keras_unit_test/action.yml b/.github/actions/keras_unit_test/action.yml index f3d0ea1e7..c0a592d4b 100644 --- a/.github/actions/keras_unit_test/action.yml +++ b/.github/actions/keras_unit_test/action.yml @@ -1,8 +1,6 @@ name: Unit Test Run inputs: - os: - description: 'OS type' tf_version: description: 'TensorFlow version' python_version: @@ -11,10 +9,6 @@ inputs: description: 'ONNXRuntime version' onnx_version: description: 'ONNX version' - opset_version: - description: 'OPSET version' - skip_tflite: - description: 'Skip TFLite tests' runs: using: "composite" @@ -27,38 +21,29 @@ runs: - name: Install dependencies (TF-v${{ inputs.tf_version }}) shell: bash run: | - chmod +x ./tests/utils/setup_test_env.sh - ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + python -m pip install --upgrade pip + pip install onnxconverter-common + pip install onnx==${{ inputs.onnx_version }} + pip install h5py==3.7.0 + pip install parameterized + pip install timeout-decorator + pip install coloredlogs flatbuffers + pip install tensorflow==${{ inputs.tf_version }} + pip install pytest pytest-cov pytest-runner + pip install onnxruntime==${{ inputs.ort_version }} + pip uninstall -y protobuf + pip install "protobuf~=3.20" + pip install "numpy<2" - - name: Fix Paths (Windows only) - shell: pwsh - if: runner.os == 'Windows' - run: | - $site_dir = python -c "import site; print(site.getsitepackages()[1])" - echo "##vso[task.prependpath]$site_dir\numpy\.libs" - $base_dir = python -c "import site; print(site.getsitepackages()[0])" - echo "##vso[task.prependpath]$base_dir/Library/bin" + pip install -e . + + echo "----- List all of depdencies:" + pip freeze --all - - name: Run unit_test (Linux) + - name: Run keras_unit_test (Linux) shell: bash if: runner.os == 'Linux' run: | - export TF2ONNX_TEST_BACKEND=onnxruntime - export TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} - export TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} - export TF2ONNX_SKIP_TFJS_TESTS=True - export TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls - - - name: Run unit_test (Windows) - shell: pwsh - if: runner.os == 'Windows' - run: | - set TF2ONNX_TEST_BACKEND=onnxruntime - set TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} - set TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} - set TF2ONNX_SKIP_TFJS_TESTS=True - set TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls + python -c "import onnxruntime" + python -c "import onnxconverter_common" + pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml diff --git a/.github/workflows/keras_unit_test_ci.yml b/.github/workflows/keras_unit_test_ci.yml index d3adb640c..5580b5417 100644 --- a/.github/workflows/keras_unit_test_ci.yml +++ b/.github/workflows/keras_unit_test_ci.yml @@ -14,71 +14,85 @@ concurrency: cancel-in-progress: true jobs: - run_tests: + + Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py38-TF2.9) + uses: ./.github/actions/keras_unit_test + with: + tf_version: '2.9.0' + python_version: '3.8' + ort_version: '1.16.3' + onnx_version: '1.16.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py38-TF2.9-ubuntu) + path: ./**/test-results-*.xml + + Test_max_py_with_latest_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py39-TF2.15) + uses: ./.github/actions/keras_unit_test + with: + tf_version: '2.15.0' + python_version: '3.9' + ort_version: '1.16.3' + onnx_version: '1.16.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py39-TF2.15-ubuntu) + path: ./**/test-results-*.xml + + Extra_tests: strategy: fail-fast: false matrix: name: - - 'py38-tf2.9' - 'py39-tf2.10' - - 'py39-tf2.14' - 'py310-tf2.15' os: ['ubuntu-latest', 'windows-2022'] - opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] include: - - name: 'py38-tf2.9' - tf_version: '2.9.0' - python_version: '3.8' - name: 'py39-tf2.10' tf_version: '2.10.0' python_version: '3.9' - - name: 'py39-tf2.14' - tf_version: '2.14.0' - python_version: '3.9' - name: 'py310-tf2.15' tf_version: '2.15.0' python_version: '3.10' - runs-on: ${{ matrix.os }} steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - name: Checkout code uses: actions/checkout@v4 - - name: Install dependencies (TF-v${{ matrix.tf_version }}) - shell: bash - run: | - python -m pip install --upgrade pip - pip install onnxconverter-common - pip install onnx==${{ matrix.onnx_version }} - pip install h5py==3.7.0 - pip install parameterized - pip install timeout-decorator - pip install coloredlogs flatbuffers - pip install tensorflow==${{ matrix.tf_version }} - pip install pytest pytest-cov pytest-runner - pip install onnxruntime==${{ matrix.ort_version }} - pip uninstall -y protobuf - pip install "protobuf~=3.20" - pip install "numpy<2" - - pip install -e . - - echo "----- List all of depdencies:" - pip freeze --all - - - name: Run keras unit tests (${{ matrix.os }}) - run: | - python -c "import onnxruntime" - python -c "import onnxconverter_common" - pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml + - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.ort_version }}) + uses: ./.github/actions/keras_unit_test + with: + tf_version: '2.9.0' + python_version: '3.8' + ort_version: '1.16.3' + onnx_version: '1.16.1' - name: Upload Test Results if: always() @@ -92,7 +106,6 @@ jobs: matrix: tf_version: ['1.15.0'] python_version: ['3.7'] # Max version that supports tf 1.15 - opset_version: ['18', '15'] ort_version: ['1.14.1'] # Max version that supports python 3.7 onnx_version: ['1.14.1'] # Max version that supports python 3.7 os: ['ubuntu-latest', 'windows-2022'] @@ -142,10 +155,9 @@ jobs: name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) path: ./**/test-results*.xml - publish-test-results: name: "Publish Tests Results to Github" - needs: run_tests + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests, run_tests_tf_15] runs-on: ubuntu-latest permissions: checks: write @@ -161,22 +173,3 @@ jobs: uses: EnricoMi/publish-unit-test-result-action@v2 with: files: "artifacts/**/*.xml" - - publish-test-results-tf-15: - name: "Publish Tests Results(TF15) to Github" - needs: run_tests_tf_15 - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - if: always() - steps: - - name: Download Artifacts - uses: actions/download-artifact@v3 - with: - path: artifacts - - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - with: - files: "artifacts/**/*.xml" \ No newline at end of file diff --git a/.github/workflows/pretrained_model_test_ci.yml b/.github/workflows/pretrained_model_test_ci.yml index 25585fde7..7c48e09d6 100644 --- a/.github/workflows/pretrained_model_test_ci.yml +++ b/.github/workflows/pretrained_model_test_ci.yml @@ -75,8 +75,8 @@ jobs: matrix: name: - 'py38-tf2.13' - - 'py39-tf2.14' - os: ['windows-2022'] + - 'py310-tf2.15' + os: ['ubuntu-latest', 'windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] @@ -85,9 +85,9 @@ jobs: - name: 'py38-tf2.13' tf_version: '2.13.0' python_version: '3.8' - - name: 'py39-tf2.14' - tf_version: '2.14.0' - python_version: '3.9' + - name: 'py310-tf2.15' + tf_version: '2.15.0' + python_version: '3.10' - name: 'py37-tf1.15' tf_version: '1.15.5' python_version: '3.7' diff --git a/.github/workflows/unit_test_ci.yml b/.github/workflows/unit_test_ci.yml index 71193fc3c..82de6441e 100644 --- a/.github/workflows/unit_test_ci.yml +++ b/.github/workflows/unit_test_ci.yml @@ -75,8 +75,8 @@ jobs: matrix: name: - 'py38-tf2.13' - - 'py39-tf2.14' - os: ['windows-2022'] + - 'py310-tf2.15' + os: ['ubuntu-latest', 'windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] @@ -85,9 +85,9 @@ jobs: - name: 'py38-tf2.13' tf_version: '2.13.0' python_version: '3.8' - - name: 'py39-tf2.14' - tf_version: '2.14.0' - python_version: '3.9' + - name: 'py310-tf2.15' + tf_version: '2.15.0' + python_version: '3.10' - name: 'py37-tf1.15' tf_version: '1.15.5' python_version: '3.7' From d2a3c518bd9d9b3b5836118b0f386fd9264b6806 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 16:36:49 +0000 Subject: [PATCH 07/13] Add required jobs for keras2onnx application test. Signed-off-by: Jay Zhang --- .../actions/keras_application_test/action.yml | 78 +++++----- .github/actions/keras_unit_test/action.yml | 2 +- .../actions/pretrained_model_test/action.yml | 2 +- .../workflows/keras_application_test_ci.yml | 138 ++++++++---------- .github/workflows/keras_unit_test_ci.yml | 24 ++- .../workflows/pretrained_model_test_ci.yml | 12 +- .github/workflows/unit_test_ci.yml | 12 +- 7 files changed, 123 insertions(+), 145 deletions(-) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index f3d0ea1e7..c383bfa52 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -1,8 +1,6 @@ -name: Unit Test Run +name: Keras2onnx Application Test Run inputs: - os: - description: 'OS type' tf_version: description: 'TensorFlow version' python_version: @@ -11,10 +9,6 @@ inputs: description: 'ONNXRuntime version' onnx_version: description: 'ONNX version' - opset_version: - description: 'OPSET version' - skip_tflite: - description: 'Skip TFLite tests' runs: using: "composite" @@ -27,38 +21,46 @@ runs: - name: Install dependencies (TF-v${{ inputs.tf_version }}) shell: bash run: | - chmod +x ./tests/utils/setup_test_env.sh - ./tests/utils/setup_test_env.sh ${{ inputs.tf_version }} ${{ inputs.ort_version }} ${{ inputs.onnx_version }} + python -m pip install --upgrade pip + pip install onnxconverter-common + pip install onnx==${{ matrix.onnx_version }} + pip uninstall -y protobuf + pip install "protobuf~=3.20" + pip install h5py==3.7.0 + pip install parameterized + pip install timeout-decorator + pip install coloredlogs flatbuffers + pip install tensorflow==${{ matrix.tf_version }} + pip install onnxruntime==${{ matrix.ort_version }} + pip install Pillow==8.2.0 + pip install opencv-python + pip install tqdm + pip install keras-segmentation==0.2.0 + git clone https://github.com/matterport/Mask_RCNN + cd Mask_RCNN + pip install -r requirements.txt + python setup.py install + cd .. + pip install matplotlib + git clone https://github.com/qqwweee/keras-yolo3 + pip install keras-resnet + pip install git+https://www.github.com/keras-team/keras-contrib.git + pip install keras-tcn==2.8.3 + pip install git+https://github.com/qubvel/efficientnet + pip install transformers==4.2.0 + pip install keras-self-attention + pip install pytest pytest-cov pytest-runner + pip install "numpy<2" - - name: Fix Paths (Windows only) - shell: pwsh - if: runner.os == 'Windows' - run: | - $site_dir = python -c "import site; print(site.getsitepackages()[1])" - echo "##vso[task.prependpath]$site_dir\numpy\.libs" - $base_dir = python -c "import site; print(site.getsitepackages()[0])" - echo "##vso[task.prependpath]$base_dir/Library/bin" + pip install -e . - - name: Run unit_test (Linux) - shell: bash - if: runner.os == 'Linux' - run: | - export TF2ONNX_TEST_BACKEND=onnxruntime - export TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} - export TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} - export TF2ONNX_SKIP_TFJS_TESTS=True - export TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls + echo "----- List all of depdencies:" + pip freeze --all - - name: Run unit_test (Windows) - shell: pwsh - if: runner.os == 'Windows' + - name: Run keras_application_test (${{ runner.os }}) + shell: bash run: | - set TF2ONNX_TEST_BACKEND=onnxruntime - set TF2ONNX_TEST_OPSET=${{ inputs.opset_version }} - set TF2ONNX_SKIP_TFLITE_TESTS=${{ inputs.skip_tflite }} - set TF2ONNX_SKIP_TFJS_TESTS=True - set TF2ONNX_SKIP_TF_TESTS=False - python -m pytest --cov=tf2onnx --cov-report=term --disable-pytest-warnings -r s tests --cov-append --junitxml=junit/test-results.xml - ls + python -c "import onnxruntime" + pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml + cd tests/keras2onnx_applications/nightly_build + python run_all_v2.py diff --git a/.github/actions/keras_unit_test/action.yml b/.github/actions/keras_unit_test/action.yml index c0a592d4b..6c8cb0978 100644 --- a/.github/actions/keras_unit_test/action.yml +++ b/.github/actions/keras_unit_test/action.yml @@ -1,4 +1,4 @@ -name: Unit Test Run +name: Keras2onnx Unit Test Run inputs: tf_version: diff --git a/.github/actions/pretrained_model_test/action.yml b/.github/actions/pretrained_model_test/action.yml index 60e2e35b2..f6d69d99a 100644 --- a/.github/actions/pretrained_model_test/action.yml +++ b/.github/actions/pretrained_model_test/action.yml @@ -1,4 +1,4 @@ -name: Unit Test Run +name: Pretrained Model Test Run inputs: tf_version: diff --git a/.github/workflows/keras_application_test_ci.yml b/.github/workflows/keras_application_test_ci.yml index 1e4554f88..5bd0433de 100644 --- a/.github/workflows/keras_application_test_ci.yml +++ b/.github/workflows/keras_application_test_ci.yml @@ -14,91 +14,89 @@ concurrency: cancel-in-progress: true jobs: - run_tests: + Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py38-TF2.9) + uses: ./.github/actions/keras_application_test + with: + tf_version: '2.9.0' + python_version: '3.8' + ort_version: '1.16.3' + onnx_version: '1.16.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py38-TF2.9-ubuntu) + path: ./**/test-results-*.xml + + Test_max_py_with_latest_tf: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py310-TF2.15) + uses: ./.github/actions/keras_application_test + with: + tf_version: '2.15.0' + python_version: '3.10' + ort_version: '1.16.3' + onnx_version: '1.16.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py310-TF2.15-ubuntu) + path: ./**/test-results-*.xml + + Extra_tests: strategy: fail-fast: false matrix: name: - - 'py38-tf2.9' - 'py39-tf2.10' - 'py39-tf2.15' os: ['ubuntu-latest', 'windows-2022'] - opset_version: ['18', '15'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] include: - - name: 'py38-tf2.9' - tf_version: '2.9.0' - python_version: '3.8' - name: 'py39-tf2.10' tf_version: '2.10.0' python_version: '3.9' - name: 'py39-tf2.15' tf_version: '2.15.0' python_version: '3.9' - runs-on: ${{ matrix.os }} steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - name: Checkout code uses: actions/checkout@v4 - - name: Install dependencies (TF-v${{ matrix.tf_version }}) - shell: bash - run: | - python -m pip install --upgrade pip - pip install onnxconverter-common - pip install onnx==${{ matrix.onnx_version }} - pip uninstall -y protobuf - pip install "protobuf~=3.20" - pip install h5py==3.7.0 - pip install parameterized - pip install timeout-decorator - pip install coloredlogs flatbuffers - pip install tensorflow==${{ matrix.tf_version }} - pip install onnxruntime==${{ matrix.ort_version }} - pip install Pillow==8.2.0 - pip install opencv-python - pip install tqdm - pip install keras-segmentation==0.2.0 - git clone https://github.com/matterport/Mask_RCNN - cd Mask_RCNN - pip install -r requirements.txt - python setup.py install - cd .. - pip install matplotlib - git clone https://github.com/qqwweee/keras-yolo3 - pip install keras-resnet - pip install git+https://www.github.com/keras-team/keras-contrib.git - pip install keras-tcn==2.8.3 - pip install git+https://github.com/qubvel/efficientnet - pip install transformers==4.2.0 - pip install keras-self-attention - pip install pytest pytest-cov pytest-runner - pip install "numpy<2" - - pip install -e . - - echo "----- List all of depdencies:" - pip freeze --all - - - name: Run keras application tests (${{ matrix.os }}) - run: | - python -c "import onnxruntime" - pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml - cd tests/keras2onnx_applications/nightly_build - python run_all_v2.py - + - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.ort_version }}) + uses: ./.github/actions/keras_application_test + with: + tf_version: ${{ matrix.tf_version }} + python_version: ${{ matrix.python_version }} + ort_version: ${{ matrix.ort_version }} + onnx_version: ${{ matrix.onnx_version }} - name: Upload Test Results if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) + name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml run_tests_tf_15: @@ -106,7 +104,6 @@ jobs: matrix: tf_version: ['1.15.0'] python_version: ['3.7'] # Max version that supports tf 1.15 - opset_version: ['18', '15'] ort_version: ['1.14.1'] # Max version that supports python 3.7 onnx_version: ['1.14.1'] # Max version that supports python 3.7 os: ['ubuntu-latest', 'windows-2022'] @@ -179,7 +176,7 @@ jobs: publish-test-results: name: "Publish Tests Results to Github" - needs: run_tests + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests, run_tests_tf_15] runs-on: ubuntu-latest permissions: checks: write @@ -195,22 +192,3 @@ jobs: uses: EnricoMi/publish-unit-test-result-action@v2 with: files: "artifacts/**/*.xml" - - publish-test-results-tf-15: - name: "Publish Tests Results(TF15) to Github" - needs: run_tests_tf_15 - runs-on: ubuntu-latest - permissions: - checks: write - pull-requests: write - if: always() - steps: - - name: Download Artifacts - uses: actions/download-artifact@v3 - with: - path: artifacts - - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - with: - files: "artifacts/**/*.xml" \ No newline at end of file diff --git a/.github/workflows/keras_unit_test_ci.yml b/.github/workflows/keras_unit_test_ci.yml index 5580b5417..35c11d980 100644 --- a/.github/workflows/keras_unit_test_ci.yml +++ b/.github/workflows/keras_unit_test_ci.yml @@ -14,7 +14,6 @@ concurrency: cancel-in-progress: true jobs: - Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. strategy: fail-fast: false @@ -48,11 +47,11 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Run Tests (Py39-TF2.15) + - name: Run Tests (Py310-TF2.15) uses: ./.github/actions/keras_unit_test with: tf_version: '2.15.0' - python_version: '3.9' + python_version: '3.10' ort_version: '1.16.3' onnx_version: '1.16.1' @@ -60,7 +59,7 @@ jobs: if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (Py39-TF2.15-ubuntu) + name: Test Results (Py310-TF2.15-ubuntu) path: ./**/test-results-*.xml Extra_tests: @@ -69,7 +68,7 @@ jobs: matrix: name: - 'py39-tf2.10' - - 'py310-tf2.15' + - 'py39-tf2.15' os: ['ubuntu-latest', 'windows-2022'] ort_version: ['1.16.3'] onnx_version: ['1.16.1'] @@ -77,9 +76,9 @@ jobs: - name: 'py39-tf2.10' tf_version: '2.10.0' python_version: '3.9' - - name: 'py310-tf2.15' + - name: 'py39-tf2.15' tf_version: '2.15.0' - python_version: '3.10' + python_version: '3.9' runs-on: ${{ matrix.os }} steps: @@ -89,16 +88,15 @@ jobs: - name: Run Tests (Py${{ matrix.python_version }}_TF${{ matrix.tf_version }}_${{ matrix.os }}_${{ matrix.ort_version }}) uses: ./.github/actions/keras_unit_test with: - tf_version: '2.9.0' - python_version: '3.8' - ort_version: '1.16.3' - onnx_version: '1.16.1' - + tf_version: ${{ matrix.tf_version }} + python_version: ${{ matrix.python_version }} + ort_version: ${{ matrix.ort_version }} + onnx_version: ${{ matrix.onnx_version }} - name: Upload Test Results if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) + name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml run_tests_tf_15: diff --git a/.github/workflows/pretrained_model_test_ci.yml b/.github/workflows/pretrained_model_test_ci.yml index 7c48e09d6..e82968fc3 100644 --- a/.github/workflows/pretrained_model_test_ci.yml +++ b/.github/workflows/pretrained_model_test_ci.yml @@ -51,12 +51,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Run Tests (Py39-TF2.15-18) + - name: Run Tests (Py310-TF2.15-18) uses: ./.github/actions/pretrained_model_test with: os: 'ubuntu-latest' tf_version: '2.15.0' - python_version: '3.9' + python_version: '3.10' ort_version: '1.16.3' onnx_version: '1.16.1' opset_version: '18' @@ -66,7 +66,7 @@ jobs: if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (Py39-TF2.15-18-ubuntu) + name: Test Results (Py310-TF2.15-18-ubuntu) path: ./**/test-results-*.xml Extra_tests: @@ -75,7 +75,7 @@ jobs: matrix: name: - 'py38-tf2.13' - - 'py310-tf2.15' + - 'py39-tf2.15' os: ['ubuntu-latest', 'windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] @@ -85,9 +85,9 @@ jobs: - name: 'py38-tf2.13' tf_version: '2.13.0' python_version: '3.8' - - name: 'py310-tf2.15' + - name: 'py39-tf2.15' tf_version: '2.15.0' - python_version: '3.10' + python_version: '3.9' - name: 'py37-tf1.15' tf_version: '1.15.5' python_version: '3.7' diff --git a/.github/workflows/unit_test_ci.yml b/.github/workflows/unit_test_ci.yml index 82de6441e..1dcbef980 100644 --- a/.github/workflows/unit_test_ci.yml +++ b/.github/workflows/unit_test_ci.yml @@ -51,12 +51,12 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Run Tests (Py39-TF2.15-18) + - name: Run Tests (Py310-TF2.15-18) uses: ./.github/actions/unit_test with: os: 'ubuntu-latest' tf_version: '2.15.0' - python_version: '3.9' + python_version: '3.10' ort_version: '1.16.3' onnx_version: '1.16.1' opset_version: '18' @@ -66,7 +66,7 @@ jobs: if: always() uses: actions/upload-artifact@v3 with: - name: Test Results (Py39-TF2.15-18-ubuntu) + name: Test Results (Py310-TF2.15-18-ubuntu) path: ./**/test-results-*.xml Extra_tests: @@ -75,7 +75,7 @@ jobs: matrix: name: - 'py38-tf2.13' - - 'py310-tf2.15' + - 'py39-tf2.15' os: ['ubuntu-latest', 'windows-2022'] opset_version: ['18', '15'] ort_version: ['1.16.3'] @@ -85,9 +85,9 @@ jobs: - name: 'py38-tf2.13' tf_version: '2.13.0' python_version: '3.8' - - name: 'py310-tf2.15' + - name: 'py39-tf2.15' tf_version: '2.15.0' - python_version: '3.10' + python_version: '3.9' - name: 'py37-tf1.15' tf_version: '1.15.5' python_version: '3.7' From e4f5fd834623a0afc4c1c598951cb318eacf2d7f Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 16:39:16 +0000 Subject: [PATCH 08/13] Remove matrix. Signed-off-by: Jay Zhang --- .github/actions/keras_application_test/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index c383bfa52..bb55c0961 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -23,15 +23,15 @@ runs: run: | python -m pip install --upgrade pip pip install onnxconverter-common - pip install onnx==${{ matrix.onnx_version }} + pip install onnx==${{ inputs.onnx_version }} pip uninstall -y protobuf pip install "protobuf~=3.20" pip install h5py==3.7.0 pip install parameterized pip install timeout-decorator pip install coloredlogs flatbuffers - pip install tensorflow==${{ matrix.tf_version }} - pip install onnxruntime==${{ matrix.ort_version }} + pip install tensorflow==${{ inputs.tf_version }} + pip install onnxruntime==${{ inputs.ort_version }} pip install Pillow==8.2.0 pip install opencv-python pip install tqdm From 95915ce0af8777cc2720aec6d58154c788aef84d Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Tue, 25 Jun 2024 16:42:39 +0000 Subject: [PATCH 09/13] Fix a bug. Signed-off-by: Jay Zhang --- .github/workflows/keras_application_test_ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/keras_application_test_ci.yml b/.github/workflows/keras_application_test_ci.yml index 5bd0433de..f939485f6 100644 --- a/.github/workflows/keras_application_test_ci.yml +++ b/.github/workflows/keras_application_test_ci.yml @@ -14,6 +14,7 @@ concurrency: cancel-in-progress: true jobs: + Test_min_py_with_min_tf: # Do not change this name because it is used in Ruleset of this repo. strategy: fail-fast: false From 4231966efacf996c93379889ef5528f36c100bd2 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Wed, 26 Jun 2024 03:03:46 +0000 Subject: [PATCH 10/13] Install tokenizers manually. Signed-off-by: Jay Zhang --- .github/actions/keras_application_test/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index bb55c0961..811089d7e 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -28,6 +28,7 @@ runs: pip install "protobuf~=3.20" pip install h5py==3.7.0 pip install parameterized + pip install tokenizers pip install timeout-decorator pip install coloredlogs flatbuffers pip install tensorflow==${{ inputs.tf_version }} From b9c1fe807d0bd667b17cfda9a0d037479c4a16c2 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Wed, 26 Jun 2024 06:09:39 +0000 Subject: [PATCH 11/13] Refresh transformers version. Signed-off-by: Jay Zhang --- .github/actions/keras_application_test/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index 811089d7e..b0469973b 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -48,7 +48,7 @@ runs: pip install git+https://www.github.com/keras-team/keras-contrib.git pip install keras-tcn==2.8.3 pip install git+https://github.com/qubvel/efficientnet - pip install transformers==4.2.0 + pip install transformers pip install keras-self-attention pip install pytest pytest-cov pytest-runner pip install "numpy<2" From 28407dc2b8c2a20cb894fcf2b779ae4d0cca4a6d Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Wed, 26 Jun 2024 15:03:46 +0800 Subject: [PATCH 12/13] Update keras py37 testing. Signed-off-by: Jay Zhang --- .../actions/keras_application_test/action.yml | 10 +- .../workflows/keras_application_test_ci.yml | 174 ++++++++++-------- .github/workflows/keras_unit_test_ci.yml | 132 +++++++------ 3 files changed, 185 insertions(+), 131 deletions(-) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index b0469973b..9e5a6078f 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -28,7 +28,6 @@ runs: pip install "protobuf~=3.20" pip install h5py==3.7.0 pip install parameterized - pip install tokenizers pip install timeout-decorator pip install coloredlogs flatbuffers pip install tensorflow==${{ inputs.tf_version }} @@ -48,7 +47,14 @@ runs: pip install git+https://www.github.com/keras-team/keras-contrib.git pip install keras-tcn==2.8.3 pip install git+https://github.com/qubvel/efficientnet - pip install transformers + if [[ ${{ inputs.tf_version }} == 1.* ]]; then + pip install keras==2.3.1 + pip install transformers==4.2.0 + pip uninstall -y h5py + pip install h5py==2.9.0 + else + pip install transformers + fi pip install keras-self-attention pip install pytest pytest-cov pytest-runner pip install "numpy<2" diff --git a/.github/workflows/keras_application_test_ci.yml b/.github/workflows/keras_application_test_ci.yml index f939485f6..59cf7cc0a 100644 --- a/.github/workflows/keras_application_test_ci.yml +++ b/.github/workflows/keras_application_test_ci.yml @@ -63,6 +63,30 @@ jobs: name: Test Results (Py310-TF2.15-ubuntu) path: ./**/test-results-*.xml + Test_py37_with_tf1_15: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py37-TF1.15) + uses: ./.github/actions/keras_application_test + with: + tf_version: '1.15.5' + python_version: '3.7' + ort_version: '1.14.1' + onnx_version: '1.14.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py37-TF1.15-ubuntu) + path: ./**/test-results-*.xml + Extra_tests: strategy: fail-fast: false @@ -100,84 +124,84 @@ jobs: name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml - run_tests_tf_15: - strategy: - matrix: - tf_version: ['1.15.0'] - python_version: ['3.7'] # Max version that supports tf 1.15 - ort_version: ['1.14.1'] # Max version that supports python 3.7 - onnx_version: ['1.14.1'] # Max version that supports python 3.7 - os: ['ubuntu-latest', 'windows-2022'] - - runs-on: ${{ matrix.os }} - - steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies (TF-v${{ matrix.tf_version }}) - shell: bash - run: | - python -m pip install --upgrade pip - pip install onnxconverter-common - pip install onnx==${{ matrix.onnx_version }} - pip uninstall -y protobuf - pip install "protobuf~=3.20" - pip install h5py==3.7.0 - pip install parameterized - pip install timeout-decorator - pip install coloredlogs flatbuffers - pip install tensorflow==${{ matrix.tf_version }} - pip install keras==2.3.1 - pip install onnxruntime==${{ matrix.ort_version }} - pip install Pillow==8.2.0 - pip install opencv-python - pip install tqdm - pip install keras-segmentation==0.2.0 - git clone https://github.com/matterport/Mask_RCNN - cd Mask_RCNN - pip install -r requirements.txt - python setup.py install - cd .. - pip install matplotlib - git clone https://github.com/qqwweee/keras-yolo3 - pip install keras-resnet - pip install git+https://www.github.com/keras-team/keras-contrib.git - pip install keras-tcn==2.8.3 - pip install git+https://github.com/qubvel/efficientnet - pip install transformers==4.2.0 - pip install keras-self-attention - pip install pytest pytest-cov pytest-runner - pip install numpy==1.19.0 - pip install h5py==2.9.0 - - pip install -e . - - echo "----- List all of depdencies:" - pip freeze --all - - - name: Run keras application tests (${{ matrix.os }}) - run: | - python -c "import onnxruntime" - pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml - cd tests/keras2onnx_applications/nightly_build - python run_all_v2.py --exclude "test_keras_applications_v2.py" - - - name: Upload Test Results - if: always() - uses: actions/upload-artifact@v3 - with: - name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) - path: ./**/test-results*.xml + # run_tests_tf_15: + # strategy: + # matrix: + # tf_version: ['1.15.0'] + # python_version: ['3.7'] # Max version that supports tf 1.15 + # ort_version: ['1.14.1'] # Max version that supports python 3.7 + # onnx_version: ['1.14.1'] # Max version that supports python 3.7 + # os: ['ubuntu-latest', 'windows-2022'] + + # runs-on: ${{ matrix.os }} + + # steps: + # - name: Set up Python (${{ matrix.python_version }}) + # uses: actions/setup-python@v5 + # with: + # python-version: ${{ matrix.python_version }} + + # - name: Checkout code + # uses: actions/checkout@v4 + + # - name: Install dependencies (TF-v${{ matrix.tf_version }}) + # shell: bash + # run: | + # python -m pip install --upgrade pip + # pip install onnxconverter-common + # pip install onnx==${{ matrix.onnx_version }} + # pip uninstall -y protobuf + # pip install "protobuf~=3.20" + # pip install h5py==3.7.0 + # pip install parameterized + # pip install timeout-decorator + # pip install coloredlogs flatbuffers + # pip install tensorflow==${{ matrix.tf_version }} + # pip install keras==2.3.1 + # pip install onnxruntime==${{ matrix.ort_version }} + # pip install Pillow==8.2.0 + # pip install opencv-python + # pip install tqdm + # pip install keras-segmentation==0.2.0 + # git clone https://github.com/matterport/Mask_RCNN + # cd Mask_RCNN + # pip install -r requirements.txt + # python setup.py install + # cd .. + # pip install matplotlib + # git clone https://github.com/qqwweee/keras-yolo3 + # pip install keras-resnet + # pip install git+https://www.github.com/keras-team/keras-contrib.git + # pip install keras-tcn==2.8.3 + # pip install git+https://github.com/qubvel/efficientnet + # pip install transformers==4.2.0 + # pip install keras-self-attention + # pip install pytest pytest-cov pytest-runner + # pip install numpy==1.19.0 + # pip install h5py==2.9.0 + + # pip install -e . + + # echo "----- List all of depdencies:" + # pip freeze --all + + # - name: Run keras application tests (${{ matrix.os }}) + # run: | + # python -c "import onnxruntime" + # pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml + # cd tests/keras2onnx_applications/nightly_build + # python run_all_v2.py --exclude "test_keras_applications_v2.py" + + # - name: Upload Test Results + # if: always() + # uses: actions/upload-artifact@v3 + # with: + # name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) + # path: ./**/test-results*.xml publish-test-results: name: "Publish Tests Results to Github" - needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests, run_tests_tf_15] + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Test_py37_with_tf1_15, Extra_tests] runs-on: ubuntu-latest permissions: checks: write diff --git a/.github/workflows/keras_unit_test_ci.yml b/.github/workflows/keras_unit_test_ci.yml index 35c11d980..5af70c511 100644 --- a/.github/workflows/keras_unit_test_ci.yml +++ b/.github/workflows/keras_unit_test_ci.yml @@ -62,6 +62,30 @@ jobs: name: Test Results (Py310-TF2.15-ubuntu) path: ./**/test-results-*.xml + Test_py37_with_tf1_15: # Do not change this name because it is used in Ruleset of this repo. + strategy: + fail-fast: false + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Run Tests (Py37-TF1.15) + uses: ./.github/actions/keras_unit_test + with: + tf_version: '1.15.5' + python_version: '3.7' + ort_version: '1.14.1' + onnx_version: '1.14.1' + + - name: Upload Test Results + if: always() + uses: actions/upload-artifact@v3 + with: + name: Test Results (Py37-TF1.15-ubuntu) + path: ./**/test-results-*.xml + Extra_tests: strategy: fail-fast: false @@ -99,63 +123,63 @@ jobs: name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml - run_tests_tf_15: - strategy: - matrix: - tf_version: ['1.15.0'] - python_version: ['3.7'] # Max version that supports tf 1.15 - ort_version: ['1.14.1'] # Max version that supports python 3.7 - onnx_version: ['1.14.1'] # Max version that supports python 3.7 - os: ['ubuntu-latest', 'windows-2022'] - - runs-on: ${{ matrix.os }} - - steps: - - name: Set up Python (${{ matrix.python_version }}) - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python_version }} - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install dependencies (tf v${{ matrix.tf_version }}) - shell: bash - run: | - python -m pip install --upgrade pip - pip install onnxconverter-common - pip install onnx==${{ matrix.onnx_version }} - pip uninstall -y protobuf - pip install "protobuf~=3.20" - pip install h5py==3.7.0 - pip install parameterized - pip install timeout-decorator - pip install coloredlogs flatbuffers - pip install tensorflow==${{ matrix.tf_version }} - pip install pytest pytest-cov pytest-runner - pip install onnxruntime==${{ matrix.ort_version }} - pip install numpy==1.19.0 - pip install -e . - - echo "----- List all of depdencies:" - pip freeze --all - - - name: Run keras unit tests (${{ matrix.os }}) - run: | - python -c "import onnxruntime" - python -c "import onnxconverter_common" - pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml - - - name: Upload Test Results - if: always() - uses: actions/upload-artifact@v3 - with: - name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) - path: ./**/test-results*.xml + # run_tests_tf_15: + # strategy: + # matrix: + # tf_version: ['1.15.0'] + # python_version: ['3.7'] # Max version that supports tf 1.15 + # ort_version: ['1.14.1'] # Max version that supports python 3.7 + # onnx_version: ['1.14.1'] # Max version that supports python 3.7 + # os: ['ubuntu-latest', 'windows-2022'] + + # runs-on: ${{ matrix.os }} + + # steps: + # - name: Set up Python (${{ matrix.python_version }}) + # uses: actions/setup-python@v5 + # with: + # python-version: ${{ matrix.python_version }} + + # - name: Checkout code + # uses: actions/checkout@v4 + + # - name: Install dependencies (tf v${{ matrix.tf_version }}) + # shell: bash + # run: | + # python -m pip install --upgrade pip + # pip install onnxconverter-common + # pip install onnx==${{ matrix.onnx_version }} + # pip uninstall -y protobuf + # pip install "protobuf~=3.20" + # pip install h5py==3.7.0 + # pip install parameterized + # pip install timeout-decorator + # pip install coloredlogs flatbuffers + # pip install tensorflow==${{ matrix.tf_version }} + # pip install pytest pytest-cov pytest-runner + # pip install onnxruntime==${{ matrix.ort_version }} + # pip install numpy==1.19.0 + # pip install -e . + + # echo "----- List all of depdencies:" + # pip freeze --all + + # - name: Run keras unit tests (${{ matrix.os }}) + # run: | + # python -c "import onnxruntime" + # python -c "import onnxconverter_common" + # pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml + + # - name: Upload Test Results + # if: always() + # uses: actions/upload-artifact@v3 + # with: + # name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) + # path: ./**/test-results*.xml publish-test-results: name: "Publish Tests Results to Github" - needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Extra_tests, run_tests_tf_15] + needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Test_py37_with_tf1_15, Extra_tests] runs-on: ubuntu-latest permissions: checks: write From 5b9dbe7abddc42be9d60f25d4f8340557b235961 Mon Sep 17 00:00:00 2001 From: Jay Zhang Date: Wed, 26 Jun 2024 15:22:38 +0800 Subject: [PATCH 13/13] Remove unuseful code. Signed-off-by: Jay Zhang --- .../actions/keras_application_test/action.yml | 8 +- .github/actions/keras_unit_test/action.yml | 6 +- .../workflows/keras_application_test_ci.yml | 75 ------------------- .github/workflows/keras_unit_test_ci.yml | 54 ------------- 4 files changed, 10 insertions(+), 133 deletions(-) diff --git a/.github/actions/keras_application_test/action.yml b/.github/actions/keras_application_test/action.yml index 9e5a6078f..7148e417b 100644 --- a/.github/actions/keras_application_test/action.yml +++ b/.github/actions/keras_application_test/action.yml @@ -47,17 +47,19 @@ runs: pip install git+https://www.github.com/keras-team/keras-contrib.git pip install keras-tcn==2.8.3 pip install git+https://github.com/qubvel/efficientnet + pip install keras-self-attention + pip install pytest pytest-cov pytest-runner + if [[ ${{ inputs.tf_version }} == 1.* ]]; then pip install keras==2.3.1 pip install transformers==4.2.0 pip uninstall -y h5py pip install h5py==2.9.0 + pip install numpy==1.19.0 else pip install transformers + pip install "numpy<2" fi - pip install keras-self-attention - pip install pytest pytest-cov pytest-runner - pip install "numpy<2" pip install -e . diff --git a/.github/actions/keras_unit_test/action.yml b/.github/actions/keras_unit_test/action.yml index 6c8cb0978..4c78945f1 100644 --- a/.github/actions/keras_unit_test/action.yml +++ b/.github/actions/keras_unit_test/action.yml @@ -33,7 +33,11 @@ runs: pip install onnxruntime==${{ inputs.ort_version }} pip uninstall -y protobuf pip install "protobuf~=3.20" - pip install "numpy<2" + if [[ ${{ inputs.tf_version }} == 1.* ]]; then + pip install numpy==1.19.0 + else + pip install "numpy<2" + fi pip install -e . diff --git a/.github/workflows/keras_application_test_ci.yml b/.github/workflows/keras_application_test_ci.yml index 59cf7cc0a..c962b1dc8 100644 --- a/.github/workflows/keras_application_test_ci.yml +++ b/.github/workflows/keras_application_test_ci.yml @@ -124,81 +124,6 @@ jobs: name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml - # run_tests_tf_15: - # strategy: - # matrix: - # tf_version: ['1.15.0'] - # python_version: ['3.7'] # Max version that supports tf 1.15 - # ort_version: ['1.14.1'] # Max version that supports python 3.7 - # onnx_version: ['1.14.1'] # Max version that supports python 3.7 - # os: ['ubuntu-latest', 'windows-2022'] - - # runs-on: ${{ matrix.os }} - - # steps: - # - name: Set up Python (${{ matrix.python_version }}) - # uses: actions/setup-python@v5 - # with: - # python-version: ${{ matrix.python_version }} - - # - name: Checkout code - # uses: actions/checkout@v4 - - # - name: Install dependencies (TF-v${{ matrix.tf_version }}) - # shell: bash - # run: | - # python -m pip install --upgrade pip - # pip install onnxconverter-common - # pip install onnx==${{ matrix.onnx_version }} - # pip uninstall -y protobuf - # pip install "protobuf~=3.20" - # pip install h5py==3.7.0 - # pip install parameterized - # pip install timeout-decorator - # pip install coloredlogs flatbuffers - # pip install tensorflow==${{ matrix.tf_version }} - # pip install keras==2.3.1 - # pip install onnxruntime==${{ matrix.ort_version }} - # pip install Pillow==8.2.0 - # pip install opencv-python - # pip install tqdm - # pip install keras-segmentation==0.2.0 - # git clone https://github.com/matterport/Mask_RCNN - # cd Mask_RCNN - # pip install -r requirements.txt - # python setup.py install - # cd .. - # pip install matplotlib - # git clone https://github.com/qqwweee/keras-yolo3 - # pip install keras-resnet - # pip install git+https://www.github.com/keras-team/keras-contrib.git - # pip install keras-tcn==2.8.3 - # pip install git+https://github.com/qubvel/efficientnet - # pip install transformers==4.2.0 - # pip install keras-self-attention - # pip install pytest pytest-cov pytest-runner - # pip install numpy==1.19.0 - # pip install h5py==2.9.0 - - # pip install -e . - - # echo "----- List all of depdencies:" - # pip freeze --all - - # - name: Run keras application tests (${{ matrix.os }}) - # run: | - # python -c "import onnxruntime" - # pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml - # cd tests/keras2onnx_applications/nightly_build - # python run_all_v2.py --exclude "test_keras_applications_v2.py" - - # - name: Upload Test Results - # if: always() - # uses: actions/upload-artifact@v3 - # with: - # name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) - # path: ./**/test-results*.xml - publish-test-results: name: "Publish Tests Results to Github" needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Test_py37_with_tf1_15, Extra_tests] diff --git a/.github/workflows/keras_unit_test_ci.yml b/.github/workflows/keras_unit_test_ci.yml index 5af70c511..7ef38d79a 100644 --- a/.github/workflows/keras_unit_test_ci.yml +++ b/.github/workflows/keras_unit_test_ci.yml @@ -123,60 +123,6 @@ jobs: name: Test Results (${{ matrix.python_version }}-${{ matrix.tf_version }}-${{ matrix.os }}) path: ./**/test-results*.xml - # run_tests_tf_15: - # strategy: - # matrix: - # tf_version: ['1.15.0'] - # python_version: ['3.7'] # Max version that supports tf 1.15 - # ort_version: ['1.14.1'] # Max version that supports python 3.7 - # onnx_version: ['1.14.1'] # Max version that supports python 3.7 - # os: ['ubuntu-latest', 'windows-2022'] - - # runs-on: ${{ matrix.os }} - - # steps: - # - name: Set up Python (${{ matrix.python_version }}) - # uses: actions/setup-python@v5 - # with: - # python-version: ${{ matrix.python_version }} - - # - name: Checkout code - # uses: actions/checkout@v4 - - # - name: Install dependencies (tf v${{ matrix.tf_version }}) - # shell: bash - # run: | - # python -m pip install --upgrade pip - # pip install onnxconverter-common - # pip install onnx==${{ matrix.onnx_version }} - # pip uninstall -y protobuf - # pip install "protobuf~=3.20" - # pip install h5py==3.7.0 - # pip install parameterized - # pip install timeout-decorator - # pip install coloredlogs flatbuffers - # pip install tensorflow==${{ matrix.tf_version }} - # pip install pytest pytest-cov pytest-runner - # pip install onnxruntime==${{ matrix.ort_version }} - # pip install numpy==1.19.0 - # pip install -e . - - # echo "----- List all of depdencies:" - # pip freeze --all - - # - name: Run keras unit tests (${{ matrix.os }}) - # run: | - # python -c "import onnxruntime" - # python -c "import onnxconverter_common" - # pytest tests/keras2onnx_unit_tests --doctest-modules --junitxml=junit/test-results.xml - - # - name: Upload Test Results - # if: always() - # uses: actions/upload-artifact@v3 - # with: - # name: Test Results (${{ matrix.tf_version }}-${{ matrix.python_version }}-${{ matrix.os }}) - # path: ./**/test-results*.xml - publish-test-results: name: "Publish Tests Results to Github" needs: [Test_min_py_with_min_tf, Test_max_py_with_latest_tf, Test_py37_with_tf1_15, Extra_tests]