Skip to content

Commit

Permalink
Update requirements for Keras 3
Browse files Browse the repository at this point in the history
  • Loading branch information
sampathweb committed Nov 18, 2023
1 parent ba602ce commit 13e132c
Show file tree
Hide file tree
Showing 10 changed files with 114 additions and 135 deletions.
32 changes: 14 additions & 18 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ permissions:
contents: read

jobs:
keras2:
name: Test the code with tf.keras
keras_2:
name: Test the code with Keras 2
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Get pip cache dir
Expand All @@ -34,7 +34,7 @@ jobs:
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install tensorflow>=2.13.0
pip install tensorflow~=2.14
pip install torch>=2.0.1+cpu
pip install "jax[cpu]"
pip install keras-core
Expand All @@ -44,17 +44,17 @@ jobs:
TEST_CUSTOM_OPS: false
run: |
pytest keras_cv/ --ignore keras_cv/models/legacy/ --durations 0
multibackend:
name: Test the code with Keras Core
keras_3:
name: Test the code with Keras 3
strategy:
fail-fast: false
matrix:
backend: [tensorflow, jax, torch]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Get pip cache dir
Expand All @@ -71,11 +71,7 @@ jobs:
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install tensorflow>=2.13.0
pip install "jax[cpu]"
pip install torch>=2.0.1+cpu
pip install torchvision>=0.15.1
pip install keras-core
pip install -r reqirements.txt
pip install -e ".[tests]" --progress-bar off --upgrade
- name: Test with pytest
env:
Expand All @@ -99,9 +95,9 @@ jobs:
name: Check the code format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.9
uses: actions/setup-python@v1
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Get pip cache dir
Expand All @@ -118,7 +114,7 @@ jobs:
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install tensorflow>=2.13.0
pip install tensorflow~=2.14
pip install -e ".[tests]" --progress-bar off --upgrade
- name: Lint
run: bash shell/lint.sh
Expand All @@ -128,4 +124,4 @@ jobs:
source: '.'
extensions: 'h,c,cpp,hpp,cc'
clangFormatVersion: 14
style: google
style: google
2 changes: 1 addition & 1 deletion .github/workflows/devcontainer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
steps:

- name: Checkout (GitHub)
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Build and run dev container task
uses: devcontainers/[email protected]
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
pip install -r requirements.txt --progress-bar off
- name: Build wheel file
run: |
export BUILD_WITH_CUSTOM_OPS=false
python pip_build.py --nightly
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
Expand Down
133 changes: 33 additions & 100 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,105 +8,38 @@ permissions:
contents: read

