Skip to content

Commit cf5f317

Browse files
authored
Sync for 4.0b4 release (#950)
* sync for 4.0b4 release * fix extra space character in build.sh and add a simple prediction test for smoke testing on older macs
1 parent a629958 commit cf5f317

File tree

87 files changed

+4056
-1571
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+4056
-1571
lines changed

.gitlab-ci.yml

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ check_python_flake8:
2222

2323
########################################################################
2424
#
25-
# linux - Build & Test
25+
# linux - Build
2626
#
2727
########################################################################
2828

@@ -44,9 +44,33 @@ build_wheel_linux_py27:
4444
variables:
4545
PYTHON: "2.7"
4646

47+
build_wheel_linux_py35:
48+
<<: *build_linux
49+
image: registry.gitlab.com/zach_nation/coremltools/build-image-ubuntu-14.04:1.0.3
50+
variables:
51+
PYTHON: "3.5"
52+
53+
build_wheel_linux_py36:
54+
<<: *build_linux
55+
image: registry.gitlab.com/zach_nation/coremltools/build-image-ubuntu-14.04:1.0.3
56+
variables:
57+
PYTHON: "3.6"
58+
59+
build_wheel_linux_py37:
60+
<<: *build_linux
61+
image: registry.gitlab.com/zach_nation/coremltools/build-image-ubuntu-14.04:1.0.3
62+
variables:
63+
PYTHON: "3.7"
64+
65+
build_wheel_linux_py38:
66+
<<: *build_linux
67+
image: registry.gitlab.com/zach_nation/coremltools/build-image-ubuntu-14.04:1.0.3
68+
variables:
69+
PYTHON: "3.8"
70+
4771
#########################################################################
4872
##
49-
## macOS - Build & Test
73+
## macOS - Build
5074
##
5175
#########################################################################
5276

@@ -91,6 +115,12 @@ build_wheel_macos_py38:
91115
variables:
92116
PYTHON: "3.8"
93117

118+
#########################################################################
119+
##
120+
## macOS - Test
121+
##
122+
#########################################################################
123+
94124
.test_macos_pkg: &test_macos_pkg
95125
stage: test
96126
script:
@@ -272,6 +302,45 @@ test_macos11_py37_mil:
272302
- coremltools/converters/mil/mil/**/*.{py}
273303
- coremltools/converters/mil/backend/**/*.{py}
274304

305+
#########################################################################
306+
##
307+
## macOS - Smoke Test on older versions
308+
##
309+
#########################################################################
310+
311+
test_macos11_py38_coremltools_smoke_test:
312+
<<: *test_macos_pkg
313+
tags:
314+
- macos11
315+
dependencies:
316+
- build_wheel_macos_py38
317+
variables:
318+
WHEEL_PATH: build/dist/*cp38*10_16*
319+
TEST_PACKAGE: coremltools.test.neural_network.test_simple_nn_inference
320+
PYTHON: "3.8"
321+
322+
test_macos15_py38_coremltools_smoke_test:
323+
<<: *test_macos_pkg
324+
tags:
325+
- macos10.15
326+
dependencies:
327+
- build_wheel_macos_py38
328+
variables:
329+
WHEEL_PATH: build/dist/*cp38*10_15*
330+
TEST_PACKAGE: coremltools.test.neural_network.test_simple_nn_inference
331+
PYTHON: "3.8"
332+
333+
test_macos14_py38_coremltools_smoke_test:
334+
<<: *test_macos_pkg
335+
tags:
336+
- macos10.14
337+
dependencies:
338+
- build_wheel_macos_py38
339+
variables:
340+
WHEEL_PATH: build/dist/*cp38*10_14*
341+
TEST_PACKAGE: coremltools.test.neural_network.test_simple_nn_inference
342+
PYTHON: "3.8"
343+
275344
#########################################################################
276345
##
277346
## Make docs
@@ -314,6 +383,10 @@ collect_artifacts:
314383
echo "Collect artifacts (wheels and documentation)"
315384
dependencies:
316385
- build_wheel_linux_py27
386+
- build_wheel_linux_py35
387+
- build_wheel_linux_py36
388+
- build_wheel_linux_py37
389+
- build_wheel_linux_py38
317390
- build_wheel_macos_py27
318391
- build_wheel_macos_py35
319392
- build_wheel_macos_py36

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ With coremltools, you can do the following:
2929
To get the latest version of coremltools:
3030

3131
```shell
32-
pip install coremltools==4.0b3
32+
pip install coremltools==4.0b4
3333
```
3434

3535
For the latest changes please see the [release notes](https://github.com/apple/coremltools/releases/).

coremlpython/CoreMLPython.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,14 @@ namespace CoreML {
5151
std::unique_ptr<NNBuffer::NeuralNetworkBuffer> nnBuffer;
5252

5353
public:
54-
NeuralNetworkBufferInformation(const std::string& bufferFilePath, NNBuffer::bufferMode mode);
54+
NeuralNetworkBufferInformation(const std::string& bufferFilePath, NNBuffer::BufferMode mode);
5555
~NeuralNetworkBufferInformation();
56-
std::vector<float> getBuffer(const u_int64_t offset);
57-
u_int64_t addBuffer(const std::vector<float>& buffer);
56+
57+
template <typename T>
58+
u_int64_t addBuffer(const std::vector<T>& buffer);
59+
60+
template <typename T>
61+
std::vector<T> getBuffer(const u_int64_t offset);
5862
};
5963
}
6064
}

coremlpython/CoreMLPython.mm

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
/*
135135
* NeuralNetworkBuffer - NeuralNetworkBuffer
136136
*/
137-
NeuralNetworkBufferInformation::NeuralNetworkBufferInformation(const std::string &bufferFilePath, NNBuffer::bufferMode mode)
137+
NeuralNetworkBufferInformation::NeuralNetworkBufferInformation(const std::string &bufferFilePath, NNBuffer::BufferMode mode)
138138
: nnBuffer(std::make_unique<NNBuffer::NeuralNetworkBuffer>(bufferFilePath, mode))
139139
{
140140
}
@@ -149,18 +149,20 @@
149149
* Writes given buffer into file
150150
* Returns offset from the beginning of buffer
151151
*/
152-
inline u_int64_t NeuralNetworkBufferInformation::addBuffer(const std::vector<float> &buffer) {
153-
return nnBuffer->addBuffer(buffer);
152+
template <typename T>
153+
inline u_int64_t NeuralNetworkBufferInformation::addBuffer(const std::vector<T>& buffer) {
154+
return nnBuffer->AddBuffer(buffer);
154155
}
155156

156157
/*
157158
* NeuralNetworkBufferInformation - getBuffer
158159
* Reads buffer from given offset and of given size and writes to data
159160
*/
160-
inline std::vector<float> NeuralNetworkBufferInformation::getBuffer(const u_int64_t offset) {
161+
template <typename T>
162+
inline std::vector<T> NeuralNetworkBufferInformation::getBuffer(const u_int64_t offset) {
161163
// TODO: Explore Pybind11 Opaque to pass vector by reference
162-
std::vector<float> buffer;
163-
nnBuffer->getBuffer(offset, buffer);
164+
std::vector<T> buffer;
165+
nnBuffer->GetBuffer(offset, buffer);
164166
return buffer;
165167
}
166168

@@ -180,13 +182,18 @@
180182
.def("print", &NeuralNetworkShapeInformation::print);
181183

182184
py::class_<NeuralNetworkBufferInformation> netBuffer(m, "_NeuralNetworkBuffer");
183-
netBuffer.def(py::init<const std::string&, NNBuffer::bufferMode>())
184-
.def("add_buffer", &NeuralNetworkBufferInformation::addBuffer)
185-
.def("get_buffer", &NeuralNetworkBufferInformation::getBuffer);
186-
py::enum_<NNBuffer::bufferMode>(netBuffer, "mode")
187-
.value("write", NNBuffer::bufferMode::write)
188-
.value("append", NNBuffer::bufferMode::append)
189-
.value("read", NNBuffer::bufferMode::read)
185+
netBuffer.def(py::init<const std::string&, NNBuffer::BufferMode>())
186+
.def("add_buffer_float", &NeuralNetworkBufferInformation::addBuffer<float>)
187+
.def("add_buffer_int", &NeuralNetworkBufferInformation::addBuffer<int32_t>)
188+
.def("add_buffer_bool", &NeuralNetworkBufferInformation::addBuffer<uint8_t>)
189+
.def("get_buffer_float", &NeuralNetworkBufferInformation::getBuffer<float>)
190+
.def("get_buffer_int", &NeuralNetworkBufferInformation::getBuffer<int32_t>)
191+
.def("get_buffer_bool", &NeuralNetworkBufferInformation::getBuffer<uint8_t>);
192+
193+
py::enum_<NNBuffer::BufferMode>(netBuffer, "mode")
194+
.value("write", NNBuffer::BufferMode::Write)
195+
.value("append", NNBuffer::BufferMode::Append)
196+
.value("read", NNBuffer::BufferMode::Read)
190197
.export_values();
191198

192199
return m.ptr();

coremltools/_deps/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,10 @@ def __get_sklearn_version(version):
8686
_HAS_TF = True
8787
_HAS_TF_1 = False
8888
_HAS_TF_2 = False
89-
_TF_1_MIN_VERSION = "1.0.0"
89+
_TF_1_MIN_VERSION = "1.12.0"
9090
_TF_1_MAX_VERSION = "1.15.0"
9191
_TF_2_MIN_VERSION = "2.1.0"
92-
_TF_2_MAX_VERSION = "2.2.0"
92+
_TF_2_MAX_VERSION = "2.3.0"
9393

9494
try:
9595
import tensorflow

coremltools/converters/_converters_entry.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,8 @@ def _flatten_list(_inputs):
327327
if convert_to == 'mil':
328328
return proto_spec # Returns the MIL program
329329

330-
model = coremltools.models.MLModel(proto_spec, useCPUOnly=True)
330+
useCPUOnly = kwargs.get("useCPUOnly", True)
331+
model = coremltools.models.MLModel(proto_spec, useCPUOnly=useCPUOnly)
331332

332333
if minimum_deployment_target is not None:
333334
check_deployment_compatibility(

0 commit comments

Comments
 (0)