Ver código fonte

Merge converter and coreml script

Lutz Roeder 7 anos atrás
pai
commit
a73413799e

+ 0 - 36
tools/converter/coreml-converter

@@ -1,36 +0,0 @@
-#!/bin/bash
-
-set -e
-
-root=$(cd $(dirname ${0})/../..; pwd)
-build=${root}/build
-tools=${root}/tools
-third_party=${root}/third_party
-
-python=${python:-python}
-pip=${pip:-pip}
-
-identifier=coremltools
-repository=https://github.com/apple/${identifier}.git
-
-mkdir -p ${third_party}
-
-if [ -d "${third_party}/${identifier}" ]; then
-    git -C "${third_party}/${identifier}" fetch -p --quiet
-    git -C "${third_party}/${identifier}" reset --quiet --hard origin/master
-else
-    echo "Clone ${repository}..."
-    git -C "${third_party}" clone --recursive ${repository}
-fi
-
-virtualenv=${build}/virtualenv/${identifier}
-virtualenv -p ${python} ${virtualenv}
-source ${virtualenv}/bin/activate
-
-${pip} install --quiet onnx
-${pip} install --quiet sklearn
-${pip} install --quiet ${third_party}/${identifier}
-
-${python} ${tools}/coreml-converter.py $@
-
-deactivate

+ 0 - 18
tools/converter/coreml-converter.py

@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-
-import os
-import sys
-
-file = sys.argv[1];
-base, extension = os.path.splitext(file)
-
-if extension == '.h5':
-    import coremltools
-    coreml_model = coremltools.converters.keras.convert(file)
-    coreml_model.save(base + '.mlmodel')
-elif extension == '.pkl':
-    import coremltools
-    import sklearn
-    sklearn_model = sklearn.externals.joblib.load(file)
-    coreml_model = coremltools.converters.sklearn.convert(sklearn_model)
-    coreml_model.save(base + '.mlmodel')

+ 63 - 0
tools/coreml

@@ -0,0 +1,63 @@
+#!/bin/bash
+
+set -e
+
+root=$(cd $(dirname ${0})/..; pwd)
+build=${root}/build
+node_modules=${root}/node_modules
+src=${root}/src
+tools=${root}/tools
+third_party=${root}/third_party
+
+identifier=coremltools
+virtualenv=${build}/virtualenv/${identifier}
+
+python=${python:-python}
+pip=${pip:-pip}
+
+git_sync () {
+    mkdir -p "${third_party}"
+    if [ -d "${third_party}/${1}" ]; then
+        git -C "${third_party}/${1}" fetch -p --quiet
+        git -C "${third_party}/${1}" reset --quiet --hard origin/master
+    else
+        echo "Clone ${2}..."
+        git -C "${third_party}" clone --recursive ${2}
+    fi
+}
+
+sync() {
+    git_sync coremltools https://github.com/apple/coremltools.git
+}
+
+build() {
+    echo "Build coremltools.."
+    virtualenv --quiet -p ${python} ${virtualenv}
+    source ${virtualenv}/bin/activate
+    ${pip} install --quiet ${third_party}/${identifier}
+    deactivate
+}
+
+schema() {
+    echo "Generate 'coreml.js'"
+    ${node_modules}/protobufjs/bin/pbjs -t static-module -w closure --no-encode --no-delimited --no-comments --keep-case -r coreml -o ${src}/coreml-proto.js ${third_party}/${identifier}/mlmodel/format/Model.proto
+    node ${tools}/metadata/update_pbjs.js array ${src}/coreml-proto.js floatValue float 2
+}
+
+convert() {
+    source ${virtualenv}/bin/activate
+    ${pip} install --quiet onnx
+    ${pip} install --quiet sklearn
+    ${python} ${tools}/coreml-script.py convert ${1}
+    deactivate
+}
+
+while [ "$#" != 0 ]; do
+    command="$1" && shift
+    case "${command}" in
+        "sync") sync;;
+        "build") build;;
+        "schema") schema;;
+        "convert") convert ${1} && shift;;
+    esac
+done

+ 23 - 0
tools/coreml-script.py

@@ -0,0 +1,23 @@
+#!/usr/bin/env python
+
+import os
+import sys
+
+def convert():
+    file = sys.argv[2];
+    base, extension = os.path.splitext(file)
+    if extension == '.h5':
+        import coremltools
+        coreml_model = coremltools.converters.keras.convert(file)
+        coreml_model.save(base + '.mlmodel')
+    elif extension == '.pkl':
+        import coremltools
+        import sklearn
+        sklearn_model = sklearn.externals.joblib.load(file)
+        coreml_model = coremltools.converters.sklearn.convert(sklearn_model)
+        coreml_model.save(base + '.mlmodel')
+
+if __name__ == '__main__':
+    command_table = { 'convert': convert }
+    command = sys.argv[1];
+    command_table[command]()

+ 0 - 26
tools/metadata/coreml-update

@@ -1,26 +0,0 @@
-#!/bin/bash
-
-set -e
-
-root=$(cd $(dirname ${0})/../..; pwd)
-node_modules=${root}/node_modules
-src=${root}/src
-tools=${root}/tools
-third_party=${root}/third_party
-
-identifier=coremltools
-repository=https://github.com/apple/${identifier}.git
-
-mkdir -p ${third_party}
-
-if [ -d "${third_party}/${identifier}" ]; then
-    git -C "${third_party}/${identifier}" fetch -p
-    git -C "${third_party}/${identifier}" reset --hard origin/master
-else
-    echo "Clone ${repository}..."
-    git -C "${third_party}" clone --recursive ${repository}
-fi
-
-echo "Generate 'coreml.js'"
-${node_modules}/protobufjs/bin/pbjs -t static-module -w closure --no-encode --no-delimited --no-comments --keep-case -r coreml -o ${src}/coreml-proto.js ${third_party}/${identifier}/mlmodel/format/Model.proto
-node ${tools}/metadata/update_pbjs.js array ${src}/coreml-proto.js floatValue float 2

+ 1 - 1
tools/metadata/update

@@ -17,7 +17,7 @@ echo "Update Keras"
 ${tools}/metadata/keras-update
 
 echo "Update CoreML"
-${tools}/metadata/coreml-update
+${tools}/coreml sync build schema
 
 echo "Update Caffe"
 ${tools}/metadata/caffe-update