Skip to content

Commit 715803b

Browse files
authored
Build against tf2.8 (#2635)
* Build against tf2.8rc0 Co-authored-by: bhack <[email protected]> Co-authored-by: Xiaoquan Kong <[email protected]> Co-authored-by: Lukas Geiger <[email protected]>
1 parent 0587cde commit 715803b

18 files changed

+64
-36
lines changed

.github/workflows/release.yml

+15-10
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616

1717
env:
1818
MIN_PY_VERSION: '3.7'
19-
MAX_PY_VERSION: '3.9'
19+
MAX_PY_VERSION: '3.10'
2020

2121
jobs:
2222
test-with-bazel:
@@ -38,18 +38,23 @@ jobs:
3838
runs-on: ${{ matrix.os }}
3939
strategy:
4040
matrix:
41-
os: ['macos-10.15', 'windows-latest', 'ubuntu-18.04']
42-
py-version: ['3.7', '3.8', '3.9']
43-
tf-version: ['2.5.1', '2.7.0']
41+
# To switch on windows-2022/latest, please verify the bazel version:
42+
# https://github.com/bazelbuild/bazel/issues/14232#issuecomment-1011247429
43+
os: ['macos-10.15', 'windows-2019', 'ubuntu-18.04']
44+
py-version: ['3.7', '3.8', '3.9', '3.10']
45+
tf-version: ['2.6.3', '2.8.0']
4446
cpu: ['x86']
47+
exclude:
48+
- py-version: '3.10'
49+
tf-version: '2.6.3'
4550
include:
4651
- os: 'macos-11'
4752
cpu: 'arm64'
48-
tf-version: '2.7.0'
53+
tf-version: '2.8.0'
4954
py-version: '3.8'
5055
- os: 'macos-11'
5156
cpu: 'arm64'
52-
tf-version: '2.7.0'
57+
tf-version: '2.8.0'
5358
py-version: '3.9'
5459
fail-fast: false
5560
steps:
@@ -93,17 +98,17 @@ jobs:
9398
strategy:
9499
matrix:
95100
os: ['macOS', 'Windows', 'Linux']
96-
py-version: ['3.7', '3.8', '3.9']
97-
tf-version: ['2.7.0']
101+
py-version: ['3.7', '3.8', '3.9', '3.10']
102+
tf-version: ['2.8.0']
98103
cpu: ['x86']
99104
include:
100105
- os: 'macOS'
101106
cpu: 'arm64'
102-
tf-version: '2.7.0'
107+
tf-version: '2.8.0'
103108
py-version: '3.8'
104109
- os: 'macOS'
105110
cpu: 'arm64'
106-
tf-version: '2.7.0'
111+
tf-version: '2.8.0'
107112
py-version: '3.9'
108113
fail-fast: false
109114
if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'release'

CONTRIBUTING.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ conda activate my_dev_environement
173173
Just run from the root:
174174

175175
```bash
176-
pip install tensorflow==2.7
177-
# you can use "pip install tensorflow-cpu==2.7.0" too if you're not testing on gpu.
176+
pip install tensorflow==2.8
177+
# you can use "pip install tensorflow-cpu==2.8.0" too if you're not testing on gpu.
178178
pip install -e ./
179179
```
180180

@@ -262,7 +262,7 @@ If you need a custom C++/Cuda op for your test, compile your ops with
262262

263263
```bash
264264
python configure.py
265-
pip install tensorflow==2.7 -e ./ -r tools/install_deps/pytest.txt
265+
pip install tensorflow==2.8 -e ./ -r tools/install_deps/pytest.txt
266266
bash tools/install_so_files.sh # Linux/macos/WSL2
267267
sh tools/install_so_files.sh # PowerShell
268268
```
@@ -290,7 +290,7 @@ docker run --gpus all --rm -it -v ${PWD}:/addons -w /addons gcr.io/tensorflow-te
290290

291291
Configure:
292292
```bash
293-
python3 -m pip install tensorflow==2.7
293+
python3 -m pip install tensorflow==2.8
294294
python3 ./configure.py # Links project with TensorFlow dependency
295295
```
296296

@@ -329,7 +329,7 @@ quickly, as Bazel has great support for caching and distributed testing.
329329
To test with Bazel:
330330

331331
```bash
332-
python3 -m pip install tensorflow==2.7
332+
python3 -m pip install tensorflow==2.8
333333
python3 configure.py
334334
python3 -m pip install -r tools/install_deps/pytest.txt
335335
bazel test -c opt -k \

setup.py

+1
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def has_ext_modules(self):
118118
"Programming Language :: Python :: 3.7",
119119
"Programming Language :: Python :: 3.8",
120120
"Programming Language :: Python :: 3.9",
121+
"Programming Language :: Python :: 3.10",
121122
"Topic :: Scientific/Engineering :: Mathematics",
122123
"Topic :: Software Development :: Libraries :: Python Modules",
123124
"Topic :: Software Development :: Libraries",

tensorflow_addons/image/tests/color_ops_test.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
from tensorflow_addons.image import color_ops
2222
from PIL import Image, ImageOps, ImageEnhance
23-
from skimage.exposure import equalize_hist
2423

2524
_DTYPES = {
2625
np.uint8,
@@ -54,6 +53,9 @@ def test_equalize_with_PIL():
5453
@pytest.mark.usefixtures("maybe_run_functions_eagerly")
5554
@pytest.mark.parametrize("bins", [256, 65536])
5655
def test_equalize_with_skimage(bins):
56+
pytest.skip("Wait #2666 to be fixed")
57+
from skimage.exposure import equalize_hist
58+
5759
np.random.seed(0)
5860
image = np.random.randint(low=0, high=256, size=(5, 5, 3, 3), dtype=np.uint8)
5961
equalized = tf.cast(color_ops.equalize(tf.constant(image), bins), np.float16)

tensorflow_addons/image/tests/transform_ops_test.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import numpy as np
1919
import tensorflow as tf
2020

21-
from skimage import transform
22-
2321
from tensorflow_addons.image import transform_ops
2422
from tensorflow_addons.utils import test_utils
2523

@@ -410,6 +408,9 @@ def test_unknown_shape():
410408
@pytest.mark.usefixtures("maybe_run_functions_eagerly")
411409
@pytest.mark.parametrize("dtype", _DTYPES - {tf.dtypes.float16})
412410
def test_shear_x(dtype):
411+
pytest.skip("Wait #2666 to be fixed")
412+
from skimage import transform
413+
413414
image = np.random.randint(low=0, high=255, size=(4, 4, 3)).astype(
414415
dtype.as_numpy_dtype
415416
)
@@ -434,6 +435,9 @@ def test_shear_x(dtype):
434435
@pytest.mark.usefixtures("maybe_run_functions_eagerly")
435436
@pytest.mark.parametrize("dtype", _DTYPES - {tf.dtypes.float16})
436437
def test_shear_y(dtype):
438+
pytest.skip("Wait #2666 to be fixed")
439+
from skimage import transform
440+
437441
image = np.random.randint(low=0, high=255, size=(4, 4, 3)).astype(
438442
dtype.as_numpy_dtype
439443
)

tensorflow_addons/metrics/tests/matthews_correlation_coefficient_test.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
# ==============================================================================
1515
"""Matthews Correlation Coefficient Test."""
1616

17+
import pytest
1718
import tensorflow as tf
1819

1920
import numpy as np
2021
from tensorflow_addons.metrics import MatthewsCorrelationCoefficient
21-
from sklearn.metrics import matthews_corrcoef as sklearn_matthew
2222

2323

2424
def test_config():
@@ -53,6 +53,9 @@ def test_binary_classes():
5353

5454
# See issue #2339
5555
def test_multiple_classes():
56+
pytest.skip("Wait #2666 to be fixed")
57+
from sklearn.metrics import matthews_corrcoef as sklearn_matthew
58+
5659
gt_label = np.array(
5760
[
5861
[1.0, 0.0, 0.0],

tensorflow_addons/metrics/tests/r_square_test.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import numpy as np
1818
import pytest
1919
import tensorflow as tf
20-
from sklearn.metrics import r2_score as sklearn_r2_score
2120

2221
from tensorflow_addons.metrics import RSquare
2322
from tensorflow_addons.metrics.r_square import _VALID_MULTIOUTPUT
@@ -137,6 +136,9 @@ def test_r2_reset_state():
137136

138137
@pytest.mark.parametrize("multioutput", sorted(_VALID_MULTIOUTPUT))
139138
def test_r2_sklearn_comparison(multioutput):
139+
pytest.skip("Wait #2666 to be fixed")
140+
from sklearn.metrics import r2_score as sklearn_r2_score
141+
140142
"""Test against sklearn's implementation on random inputs."""
141143
for _ in range(10):
142144
actuals = np.random.rand(64, 3)

tensorflow_addons/text/tests/crf_test.py

+9-2
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,10 @@ def call(self, potentials, transition_params, sequence_length):
512512
reason="CRF Decode doesn't work in TF2.4, the issue was fixed in TF core, but didn't make the release",
513513
)
514514
def test_crf_decode_save_load(tmpdir):
515+
class DummyLoss(tf.keras.losses.Loss):
516+
def call(self, y_true, y_pred):
517+
return tf.zeros(shape=())
518+
515519
tf.keras.backend.clear_session()
516520
input_tensor = tf.keras.Input(shape=(10, 3), dtype=tf.float32, name="input_tensor")
517521
seq_len = tf.keras.Input(shape=(), dtype=tf.int32, name="seq_len")
@@ -523,7 +527,7 @@ def test_crf_decode_save_load(tmpdir):
523527
model = tf.keras.Model(
524528
inputs=[input_tensor, seq_len], outputs=[output, decoded], name="example_model"
525529
)
526-
model.compile(optimizer="Adam")
530+
model.compile(optimizer="Adam", loss=DummyLoss())
527531

528532
x_data = {
529533
"input_tensor": np.random.random_sample((5, 10, 3)).astype(dtype=np.float32),
@@ -551,7 +555,10 @@ def test_crf_decode_save_load(tmpdir):
551555
tf.keras.backend.clear_session()
552556
model = tf.keras.models.load_model(
553557
temp_dir,
554-
custom_objects={"CrfDecodeForwardRnnCell": text.crf.CrfDecodeForwardRnnCell},
558+
custom_objects={
559+
"CrfDecodeForwardRnnCell": text.crf.CrfDecodeForwardRnnCell,
560+
"DummyLoss": DummyLoss,
561+
},
555562
)
556563
model.fit(x_data, y_data)
557564
model.predict(

tensorflow_addons/utils/resource_loader.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
import tensorflow as tf
2222

23-
INCLUSIVE_MIN_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.7.0"
24-
EXCLUSIVE_MAX_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.8.0"
23+
INCLUSIVE_MIN_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.8.0"
24+
EXCLUSIVE_MAX_TF_VERSION_FOR_ABI_COMPATIBILITY = "2.9.0"
2525
abi_warning_already_raised = False
2626
SKIP_CUSTOM_OPS = False
2727

tensorflow_addons/version.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
"""Define TensorFlow Addons version information."""
1616

1717
# Required TensorFlow version [min, max)
18-
INCLUSIVE_MIN_TF_VERSION = "2.5.0"
19-
EXCLUSIVE_MAX_TF_VERSION = "2.8.0"
18+
INCLUSIVE_MIN_TF_VERSION = "2.6.0"
19+
EXCLUSIVE_MAX_TF_VERSION = "2.9.0"
2020

2121
# We follow Semantic Versioning (https://semver.org/)
2222
_MAJOR_VERSION = "0"

tools/build_dev_container.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ set -x -e
44

55
docker build \
66
-f tools/docker/dev_container.Dockerfile \
7-
--build-arg TF_VERSION=2.7.0 \
7+
--build-arg TF_VERSION=2.8.0 \
88
--build-arg TF_PACKAGE=tensorflow \
99
--build-arg PY_VERSION=$PY_VERSION \
1010
--no-cache \

tools/docker/build_wheel.Dockerfile

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ FROM tensorflow/build:latest-python$PY_VERSION as base_install
55
ENV TF_NEED_CUDA="1"
66
ARG PY_VERSION
77
ARG TF_VERSION
8+
9+
# TODO: Remove this if tensorflow/build container removes their keras-nightly install
10+
RUN python -m pip uninstall -y keras-nightly
11+
812
RUN python -m pip install --default-timeout=1000 tensorflow==$TF_VERSION
913

1014
COPY tools/install_deps/ /install_deps

tools/docker/cpu_tests.Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#syntax=docker/dockerfile:1.1.5-experimental
22
FROM python:3.7 as build_wheel
33

4-
ARG TF_VERSION=2.7.0
4+
ARG TF_VERSION=2.8.0
55
RUN pip install --default-timeout=1000 tensorflow-cpu==$TF_VERSION
66

77
RUN apt-get update && apt-get install -y sudo rsync
@@ -39,4 +39,4 @@ RUN pip install /artifacts/tensorflow_addons-*.whl
3939
# check that we didnd't forget to add a py file to
4040
# The corresponding BUILD file.
4141
# Also test that the wheel works in a fresh environment
42-
RUN python -c "import tensorflow_addons"
42+
RUN python -c "import tensorflow_addons as tfa; print(tfa.register_all())"

tools/docker/sanity_check.Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ RUN touch /ok.txt
5353
# -------------------------------
5454
FROM python:3.7-alpine as clang-format
5555

56-
RUN apk add --no-cache git
56+
RUN apk update && apk add git
5757
RUN git clone https://github.com/gabrieldemarmiesse/clang-format-lint-action.git
5858
WORKDIR ./clang-format-lint-action
5959
RUN git checkout 1044fee

tools/install_deps/pytest.txt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
pytest~=5.3
1+
pytest~=6.2.5
22
pytest-xdist~=1.31
33
pytest-extra-durations~=0.1.3
44
scikit-learn~=0.22
5-
scikit-image~=0.17.0
6-
Pillow~=8.0.0
5+
#scikit-image~=0.17.0
6+
Pillow~=9.0.1
77
tqdm>=4.36.1

tools/install_deps/tensorflow-cpu.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
tensorflow-cpu~=2.7.0
1+
tensorflow-cpu~=2.8.0

tools/install_deps/tensorflow.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
tensorflow~=2.7.0
1+
tensorflow~=2.8.0

tools/run_gpu_tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export DOCKER_BUILDKIT=1
66
docker build \
77
-f tools/docker/build_wheel.Dockerfile \
88
--target tfa_gpu_tests \
9-
--build-arg TF_VERSION=2.7.0 \
9+
--build-arg TF_VERSION=2.8.0 \
1010
--build-arg PY_VERSION=3.7 \
1111
-t tfa_gpu_tests ./
1212
docker run --rm -t --gpus=all tfa_gpu_tests

0 commit comments

Comments
 (0)