Skip to content

Add gradient accumulation support for all backends, and enable optimizer EMA for JAX and torch #1232

Add gradient accumulation support for all backends, and enable optimizer EMA for JAX and torch

Add gradient accumulation support for all backends, and enable optimizer EMA for JAX and torch #1232

Workflow file for this run

name: Tests
on:
push:
branches: [ master ]
pull_request:
release:
types: [created]
permissions:
contents: read
jobs:
build:
strategy:
fail-fast: false
matrix:
python-version: [3.9]
backend: [tensorflow, jax, torch, numpy]
name: Run tests
runs-on: ubuntu-latest
env:
PYTHON: ${{ matrix.python-version }}
KERAS_HOME: .github/workflows/config/${{ matrix.backend }}
steps:
- uses: actions/checkout@v4
- name: Check for changes in keras/applications
uses: dorny/paths-filter@v2
id: filter
with:
filters: |
applications:
- 'keras/applications/**'
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Get pip cache dir
id: pip-cache
run: |
python -m pip install --upgrade pip setuptools
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}-${{ hashFiles('requirements.txt') }}
- name: Install dependencies
run: |
pip install -r requirements.txt --progress-bar off --upgrade
pip uninstall -y keras keras-nightly
pip install -e "." --progress-bar off --upgrade
- name: Test applications with pytest
if: ${{ steps.filter.outputs.applications == 'true' }}
run: |
pytest keras/applications --cov=keras/applications
coverage xml --include='keras/applications/*' -o apps-coverage.xml
- name: Codecov keras.applications
if: ${{ steps.filter.outputs.applications == 'true' }}
uses: codecov/codecov-action@v3
with:
env_vars: PYTHON,KERAS_HOME
flags: keras.applications,keras.applications-${{ matrix.backend }}
files: apps-coverage.xml
fail_ci_if_error: false
- name: Test integrations
if: ${{ matrix.backend != 'numpy'}}
run: |
python integration_tests/import_test.py
- name: Test TF-specific integrations
if: ${{ matrix.backend == 'tensorflow'}}
run: |
python integration_tests/tf_distribute_training_test.py
- name: Test Torch-specific integrations
if: ${{ matrix.backend == 'torch'}}
run: |
pytest integration_tests/torch_workflow_test.py
- name: Test with pytest
run: |
pytest keras --ignore keras/applications --cov=keras
coverage xml --omit='keras/applications/*' -o core-coverage.xml
- name: Codecov keras
uses: codecov/codecov-action@v3
with:
env_vars: PYTHON,KERAS_HOME
flags: keras,keras-${{ matrix.backend }}
files: core-coverage.xml
fail_ci_if_error: false
format:
name: Check the code format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Get pip cache dir
id: pip-cache
run: |
python -m pip install --upgrade pip setuptools
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: pip cache
uses: actions/cache@v3
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}-${{ hashFiles('requirements.txt') }}
- name: Install dependencies
run: |
pip install -r requirements.txt --progress-bar off --upgrade
pip uninstall -y keras keras-nightly
pip install -e "." --progress-bar off --upgrade
- name: Lint
run: bash shell/lint.sh