jobs:
deploy-with-custom-ops:
# This job is currently skipped until we cut a release with custom ops.
if: false
name: Build and deploy release wheels with custom ops
runs-on: ${{ matrix.os }}
strategy:
matrix:
# To switch on windows-2022/latest, please verify the bazel version:
# https://github.com/bazelbuild/bazel/issues/14232#issuecomment-1011247429
os: ['macos-12', 'windows-2019', 'ubuntu-18.04']
py-version: ['3.9', '3.10', '3.11']
tf-version: ['2.13.0']
use-macos-arm: [false]
include:
- os: 'macos-12'
tf-version: '2.13.0'
py-version: '3.9'
use-macos-arm: true
- os: 'macos-12'
tf-version: '2.13.0'
py-version: '3.10'
use-macos-arm: true
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.py-version }}
- name: Get pip cache dir
id: pip-cache
run: |
python -m pip install --upgrade pip setuptools wheel auditwheel twine
echo "::set-output name=dir::$(pip cache dir)"
- name: pip cache
uses: actions/cache@v2
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
python -m pip install tensorflow-cpu==${{ matrix.tf-version }}
python -m pip install -e ".[tests]" --progress-bar off --upgrade
- name: Configure Build Environment
run: |
python build_deps/configure.py
- name: Reinstall TensorFlow (MacOS ARM)
if: ${{ matrix.os == 'macos-12' && matrix.use-macos-arm}}
run: |
python -m pip uninstall -y tensorflow-cpu
python -m pip install --platform=macosx_12_0_arm64 --no-deps --target=$(python -c 'import site; print(site.getsitepackages()[0])') --upgrade tensorflow-macos==${{ matrix.tf-version }}
- name: Bazel Build
if: ${{ ! matrix.use-macos-arm }}
run: |
export BUILD_WITH_CUSTOM_OPS=true
bazel build build_pip_pkg
- name: Bazel Build (MacOS ARM)
if: ${{ matrix.use-macos-arm}}
run: |
bazel build --cpu=darwin_arm64 --copt -mmacosx-version-min=12.0 --linkopt -mmacosx-version-min=12.0 build_pip_pkg
- name: Build wheels
run: |
export BUILD_WITH_CUSTOM_OPS=true
bazel-bin/build_pip_pkg wheels
- name: Repair wheels (manylinux)
if: ${{ matrix.os == 'ubuntu-18.04' }}
run: |
python -m pip install --upgrade patchelf==0.14
bash build_deps/tf_auditwheel_patch.sh
python -m auditwheel repair --plat manylinux2014_x86_64 wheels/*.whl
rm wheels/*.whl
mv wheelhouse/* wheels/
- name: Upload wheels
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload wheels/*
deploy-without-custom-ops:
name: Build and deploy release wheels without custom ops
run-test-for-release:
uses: ./.github/workflows/actions.yml
release:
name: Build and publish to PyPI
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.9
- name: Build wheels
run: |
pip install tensorflow==2.13.0
python -m pip install --upgrade setuptools wheel twine
python -m pip install --upgrade -r requirements.txt
export BUILD_WITH_CUSTOM_OPS=false
python pip_build.py
- name: Upload wheels
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
twine upload dist/*.whl
- uses: actions/checkout@v3
- name: Set up Python
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 "::set-output name=dir::$(pip cache dir)"
- name: pip cache
uses: actions/cache@v2
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install -r requirements.txt --progress-bar off
- name: Build a binary wheel and a source tarball
run: |
export BUILD_WITH_CUSTOM_OPS=false
python pip_build.py
- name: Publish distribution to PyPI
if: startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@master
with:
password: ${{ secrets.PYPI_API_TOKEN }}
15 changes: 15 additions & 0 deletions requirements-common.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Library deps.
absl-py
regex
pandas
keras-core>=0.1.6
tensorflow-datasets
pycocotools
# Tooling deps.
packaging
flake8
isort
black
pytest
build
namex
13 changes: 13 additions & 0 deletions requirements-jax-cuda.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Tensorflow cpu-only version.
tf-nightly-cpu==2.16.0.dev20231109 # Pin a working nightly until rc0.

# Torch cpu-only version.
--extra-index-url https://download.pytorch.org/whl/cpu
torch>=2.1.0
torchvision>=0.16.0

# Jax with cuda support.
--find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda12_pip]

-r requirements-common.txt
13 changes: 13 additions & 0 deletions requirements-tensorflow-cuda.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Tensorflow with cuda support.
--extra-index-url https://pypi.nvidia.com
tf-nightly[and-cuda]==2.16.0.dev20231109 # Pin a working nightly until rc0.

# Torch cpu-only version.
--extra-index-url https://download.pytorch.org/whl/cpu
torch>=2.1.0
torchvision>=0.16.0

# Jax cpu-only version.
jax[cpu]

-r requirements-common.txt
12 changes: 12 additions & 0 deletions requirements-torch-cuda.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Tensorflow cpu-only version.
tf-nightly-cpu==2.16.0.dev20231109 # Pin a working nightly until rc0.

# Torch with cuda support.
--extra-index-url https://download.pytorch.org/whl/cu118
torch==2.1.0
torchvision==0.16.0

# Jax cpu-only version.
jax[cpu]

-r requirements-common.txt
26 changes: 12 additions & 14 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
absl-py
packaging
pandas
tensorflow
tensorflow-datasets
flake8
regex
isort
black
pytest
pycocotools
keras-core
build
namex
# Tensorflow.
tf-nightly-cpu==2.16.0.dev20231109 # Pin a working nightly until rc0.

# Torch.
--extra-index-url https://download.pytorch.org/whl/cpu
torch>=2.1.0
torchvision>=0.16.0

# Jax.
jax[cpu]

-r requirements-common.txt
2 changes: 0 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ def is_pure(self):
"black[jupyter]",
"pytest",
"pycocotools",
"tensorflow",
"keras-core",
],
"examples": ["tensorflow_datasets", "matplotlib"],
},
Expand Down

0 comments on commit 13e132c

Please sign in to comment.