Skip to content

Commit a0bd3e5

Browse files
authored
Fix issues to support latest version of TensorFlow. (#2216)
* Change _captures to captures. * Update code to avoid keras version error. * Add new versions of tf in CI pipeline. * Update tflite ops definitions. * Refactor the tests in CI pipeline. --------- Signed-off-by: Jay Zhang <[email protected]>
1 parent 0152029 commit a0bd3e5

30 files changed

+513
-349
lines changed

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
.coverage*
21
*.pyc
32
.idea
43
build
@@ -18,3 +17,14 @@ tests/tfhub/*/*.onnx
1817
tests/tfhub/*/*.tar.gz
1918
tests/tfhub/*/*.tflite
2019
tests/tfhub/*/**
20+
21+
# Unit test / coverage reports
22+
.coverage*
23+
.cache
24+
.hypothesis/
25+
.pytest_cache/
26+
test-output.xml
27+
28+
# VSCode
29+
.vscode/
30+
!.vscode/extensions.json

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ The common issues we run into we try to document here [Troubleshooting Guide](Tr
1717

1818
| Build Type | OS | Python | TensorFlow | ONNX opset | Status |
1919
| --- | --- | --- | --- | --- | --- |
20-
| Unit Test - Basic | Linux, MacOS<sup>\*</sup>, Windows<sup>\*</sup> | 3.7-3.10 | 1.15, 2.1-2.11 | 14-18 | [![Build Status](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_apis/build/status/unit_test?branchName=main)](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_build/latest?definitionId=16&branchName=main) |
21-
| Unit Test - Full | Linux, MacOS, Windows | 3.7-3.10 | 1.15, 2.1-2.11 | 14-18 | [![Build Status](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_apis/build/status/unit_test-matrix?branchName=main)](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_build/latest?definitionId=18&branchName=main) | |
20+
| Unit Test - Basic | Linux, Windows | 3.7-3.10 | 1.15, 2.8-2.13 | 14-18 | [![Build Status](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_apis/build/status/unit_test?branchName=main)](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_build/latest?definitionId=16&branchName=main) |
21+
| Unit Test - Full | Linux, Windows | 3.7-3.10 | 1.15, 2.8-2.13 | 14-18 | [![Build Status](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_apis/build/status/unit_test-matrix?branchName=main)](https://dev.azure.com/tensorflow-onnx/tensorflow-onnx/_build/latest?definitionId=18&branchName=main) | |
2222
<br/>
2323

2424
## Supported Versions
@@ -34,7 +34,7 @@ If you want the graph to be generated with a specific opset, use ```--opset``` i
3434

3535
### TensorFlow
3636

37-
We support ```tf-1.x graphs``` and ```tf-2.x```. To keep our test matrix manageable we test tf2onnx running on top of ```tf-1.13 or better```.
37+
We support ```tf-1.x graphs``` and ```tf-2.x```. To keep our test matrix manageable we test tf2onnx running on top of ```tf-1.15 or better```.
3838

3939
When running under tf-2.x tf2onnx will use the tensorflow V2 controlflow.
4040

ci_build/azure_pipelines/keras2onnx_application_tests.yml

Lines changed: 62 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,55 +8,67 @@ jobs:
88
vmImage: 'ubuntu-latest'
99
strategy:
1010
matrix:
11-
Python37-onnx1.11-tf1.15:
12-
python.version: '3.7'
13-
ONNX_PATH: onnx==1.11.0
11+
Python37-tf-1.15:
12+
python.version: '3.7' # Max version that supports tf 1.15
13+
ONNX_PATH: onnx==1.14.1
1414
INSTALL_KERAS: pip install keras==2.3.1
1515
UNINSTALL_KERAS:
1616
INSTALL_TENSORFLOW: pip install tensorflow==1.15.0
17-
INSTALL_ORT: pip install onnxruntime==1.11.0
17+
INSTALL_ORT: pip install onnxruntime==1.14.1 # Max version that supports python 3.7
1818
INSTALL_KERAS_RESNET: pip install keras-resnet
1919
INSTALL_TRANSFORMERS:
2020
INSTALL_NUMPY: pip install numpy==1.19.0
2121
INSTALL_LEGACY: pip install h5py==2.9.0
2222
NIGHTLY_BUILD_TEST: python run_all_v2.py --exclude "test_keras_applications_v2.py"
2323

24-
Python37-onnx1.11-tf2.5:
25-
python.version: '3.7'
26-
ONNX_PATH: onnx==1.11.0
24+
Python39-tf2-2.12:
25+
python.version: '3.9'
26+
ONNX_PATH: onnx==1.14.1
2727
INSTALL_KERAS:
2828
UNINSTALL_KERAS: pip uninstall keras -y
29-
INSTALL_TENSORFLOW: pip install tensorflow==2.5.0
30-
INSTALL_ORT: pip install onnxruntime==1.11.0
29+
INSTALL_TENSORFLOW: pip install tensorflow==2.12.0
30+
INSTALL_ORT: pip install onnxruntime==1.15.0
3131
INSTALL_KERAS_RESNET: pip install keras-resnet
3232
INSTALL_TRANSFORMERS: pip install transformers==3.4.0
3333
INSTALL_NUMPY: pip install numpy==1.19.0
3434
NIGHTLY_BUILD_TEST: python run_all_v2.py
3535

36-
Python39-onnx1.12-tf2.8:
37-
python.version: '3.9'
38-
ONNX_PATH: onnx==1.12.0
36+
Python310-tf2-2.11:
37+
python.version: '3.10'
38+
ONNX_PATH: onnx==1.14.1
3939
INSTALL_KERAS:
4040
UNINSTALL_KERAS:
41-
INSTALL_TENSORFLOW: pip install tensorflow==2.8.0
42-
INSTALL_ORT: pip install onnxruntime==1.12.0
41+
INSTALL_TENSORFLOW: pip install tensorflow==2.11.0
42+
INSTALL_ORT: pip install onnxruntime==1.15.0
4343
INSTALL_KERAS_RESNET: pip install keras-resnet
4444
INSTALL_TRANSFORMERS: pip install transformers==3.4.0
4545
INSTALL_NUMPY:
4646
NIGHTLY_BUILD_TEST: python run_all_v2.py
4747

48-
Python310-onnx1.12-tf2.9:
49-
python.version: '3.10'
50-
ONNX_PATH: onnx==1.12.0
48+
Python38-tf2-2.10:
49+
python.version: '3.8'
50+
ONNX_PATH: onnx==1.14.1
5151
INSTALL_KERAS:
5252
UNINSTALL_KERAS:
53-
INSTALL_TENSORFLOW: pip install tensorflow==2.9.0
54-
INSTALL_ORT: pip install onnxruntime==1.13.1
53+
INSTALL_TENSORFLOW: pip install tensorflow==2.10.0
54+
INSTALL_ORT: pip install onnxruntime==1.15.0
5555
INSTALL_KERAS_RESNET: pip install keras-resnet
5656
INSTALL_TRANSFORMERS: pip install transformers==4.12.0
5757
INSTALL_NUMPY:
5858
NIGHTLY_BUILD_TEST: python run_all_v2.py
5959

60+
Python310-tf2-oldest:
61+
python.version: '3.10'
62+
ONNX_PATH: onnx==1.14.1
63+
INSTALL_KERAS:
64+
UNINSTALL_KERAS:
65+
INSTALL_TENSORFLOW: pip install tensorflow==2.8.0
66+
INSTALL_ORT: pip install onnxruntime==1.15.0
67+
INSTALL_KERAS_RESNET: pip install keras-resnet
68+
INSTALL_TRANSFORMERS: pip install transformers==4.2.0
69+
INSTALL_NUMPY:
70+
NIGHTLY_BUILD_TEST: python run_all_v2.py
71+
6072
steps:
6173
- template: 'templates/keras2onnx_application_tests.yml'
6274
parameters:
@@ -68,55 +80,67 @@ jobs:
6880
vmImage: 'windows-2019'
6981
strategy:
7082
matrix:
71-
Python37-onnx1.11-tf1.15:
72-
python.version: '3.7'
73-
ONNX_PATH: onnx==1.11.0
83+
Python37-tf-1.15:
84+
python.version: '3.7' # Max version that supports tf 1.15
85+
ONNX_PATH: onnx==1.14.1
7486
INSTALL_KERAS: pip install keras==2.3.1
7587
UNINSTALL_KERAS:
7688
INSTALL_TENSORFLOW: pip install tensorflow==1.15.0
77-
INSTALL_ORT: pip install onnxruntime==1.11.0
89+
INSTALL_ORT: pip install onnxruntime==1.14.1 # Max version that supports python 3.7
7890
INSTALL_KERAS_RESNET: pip install keras-resnet
7991
INSTALL_TRANSFORMERS:
8092
INSTALL_NUMPY: pip install numpy==1.19.0
8193
INSTALL_LEGACY: pip install h5py==2.9.0
8294
NIGHTLY_BUILD_TEST: python run_all_v2.py --exclude "test_keras_applications_v2.py"
8395

84-
Python37-onnx1.11-tf2.5:
85-
python.version: '3.7'
86-
ONNX_PATH: onnx==1.11.0
96+
Python39-tf2-2.12:
97+
python.version: '3.9'
98+
ONNX_PATH: onnx==1.14.1
8799
INSTALL_KERAS:
88100
UNINSTALL_KERAS: pip uninstall keras -y
89-
INSTALL_TENSORFLOW: pip install tensorflow==2.5.0
90-
INSTALL_ORT: pip install onnxruntime==1.11.0
101+
INSTALL_TENSORFLOW: pip install tensorflow==2.12.0
102+
INSTALL_ORT: pip install onnxruntime==1.15.0
91103
INSTALL_KERAS_RESNET: pip install keras-resnet
92104
INSTALL_TRANSFORMERS: pip install transformers==3.4.0
93105
INSTALL_NUMPY: pip install numpy==1.19.0
94106
NIGHTLY_BUILD_TEST: python run_all_v2.py
95107

96-
Python39-onnx1.12-tf2.8:
97-
python.version: '3.9'
98-
ONNX_PATH: onnx==1.12.0
108+
Python310-tf2-2.11:
109+
python.version: '3.10'
110+
ONNX_PATH: onnx==1.14.1
99111
INSTALL_KERAS:
100112
UNINSTALL_KERAS:
101-
INSTALL_TENSORFLOW: pip install tensorflow==2.8.0
102-
INSTALL_ORT: pip install onnxruntime==1.12.0
113+
INSTALL_TENSORFLOW: pip install tensorflow==2.11.0
114+
INSTALL_ORT: pip install onnxruntime==1.15.0
103115
INSTALL_KERAS_RESNET: pip install keras-resnet
104116
INSTALL_TRANSFORMERS: pip install transformers==3.4.0
105117
INSTALL_NUMPY:
106118
NIGHTLY_BUILD_TEST: python run_all_v2.py
107119

108-
Python310-onnx1.12-tf2.9:
109-
python.version: '3.10'
110-
ONNX_PATH: onnx==1.12.0
120+
Python38-tf2-2.10:
121+
python.version: '3.8'
122+
ONNX_PATH: onnx==1.14.1
111123
INSTALL_KERAS:
112124
UNINSTALL_KERAS:
113-
INSTALL_TENSORFLOW: pip install tensorflow==2.9.0
114-
INSTALL_ORT: pip install onnxruntime==1.13.1
125+
INSTALL_TENSORFLOW: pip install tensorflow==2.10.0
126+
INSTALL_ORT: pip install onnxruntime==1.15.0
115127
INSTALL_KERAS_RESNET: pip install keras-resnet
116128
INSTALL_TRANSFORMERS: pip install transformers==4.12.0
117129
INSTALL_NUMPY:
118130
NIGHTLY_BUILD_TEST: python run_all_v2.py
119131

132+
Python310-tf2-oldest:
133+
python.version: '3.10'
134+
ONNX_PATH: onnx==1.14.1
135+
INSTALL_KERAS:
136+
UNINSTALL_KERAS:
137+
INSTALL_TENSORFLOW: pip install tensorflow==2.8.0
138+
INSTALL_ORT: pip install onnxruntime==1.15.0
139+
INSTALL_KERAS_RESNET: pip install keras-resnet
140+
INSTALL_TRANSFORMERS: pip install transformers==4.2.0
141+
INSTALL_NUMPY:
142+
NIGHTLY_BUILD_TEST: python run_all_v2.py
143+
120144
steps:
121145
- template: 'templates/keras2onnx_application_tests.yml'
122146
parameters:

ci_build/azure_pipelines/keras2onnx_unit_test.yml

Lines changed: 70 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,49 +8,55 @@ jobs:
88
strategy:
99
matrix:
1010
############ TF Keras Unit Tests ############
11-
Python38-tf2.5:
12-
python.version: '3.8'
13-
ONNX_PATH: onnx==1.11.0
14-
TENSORFLOW_PATH: tensorflow==2.5.0
15-
INSTALL_ORT: pip install onnxruntime==1.11.0
16-
INSTALL_NUMPY: pip install numpy==1.19.0
11+
Python310-tf2-2.13:
12+
python.version: '3.10'
13+
ONNX_PATH: onnx==1.14.1
14+
TENSORFLOW_PATH: tensorflow==2.13.0
15+
INSTALL_ORT: pip install onnxruntime==1.15.0
16+
INSTALL_NUMPY:
1717

18-
Python37-tf2.8:
19-
python.version: '3.7'
20-
ONNX_PATH: onnx==1.12.0
21-
TENSORFLOW_PATH: tensorflow==2.8.0
22-
INSTALL_ORT: pip install onnxruntime==1.12.0
18+
Python38-tf2-2.12:
19+
python.version: '3.8'
20+
ONNX_PATH: onnx==1.14.1
21+
TENSORFLOW_PATH: tensorflow==2.12.0
22+
INSTALL_ORT: pip install onnxruntime==1.15.0
2323
INSTALL_NUMPY:
2424

25-
Python39-tf2.9:
25+
Python39-tf2-2.11:
2626
python.version: '3.9'
27-
ONNX_PATH: onnx==1.12.0
28-
TENSORFLOW_PATH: tensorflow==2.9.0
29-
INSTALL_ORT: pip install onnxruntime==1.12.0
27+
ONNX_PATH: onnx==1.14.1
28+
TENSORFLOW_PATH: tensorflow==2.11.0
29+
INSTALL_ORT: pip install onnxruntime==1.15.0
3030
INSTALL_NUMPY:
3131

32-
Python310-tf2.10:
32+
Python310-tf2-2.10:
3333
python.version: '3.10'
34-
ONNX_PATH: onnx==1.12.0
34+
ONNX_PATH: onnx==1.14.1
3535
TENSORFLOW_PATH: tensorflow==2.10.0
36-
INSTALL_ORT: pip install onnxruntime==1.13.1
36+
INSTALL_ORT: pip install onnxruntime==1.15.0
37+
INSTALL_NUMPY:
38+
39+
Python38-tf2-2.9:
40+
python.version: '3.8'
41+
ONNX_PATH: onnx==1.14.1
42+
TENSORFLOW_PATH: tensorflow==2.9.0
43+
INSTALL_ORT: pip install onnxruntime==1.15.0
44+
INSTALL_NUMPY:
45+
46+
Python310-tf2-oldest:
47+
python.version: '3.10'
48+
ONNX_PATH: onnx==1.14.1
49+
TENSORFLOW_PATH: tensorflow==2.8.0
50+
INSTALL_ORT: pip install onnxruntime==1.15.0
3751
INSTALL_NUMPY:
3852

3953
############ Pure Keras Unit Tests ############
4054
Keras-Py37-tf1.15.0:
41-
python.version: '3.7'
42-
ONNX_PATH: onnx==1.11.0
55+
python.version: '3.7' # Max version that supports tf 1.15
56+
ONNX_PATH: onnx==1.14.1
4357
KERAS: keras==2.4.3
4458
TENSORFLOW_PATH: tensorflow==1.15.0
45-
INSTALL_ORT: pip install onnxruntime==1.11.0
46-
INSTALL_NUMPY: pip install numpy==1.19.0
47-
48-
Keras-Py38-tf2.2.0:
49-
python.version: '3.8'
50-
ONNX_PATH: -i onnx==1.11.0
51-
KERAS: keras==2.4.3
52-
TENSORFLOW_PATH: tensorflow==2.2.0
53-
INSTALL_ORT: pip install onnxruntime==1.11.0
59+
INSTALL_ORT: pip install onnxruntime==1.14.1 # Max version that supports python 3.7
5460
INSTALL_NUMPY: pip install numpy==1.19.0
5561

5662
steps:
@@ -64,49 +70,55 @@ jobs:
6470
strategy:
6571
matrix:
6672
############ TF Keras Unit Tests ############
67-
Python38-tf2.5:
68-
python.version: '3.8'
69-
ONNX_PATH: onnx==1.11.0
70-
TENSORFLOW_PATH: tensorflow==2.5.0
71-
INSTALL_ORT: pip install onnxruntime==1.11.0
72-
INSTALL_NUMPY: pip install numpy==1.19.0
73+
Python310-tf2-2.13:
74+
python.version: '3.10'
75+
ONNX_PATH: onnx==1.14.1
76+
TENSORFLOW_PATH: tensorflow==2.13.0
77+
INSTALL_ORT: pip install onnxruntime==1.15.0
78+
INSTALL_NUMPY:
7379

74-
Python37-tf2.8:
75-
python.version: '3.7'
76-
ONNX_PATH: onnx==1.12.0
77-
TENSORFLOW_PATH: tensorflow==2.8.0
78-
INSTALL_ORT: pip install onnxruntime==1.12.0
80+
Python38-tf2-2.12:
81+
python.version: '3.8'
82+
ONNX_PATH: onnx==1.14.1
83+
TENSORFLOW_PATH: tensorflow==2.12.0
84+
INSTALL_ORT: pip install onnxruntime==1.15.0
7985
INSTALL_NUMPY:
8086

81-
Python39-tf2.9:
87+
Python39-tf2-2.11:
8288
python.version: '3.9'
83-
ONNX_PATH: onnx==1.12.0
84-
TENSORFLOW_PATH: tensorflow==2.9.0
85-
INSTALL_ORT: pip install onnxruntime==1.12.0
89+
ONNX_PATH: onnx==1.14.1
90+
TENSORFLOW_PATH: tensorflow==2.11.0
91+
INSTALL_ORT: pip install onnxruntime==1.15.0
8692
INSTALL_NUMPY:
8793

88-
Python310-tf2.10:
94+
Python310-tf2-2.10:
8995
python.version: '3.10'
90-
ONNX_PATH: onnx==1.12.0
96+
ONNX_PATH: onnx==1.14.1
9197
TENSORFLOW_PATH: tensorflow==2.10.0
92-
INSTALL_ORT: pip install onnxruntime==1.13.1
98+
INSTALL_ORT: pip install onnxruntime==1.15.0
99+
INSTALL_NUMPY:
100+
101+
Python38-tf2-2.9:
102+
python.version: '3.8'
103+
ONNX_PATH: onnx==1.14.1
104+
TENSORFLOW_PATH: tensorflow==2.9.0
105+
INSTALL_ORT: pip install onnxruntime==1.15.0
106+
INSTALL_NUMPY:
107+
108+
Python310-tf2-oldest:
109+
python.version: '3.10'
110+
ONNX_PATH: onnx==1.14.1
111+
TENSORFLOW_PATH: tensorflow==2.8.0
112+
INSTALL_ORT: pip install onnxruntime==1.15.0
93113
INSTALL_NUMPY:
94114

95115
############ Pure Keras Unit Tests ############
96116
Keras-Py37-tf1.15.0:
97-
python.version: '3.7'
98-
ONNX_PATH: onnx==1.11.0
117+
python.version: '3.7' # Max version that supports tf 1.15
118+
ONNX_PATH: onnx==1.14.1
99119
KERAS: keras==2.4.3
100120
TENSORFLOW_PATH: tensorflow==1.15.0
101-
INSTALL_ORT: pip install onnxruntime==1.11.0
102-
INSTALL_NUMPY: pip install numpy==1.19.0
103-
104-
Keras-Py38-tf2.2.0:
105-
python.version: '3.8'
106-
ONNX_PATH: -i onnx==1.11.0
107-
KERAS: keras==2.4.3
108-
TENSORFLOW_PATH: tensorflow==2.2.0
109-
INSTALL_ORT: pip install onnxruntime==1.11.0
121+
INSTALL_ORT: pip install onnxruntime==1.14.1 # Max version that supports python 3.7
110122
INSTALL_NUMPY: pip install numpy==1.19.0
111123

112124
steps:

0 commit comments

Comments
 (0)