From c78a3e57ae612521a5f2954b65ead21505cd0190 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Wed, 31 Oct 2018 07:29:17 +0100 Subject: [PATCH 1/8] Cleanup SUMMARIZE_GRAPH_BINARY --- taskcluster/darwin-amd64-cpu-opt.yml | 1 - taskcluster/darwin-opt-base.tyml | 1 - taskcluster/linux-amd64-cpu-opt.yml | 1 - taskcluster/linux-amd64-ctc-opt.yml | 1 - taskcluster/linux-amd64-gpu-opt.yml | 1 - taskcluster/linux-arm64-cpu-opt.yml | 1 - taskcluster/linux-opt-base.tyml | 1 - taskcluster/linux-rpi3-cpu-opt.yml | 1 - taskcluster/node-package.yml | 1 - 9 files changed, 9 deletions(-) diff --git a/taskcluster/darwin-amd64-cpu-opt.yml b/taskcluster/darwin-amd64-cpu-opt.yml index 2426c7c9..50274866 100644 --- a/taskcluster/darwin-amd64-cpu-opt.yml +++ b/taskcluster/darwin-amd64-cpu-opt.yml @@ -7,7 +7,6 @@ build: - "notify.irc-channel.${notifications.irc}.on-exception" - "notify.irc-channel.${notifications.irc}.on-failed" tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.osx/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.osx/artifacts/public/summarize_graph" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/darwin-opt-base.tyml b/taskcluster/darwin-opt-base.tyml index adc9b134..7510a4a5 100644 --- a/taskcluster/darwin-opt-base.tyml +++ b/taskcluster/darwin-opt-base.tyml @@ -39,7 +39,6 @@ payload: training: { $eval: as_slugid("test-training_upstream-linux-amd64-py27mu-opt") } in: TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} - SUMMARIZE_GRAPH_BINARY: ${build.summarize_graph} DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb # There is no VM yet running tasks on OSX diff --git a/taskcluster/linux-amd64-cpu-opt.yml b/taskcluster/linux-amd64-cpu-opt.yml index 54f38aed..0d8ecad7 100644 --- a/taskcluster/linux-amd64-cpu-opt.yml +++ b/taskcluster/linux-amd64-cpu-opt.yml @@ -15,7 +15,6 @@ build: > ${swig.patch_nodejs.linux} tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/summarize_graph" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/linux-amd64-ctc-opt.yml b/taskcluster/linux-amd64-ctc-opt.yml index 535fcfbd..5dee05e4 100644 --- a/taskcluster/linux-amd64-ctc-opt.yml +++ b/taskcluster/linux-amd64-ctc-opt.yml @@ -5,7 +5,6 @@ build: - "pull_request.reopened" template_file: linux-opt-base.tyml tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/summarize_graph" scripts: build: 'taskcluster/decoder-build.sh' package: 'taskcluster/decoder-package.sh' diff --git a/taskcluster/linux-amd64-gpu-opt.yml b/taskcluster/linux-amd64-gpu-opt.yml index 2f7d79e0..08c7f113 100644 --- a/taskcluster/linux-amd64-gpu-opt.yml +++ b/taskcluster/linux-amd64-gpu-opt.yml @@ -13,7 +13,6 @@ build: > ${swig.patch_nodejs.linux} tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.gpu/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.gpu/artifacts/public/summarize_graph" maxRunTime: 14400 scripts: build: "taskcluster/cuda-build.sh" diff --git a/taskcluster/linux-arm64-cpu-opt.yml b/taskcluster/linux-arm64-cpu-opt.yml index ba5e0ac4..3146d5d9 100644 --- a/taskcluster/linux-arm64-cpu-opt.yml +++ b/taskcluster/linux-arm64-cpu-opt.yml @@ -5,7 +5,6 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm64" - "index.project.deepspeech.deepspeech.native_client.arm64.${event.head.sha}" tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.arm64/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/summarize_graph" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/linux-opt-base.tyml b/taskcluster/linux-opt-base.tyml index 3af60d35..c6fa9baa 100644 --- a/taskcluster/linux-opt-base.tyml +++ b/taskcluster/linux-opt-base.tyml @@ -36,7 +36,6 @@ then: training: { $eval: as_slugid("test-training_upstream-linux-amd64-py27mu-opt") } in: TENSORFLOW_BUILD_ARTIFACT: ${build.tensorflow} - SUMMARIZE_GRAPH_BINARY: ${build.summarize_graph} DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb command: diff --git a/taskcluster/linux-rpi3-cpu-opt.yml b/taskcluster/linux-rpi3-cpu-opt.yml index 76b867b3..fc95c45f 100644 --- a/taskcluster/linux-rpi3-cpu-opt.yml +++ b/taskcluster/linux-rpi3-cpu-opt.yml @@ -5,7 +5,6 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm" - "index.project.deepspeech.deepspeech.native_client.arm.${event.head.sha}" tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.arm/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/summarize_graph" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/node-package.yml b/taskcluster/node-package.yml index d937bd41..36dca1e3 100644 --- a/taskcluster/node-package.yml +++ b/taskcluster/node-package.yml @@ -17,7 +17,6 @@ build: > ${swig.patch_nodejs.linux} tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" - summarize_graph: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/summarize_graph" scripts: build: "taskcluster/node-build.sh" package: "taskcluster/node-package.sh" From c67f66f86434d57fc75ed8fc8e1df80be1226a58 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Wed, 31 Oct 2018 07:30:34 +0100 Subject: [PATCH 2/8] Cleanup CONVERT_GRAPHDEF_MEMMAPPED --- taskcluster/test-armbian-opt-base.tyml | 1 - taskcluster/test-raspbian-opt-base.tyml | 1 - 2 files changed, 2 deletions(-) diff --git a/taskcluster/test-armbian-opt-base.tyml b/taskcluster/test-armbian-opt-base.tyml index 561072ff..72b364ef 100644 --- a/taskcluster/test-armbian-opt-base.tyml +++ b/taskcluster/test-armbian-opt-base.tyml @@ -35,7 +35,6 @@ then: linux_arm64_build: { $eval: as_slugid("linux-arm64-cpu-opt") } node_package: { $eval: as_slugid("node-package") } in: - CONVERT_GRAPHDEF_MEMMAPPED: ${build.convert_graphdef} DEEPSPEECH_ARTIFACTS_ROOT: https://queue.taskcluster.net/v1/task/${linux_arm64_build}/artifacts/public DEEPSPEECH_NODEJS: https://queue.taskcluster.net/v1/task/${node_package}/artifacts/public DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb diff --git a/taskcluster/test-raspbian-opt-base.tyml b/taskcluster/test-raspbian-opt-base.tyml index f9fd9d60..1ce40d80 100644 --- a/taskcluster/test-raspbian-opt-base.tyml +++ b/taskcluster/test-raspbian-opt-base.tyml @@ -35,7 +35,6 @@ then: linux_rpi3_build: { $eval: as_slugid("linux-rpi3-cpu-opt") } node_package: { $eval: as_slugid("node-package") } in: - CONVERT_GRAPHDEF_MEMMAPPED: ${build.convert_graphdef} DEEPSPEECH_ARTIFACTS_ROOT: https://queue.taskcluster.net/v1/task/${linux_rpi3_build}/artifacts/public DEEPSPEECH_NODEJS: https://queue.taskcluster.net/v1/task/${node_package}/artifacts/public DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb From 92ded598fbdc5bdce0bf212986d8512b4bc93196 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Wed, 31 Oct 2018 09:22:07 +0100 Subject: [PATCH 3/8] Call toco during export --- DeepSpeech.py | 87 ++++++++++++++++++++++++++++++++--------------- README.md | 5 +++ tc-train-tests.sh | 2 +- 3 files changed, 66 insertions(+), 28 deletions(-) diff --git a/DeepSpeech.py b/DeepSpeech.py index 0f021be8..ea9503da 100755 --- a/DeepSpeech.py +++ b/DeepSpeech.py @@ -18,10 +18,12 @@ import time import traceback import inspect import progressbar +import tempfile from functools import partial from six.moves import zip, range, filter, urllib, BaseHTTPServer from tensorflow.python.tools import freeze_graph +from tensorflow.contrib.lite.python import tflite_convert from threading import Thread, Lock from util.audio import audiofile_to_input_vector from util.feeding import DataSet, ModelFeeder @@ -1831,9 +1833,8 @@ def create_inference_graph(batch_size=1, n_steps=16, use_new_decoder=False, tfli return ( { 'input': input_tensor, - 'input_lengths': seq_length, - 'new_state_c': new_state_c, - 'new_state_h': new_state_h, + 'previous_state_c': previous_state_c, + 'previous_state_h': previous_state_h, }, { 'outputs': logits, @@ -1849,11 +1850,17 @@ def export(): ''' log_info('Exporting the model...') with tf.device('/cpu:0'): + from tensorflow.python.framework.ops import Tensor, Operation tf.reset_default_graph() session = tf.Session(config=session_config) inputs, outputs = create_inference_graph(batch_size=1, n_steps=FLAGS.n_steps, tflite=FLAGS.export_tflite) + input_names = ",".join(tensor.op.name for tensor in inputs.values()) + output_names_tensors = [ tensor.op.name for tensor in outputs.values() if isinstance(tensor, Tensor) ] + output_names_ops = [ tensor.name for tensor in outputs.values() if isinstance(tensor, Operation) ] + output_names = ",".join(output_names_tensors + output_names_ops) + input_shapes = ":".join(",".join(map(str, tensor.shape)) for tensor in inputs.values()) if not FLAGS.export_tflite: mapping = {v.op.name: v for v in tf.global_variables() if not v.op.name.startswith('previous_state_')} @@ -1872,11 +1879,7 @@ def export(): checkpoint = tf.train.get_checkpoint_state(FLAGS.checkpoint_dir) checkpoint_path = checkpoint.model_checkpoint_path - if not FLAGS.export_tflite: - output_filename = 'output_graph.pb' - else: - output_filename = 'output_graph.fb' - + output_filename = 'output_graph.pb' if FLAGS.remove_export: if os.path.isdir(FLAGS.export_dir): log_info('Removing old export') @@ -1887,31 +1890,61 @@ def export(): if not os.path.isdir(FLAGS.export_dir): os.makedirs(FLAGS.export_dir) - if not FLAGS.export_tflite: - output_node_names = 'logits,initialize_state' - variables_blacklist = 'previous_state_c,previous_state_h' - else: - output_node_names = 'logits,new_state_c,new_state_h' - variables_blacklist = '' + def do_graph_freeze(output_file=None, output_node_names=None, variables_blacklist=None): + freeze_graph.freeze_graph_with_def_protos( + input_graph_def=session.graph_def, + input_saver_def=saver.as_saver_def(), + input_checkpoint=checkpoint_path, + output_node_names=output_node_names, + restore_op_name=None, + filename_tensor_name=None, + output_graph=output_file, + clear_devices=False, + variable_names_blacklist=variables_blacklist, + initializer_nodes='') - # Freeze graph - freeze_graph.freeze_graph_with_def_protos( - input_graph_def=session.graph_def, - input_saver_def=saver.as_saver_def(), - input_checkpoint=checkpoint_path, - output_node_names=output_node_names, - restore_op_name=None, - filename_tensor_name=None, - output_graph=output_graph_path, - clear_devices=False, - variable_names_blacklist=variables_blacklist, - initializer_nodes='') + if not FLAGS.export_tflite: + do_graph_freeze(output_file=output_graph_path, output_node_names=output_names, variables_blacklist='previous_state_c,previous_state_h') + else: + temp_fd, temp_freeze = tempfile.mkstemp(dir=FLAGS.export_dir) + os.close(temp_fd) + do_graph_freeze(output_file=temp_freeze, output_node_names=output_names, variables_blacklist='') + output_tflite_path = os.path.join(FLAGS.export_dir, output_filename.replace('.pb', '.tflite')) + class TFLiteFlags(): + def __init__(self): + self.graph_def_file = temp_freeze + self.inference_type = 'FLOAT' + self.input_arrays = input_names + self.input_shapes = input_shapes + self.output_arrays = output_names + self.output_file = output_tflite_path + self.output_format = 'TFLITE' + + default_empty = [ + 'inference_input_type', + 'mean_values', + 'default_ranges_min', 'default_ranges_max', + 'drop_control_dependency', + 'reorder_across_fake_quant', + 'change_concat_input_ranges', + 'allow_custom_ops', + 'converter_mode', + 'post_training_quantize', + 'dump_graphviz_dir', + 'dump_graphviz_video' + ] + for e in default_empty: + self.__dict__[e] = None + + flags = TFLiteFlags() + tflite_convert._convert_model(flags) + os.unlink(temp_freeze) + log_info('Exported model for TF Lite engine as {}'.format(os.path.basename(output_tflite_path))) log_info('Models exported at %s' % (FLAGS.export_dir)) except RuntimeError as e: log_error(str(e)) - def do_single_file_inference(input_file_path): with tf.Session(config=session_config) as session: inputs, outputs = create_inference_graph(batch_size=1, use_new_decoder=True) diff --git a/README.md b/README.md index 10f41e99..58a36cd4 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ See the output of `deepspeech -h` for more information on the use of `deepspeech - [Training a model](#training-a-model) - [Checkpointing](#checkpointing) - [Exporting a model for inference](#exporting-a-model-for-inference) + - [Exporting a model for TFLite](#exporting-a-model-for-tflite) - [Distributed computing across more than one machine](#distributed-training-across-more-than-one-machine) - [Continuing training from a release model](#continuing-training-from-a-release-model) - [Code documentation](#code-documentation) @@ -317,6 +318,10 @@ Be aware however that checkpoints are only valid for the same model geometry the If the `--export_dir` parameter is provided, a model will have been exported to this directory during training. Refer to the corresponding [README.md](native_client/README.md) for information on building and running a client that can use the exported model. +### Exporting a model for TFLite + +If you want to experiment with the TF Lite engine, you need to export a model that is compatible with it, then use the `--export_tflite` flag. If you already have a trained model, you can re-export it for TFLite by running `DeepSpeech.py` again and specifying the same `checkpoint_dir` that you used for training, as well as passing `--notrain --notest --export_tflite --export_dir /model/export/destination`. + ### Making a mmap-able model for inference The `output_graph.pb` model file generated in the above step will be loaded in memory to be dealt with when running inference. diff --git a/tc-train-tests.sh b/tc-train-tests.sh index fb65e891..5452fee2 100644 --- a/tc-train-tests.sh +++ b/tc-train-tests.sh @@ -66,7 +66,7 @@ pushd ${HOME}/DeepSpeech/ds/ popd cp /tmp/train/output_graph.pb ${TASKCLUSTER_ARTIFACTS} -cp /tmp/train/output_graph.fb ${TASKCLUSTER_ARTIFACTS} +cp /tmp/train/output_graph.tflite ${TASKCLUSTER_ARTIFACTS} if [ ! -z "${CONVERT_GRAPHDEF_MEMMAPPED}" ]; then convert_graphdef=$(basename "${CONVERT_GRAPHDEF_MEMMAPPED}") From 26f7bc30f03c424cb918e53dd9decc7a8c81991b Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Wed, 31 Oct 2018 07:38:01 +0100 Subject: [PATCH 4/8] Move to TensorFlow r1.12 --- .install | 2 +- Dockerfile | 4 ++-- README.md | 2 +- native_client/README.md | 2 +- requirements.txt | 2 +- taskcluster/darwin-amd64-cpu-opt.yml | 2 +- taskcluster/linux-amd64-cpu-opt.yml | 2 +- taskcluster/linux-amd64-ctc-opt.yml | 2 +- taskcluster/linux-amd64-gpu-opt.yml | 2 +- taskcluster/linux-arm64-cpu-opt.yml | 2 +- taskcluster/linux-rpi3-cpu-opt.yml | 2 +- taskcluster/node-package.yml | 2 +- taskcluster/test-armbian-opt-base.tyml | 2 +- taskcluster/test-darwin-opt-base.tyml | 2 +- taskcluster/test-linux-opt-base.tyml | 2 +- taskcluster/test-raspbian-opt-base.tyml | 2 +- taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml | 2 +- 17 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.install b/.install index bb47ce32..d7801ca0 100755 --- a/.install +++ b/.install @@ -3,7 +3,7 @@ virtualenv -p python3 ../tmp/venv source ../tmp/venv/bin/activate pip install -r <(grep -v tensorflow requirements.txt) -pip install tensorflow-gpu==1.11.0 +pip install tensorflow-gpu==1.12.0rc2 python3 util/taskcluster.py --arch gpu --target ../tmp/native_client diff --git a/Dockerfile b/Dockerfile index 564ae57e..25425b10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,7 +62,7 @@ RUN wget https://bootstrap.pypa.io/get-pip.py && \ # Clone TensoFlow from Mozilla repo RUN git clone https://github.com/mozilla/tensorflow/ WORKDIR /tensorflow -RUN git checkout r1.11 +RUN git checkout r1.12 # GPU Environment Setup @@ -190,7 +190,7 @@ RUN cp /tensorflow/bazel-bin/native_client/libctc_decoder_with_kenlm.so /DeepSpe # Install TensorFlow WORKDIR /DeepSpeech/ -RUN pip install tensorflow-gpu==1.11.0 +RUN pip install tensorflow-gpu==1.12.0rc2 # Make DeepSpeech and install Python bindings diff --git a/README.md b/README.md index 58a36cd4..9ed85feb 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ If you have a capable (Nvidia, at least 8GB of VRAM) GPU, it is highly recommend ```bash pip3 uninstall tensorflow -pip3 install 'tensorflow-gpu==1.11.0' +pip3 install 'tensorflow-gpu==1.12.0rc2' ``` ### Common Voice training data diff --git a/native_client/README.md b/native_client/README.md index ba43d328..8ec39ea4 100644 --- a/native_client/README.md +++ b/native_client/README.md @@ -52,7 +52,7 @@ Check the [main README](../README.md) for more details. If you'd like to build the binaries yourself, you'll need the following pre-requisites downloaded/installed: * [TensorFlow requirements](https://www.tensorflow.org/install/install_sources) -* [TensorFlow `r1.11` sources](https://github.com/mozilla/tensorflow/tree/r1.11) +* [TensorFlow `r1.12` sources](https://github.com/mozilla/tensorflow/tree/r1.12) * [libsox](https://sourceforge.net/projects/sox/) It is required to use our fork of TensorFlow since it includes fixes for common problems encountered when building the native client files. diff --git a/requirements.txt b/requirements.txt index 8cc67773..03cc814d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ pandas progressbar2 python-utils -tensorflow == 1.11.0 +tensorflow == 1.12.0rc2 numpy matplotlib scipy diff --git a/taskcluster/darwin-amd64-cpu-opt.yml b/taskcluster/darwin-amd64-cpu-opt.yml index 50274866..62902d1a 100644 --- a/taskcluster/darwin-amd64-cpu-opt.yml +++ b/taskcluster/darwin-amd64-cpu-opt.yml @@ -6,7 +6,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.osx.${event.head.sha}" - "notify.irc-channel.${notifications.irc}.on-exception" - "notify.irc-channel.${notifications.irc}.on-failed" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.osx/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.osx/artifacts/public/home.tar.xz" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/linux-amd64-cpu-opt.yml b/taskcluster/linux-amd64-cpu-opt.yml index 0d8ecad7..5e854ceb 100644 --- a/taskcluster/linux-amd64-cpu-opt.yml +++ b/taskcluster/linux-amd64-cpu-opt.yml @@ -14,7 +14,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/linux-amd64-ctc-opt.yml b/taskcluster/linux-amd64-ctc-opt.yml index 5dee05e4..ff6f5593 100644 --- a/taskcluster/linux-amd64-ctc-opt.yml +++ b/taskcluster/linux-amd64-ctc-opt.yml @@ -4,7 +4,7 @@ build: - "pull_request.synchronize" - "pull_request.reopened" template_file: linux-opt-base.tyml - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" scripts: build: 'taskcluster/decoder-build.sh' package: 'taskcluster/decoder-package.sh' diff --git a/taskcluster/linux-amd64-gpu-opt.yml b/taskcluster/linux-amd64-gpu-opt.yml index 08c7f113..22497b90 100644 --- a/taskcluster/linux-amd64-gpu-opt.yml +++ b/taskcluster/linux-amd64-gpu-opt.yml @@ -12,7 +12,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.gpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.gpu/artifacts/public/home.tar.xz" maxRunTime: 14400 scripts: build: "taskcluster/cuda-build.sh" diff --git a/taskcluster/linux-arm64-cpu-opt.yml b/taskcluster/linux-arm64-cpu-opt.yml index 3146d5d9..136efe7b 100644 --- a/taskcluster/linux-arm64-cpu-opt.yml +++ b/taskcluster/linux-arm64-cpu-opt.yml @@ -4,7 +4,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.arm64" - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm64" - "index.project.deepspeech.deepspeech.native_client.arm64.${event.head.sha}" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.arm64/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.arm64/artifacts/public/home.tar.xz" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/linux-rpi3-cpu-opt.yml b/taskcluster/linux-rpi3-cpu-opt.yml index fc95c45f..d58cc6fb 100644 --- a/taskcluster/linux-rpi3-cpu-opt.yml +++ b/taskcluster/linux-rpi3-cpu-opt.yml @@ -4,7 +4,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.arm" - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm" - "index.project.deepspeech.deepspeech.native_client.arm.${event.head.sha}" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.arm/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.arm/artifacts/public/home.tar.xz" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/node-package.yml b/taskcluster/node-package.yml index 36dca1e3..85e1a0b9 100644 --- a/taskcluster/node-package.yml +++ b/taskcluster/node-package.yml @@ -16,7 +16,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" scripts: build: "taskcluster/node-build.sh" package: "taskcluster/node-package.sh" diff --git a/taskcluster/test-armbian-opt-base.tyml b/taskcluster/test-armbian-opt-base.tyml index 72b364ef..4c314d9a 100644 --- a/taskcluster/test-armbian-opt-base.tyml +++ b/taskcluster/test-armbian-opt-base.tyml @@ -43,7 +43,7 @@ then: PIP_DEFAULT_TIMEOUT: "60" PIP_EXTRA_INDEX_URL: "https://lissyx.github.io/deepspeech-python-wheels/" EXTRA_PYTHON_CONFIGURE_OPTS: "--with-fpectl" # Required by Debian Stretch - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.11.0-11-gbee8254" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" command: - "/bin/bash" diff --git a/taskcluster/test-darwin-opt-base.tyml b/taskcluster/test-darwin-opt-base.tyml index df787a89..0338f93e 100644 --- a/taskcluster/test-darwin-opt-base.tyml +++ b/taskcluster/test-darwin-opt-base.tyml @@ -41,7 +41,7 @@ then: DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb DEEPSPEECH_PROD_MODEL: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pb DEEPSPEECH_PROD_MODEL_MMAP: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pbmm - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.11.0-11-gbee8254" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" command: - - "/bin/bash" diff --git a/taskcluster/test-linux-opt-base.tyml b/taskcluster/test-linux-opt-base.tyml index 5fe0d1f0..b99d8fc4 100644 --- a/taskcluster/test-linux-opt-base.tyml +++ b/taskcluster/test-linux-opt-base.tyml @@ -44,7 +44,7 @@ then: DEEPSPEECH_PROD_MODEL: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pb DEEPSPEECH_PROD_MODEL_MMAP: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pbmm PIP_DEFAULT_TIMEOUT: "60" - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.11.0-11-gbee8254" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" command: - "/bin/bash" diff --git a/taskcluster/test-raspbian-opt-base.tyml b/taskcluster/test-raspbian-opt-base.tyml index 1ce40d80..dbb4e012 100644 --- a/taskcluster/test-raspbian-opt-base.tyml +++ b/taskcluster/test-raspbian-opt-base.tyml @@ -43,7 +43,7 @@ then: PIP_DEFAULT_TIMEOUT: "60" PIP_EXTRA_INDEX_URL: "https://www.piwheels.org/simple" EXTRA_PYTHON_CONFIGURE_OPTS: "--with-fpectl" # Required by Raspbian Stretch / PiWheels - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.11.0-11-gbee8254" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" command: - "/bin/bash" diff --git a/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml b/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml index ef98a1e4..632f8316 100644 --- a/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml +++ b/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml @@ -7,7 +7,7 @@ build: apt-get -qq -y install ${python.packages_trusty.apt} args: tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/tc-train-tests.sh 2.7.14:mu" - convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.11.bee825492fcf830bd65a024bf859cbfc218e1473.cpu/artifacts/public/convert_graphdef_memmapped_format" + convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/convert_graphdef_memmapped_format" metadata: name: "DeepSpeech Linux AMD64 CPU upstream training Py2.7 mu" description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 using upstream TensorFlow Python 2.7 mu, CPU only, optimized version" From 8c310b7f45dd53b25a3eecc69c3bffdc28d198dd Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Thu, 1 Nov 2018 12:17:02 +0100 Subject: [PATCH 5/8] Bump VERSION to 0.4.0-alpha.0 X-DeepSpeech: NOBUILD --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 0d91a54c..1b69c974 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.3.0 +0.4.0-alpha.0 From 5ce8f41398c0c9dab2134fb3b04ae3c61d62300d Mon Sep 17 00:00:00 2001 From: Jahir Islam Date: Tue, 6 Nov 2018 00:56:41 +0600 Subject: [PATCH 6/8] Updated making mmap-able model part of README.md In the making mmap-able model part of the REAMDE.md file, there is no mention of providing `convert_graphdef_memmapped_format` as the artifact name for `taskcluster.py` file. Without this argument `taskcluster.py` file tries to download the default `native_client.tar.xz` artifact and the code receives a 404 error. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ed85feb..e10dd094 100644 --- a/README.md +++ b/README.md @@ -327,7 +327,7 @@ If you want to experiment with the TF Lite engine, you need to export a model th The `output_graph.pb` model file generated in the above step will be loaded in memory to be dealt with when running inference. This will result in extra loading time and memory consumption. One way to avoid this is to directly read data from the disk. -TensorFlow has tooling to achieve this: it requires building the target `//tensorflow/contrib/util:convert_graphdef_memmapped_format` (binaries are produced by our TaskCluster for some systems including Linux/amd64 and macOS/amd64), use `util/taskcluster.py` tool to download, specifying `tensorflow` as a source. +TensorFlow has tooling to achieve this: it requires building the target `//tensorflow/contrib/util:convert_graphdef_memmapped_format` (binaries are produced by our TaskCluster for some systems including Linux/amd64 and macOS/amd64), use `util/taskcluster.py` tool to download, specifying `tensorflow` as a source and `convert_graphdef_memmapped_format` as artifact. Producing a mmap-able model is as simple as: ``` $ convert_graphdef_memmapped_format --in_graph=output_graph.pb --out_graph=output_graph.pbmm From 740e8584bde902c3f8c14eacd1064df6ba169e28 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Mon, 5 Nov 2018 15:59:53 +0100 Subject: [PATCH 7/8] Add benchmark_model tests --- taskcluster/.build.yml | 1 + taskcluster/test-linux-opt-base.tyml | 1 + ...t-lite_benchmark_model-linux-amd64-opt.yml | 10 ++++++++++ tc-lite_benchmark_model-ds-tests.sh | 20 +++++++++++++++++++ tc-tests-utils.sh | 10 ++++++++++ 5 files changed, 42 insertions(+) create mode 100644 taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml create mode 100755 tc-lite_benchmark_model-ds-tests.sh diff --git a/taskcluster/.build.yml b/taskcluster/.build.yml index c7aeebfc..309d26b0 100644 --- a/taskcluster/.build.yml +++ b/taskcluster/.build.yml @@ -21,3 +21,4 @@ build: args: tests_cmdline: '' convert_graphdef: '' + benchmark_model_bin: '' diff --git a/taskcluster/test-linux-opt-base.tyml b/taskcluster/test-linux-opt-base.tyml index b99d8fc4..afa6e901 100644 --- a/taskcluster/test-linux-opt-base.tyml +++ b/taskcluster/test-linux-opt-base.tyml @@ -37,6 +37,7 @@ then: node_package: { $eval: as_slugid("node-package") } in: CONVERT_GRAPHDEF_MEMMAPPED: ${build.convert_graphdef} + BENCHMARK_MODEL_BIN: ${build.benchmark_model_bin} DEEPSPEECH_ARTIFACTS_ROOT: https://queue.taskcluster.net/v1/task/${linux_amd64_build}/artifacts/public DEEPSPEECH_NODEJS: https://queue.taskcluster.net/v1/task/${node_package}/artifacts/public DEEPSPEECH_LIBCTC: https://queue.taskcluster.net/v1/task/${linux_amd64_ctc}/artifacts/public/decoder.tar.xz diff --git a/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml new file mode 100644 index 00000000..d37e950c --- /dev/null +++ b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml @@ -0,0 +1,10 @@ +build: + template_file: test-linux-opt-base.tyml + dependencies: + - "test-training_upstream-linux-amd64-py27mu-opt" + args: + tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/tc-lite_benchmark_model-ds-tests.sh" + benchmark_model_bin: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/lite_benchmark_model" + metadata: + name: "DeepSpeech Linux AMD64 CPU TF Lite benchmark_model" + description: "Testing DeepSpeech TF Lite benchmark_model for Linux/AMD64, CPU only, optimized version" diff --git a/tc-lite_benchmark_model-ds-tests.sh b/tc-lite_benchmark_model-ds-tests.sh new file mode 100755 index 00000000..580e4a1d --- /dev/null +++ b/tc-lite_benchmark_model-ds-tests.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -xe + +source $(dirname "$0")/tc-tests-utils.sh + +model_source=${DEEPSPEECH_TEST_MODEL//.pb/.tflite} +model_name=$(basename "${model_source}") + +download_benchmark_model "${TASKCLUSTER_TMP_DIR}/ds" + +export PATH=${TASKCLUSTER_TMP_DIR}/ds/:$PATH + +lite_benchmark_model \ + --graph=${TASKCLUSTER_TMP_DIR}/ds/${model_name} \ + --show_flops \ + --input_layer=input_node,previous_state_c,previous_state_h \ + --input_layer_type=float,float,float \ + --input_layer_shape=1,16,19,26:1:1,494:1,494 \ + --output_layer=logits,new_state_c,new_state_h diff --git a/tc-tests-utils.sh b/tc-tests-utils.sh index 3fcd9869..62ede759 100755 --- a/tc-tests-utils.sh +++ b/tc-tests-utils.sh @@ -275,6 +275,16 @@ download_material() ls -hal ${TASKCLUSTER_TMP_DIR}/${model_name} ${TASKCLUSTER_TMP_DIR}/${model_name_mmap} ${TASKCLUSTER_TMP_DIR}/LDC93S1*.wav ${TASKCLUSTER_TMP_DIR}/alphabet.txt } +download_benchmark_model() +{ + target_dir=$1 + + mkdir -p ${target_dir} || true + + wget -P "${target_dir}" "${model_source}" + wget -P "${target_dir}" "${BENCHMARK_MODEL_BIN}" && chmod +x ${target_dir}/*benchmark_model +} + install_pyenv() { if [ -z "${PYENV_ROOT}" ]; then From d2438397ce3795f802a864a58e31286db12b3e89 Mon Sep 17 00:00:00 2001 From: Alexandre Lissy Date: Mon, 5 Nov 2018 23:16:10 +0100 Subject: [PATCH 8/8] Update TensorFlow r1.12 --- taskcluster/darwin-amd64-cpu-opt.yml | 2 +- taskcluster/linux-amd64-cpu-opt.yml | 2 +- taskcluster/linux-amd64-ctc-opt.yml | 2 +- taskcluster/linux-amd64-gpu-opt.yml | 2 +- taskcluster/linux-arm64-cpu-opt.yml | 2 +- taskcluster/linux-rpi3-cpu-opt.yml | 2 +- taskcluster/node-package.yml | 2 +- taskcluster/test-armbian-opt-base.tyml | 2 +- taskcluster/test-darwin-opt-base.tyml | 2 +- taskcluster/test-linux-opt-base.tyml | 2 +- taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml | 2 +- taskcluster/test-raspbian-opt-base.tyml | 2 +- taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/taskcluster/darwin-amd64-cpu-opt.yml b/taskcluster/darwin-amd64-cpu-opt.yml index 62902d1a..e6d795ee 100644 --- a/taskcluster/darwin-amd64-cpu-opt.yml +++ b/taskcluster/darwin-amd64-cpu-opt.yml @@ -6,7 +6,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.osx.${event.head.sha}" - "notify.irc-channel.${notifications.irc}.on-exception" - "notify.irc-channel.${notifications.irc}.on-failed" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.osx/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.osx/artifacts/public/home.tar.xz" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/linux-amd64-cpu-opt.yml b/taskcluster/linux-amd64-cpu-opt.yml index 5e854ceb..5de85940 100644 --- a/taskcluster/linux-amd64-cpu-opt.yml +++ b/taskcluster/linux-amd64-cpu-opt.yml @@ -14,7 +14,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.cpu/artifacts/public/home.tar.xz" scripts: build: "taskcluster/host-build.sh" package: "taskcluster/package.sh" diff --git a/taskcluster/linux-amd64-ctc-opt.yml b/taskcluster/linux-amd64-ctc-opt.yml index ff6f5593..32897238 100644 --- a/taskcluster/linux-amd64-ctc-opt.yml +++ b/taskcluster/linux-amd64-ctc-opt.yml @@ -4,7 +4,7 @@ build: - "pull_request.synchronize" - "pull_request.reopened" template_file: linux-opt-base.tyml - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.cpu/artifacts/public/home.tar.xz" scripts: build: 'taskcluster/decoder-build.sh' package: 'taskcluster/decoder-package.sh' diff --git a/taskcluster/linux-amd64-gpu-opt.yml b/taskcluster/linux-amd64-gpu-opt.yml index 22497b90..c1f3ada2 100644 --- a/taskcluster/linux-amd64-gpu-opt.yml +++ b/taskcluster/linux-amd64-gpu-opt.yml @@ -12,7 +12,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.gpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.gpu/artifacts/public/home.tar.xz" maxRunTime: 14400 scripts: build: "taskcluster/cuda-build.sh" diff --git a/taskcluster/linux-arm64-cpu-opt.yml b/taskcluster/linux-arm64-cpu-opt.yml index 136efe7b..8823d9bf 100644 --- a/taskcluster/linux-arm64-cpu-opt.yml +++ b/taskcluster/linux-arm64-cpu-opt.yml @@ -4,7 +4,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.arm64" - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm64" - "index.project.deepspeech.deepspeech.native_client.arm64.${event.head.sha}" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.arm64/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.arm64/artifacts/public/home.tar.xz" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/linux-rpi3-cpu-opt.yml b/taskcluster/linux-rpi3-cpu-opt.yml index d58cc6fb..e6bda58d 100644 --- a/taskcluster/linux-rpi3-cpu-opt.yml +++ b/taskcluster/linux-rpi3-cpu-opt.yml @@ -4,7 +4,7 @@ build: - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.arm" - "index.project.deepspeech.deepspeech.native_client.${event.head.branchortag}.${event.head.sha}.arm" - "index.project.deepspeech.deepspeech.native_client.arm.${event.head.sha}" - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.arm/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.arm/artifacts/public/home.tar.xz" ## multistrap 2.2.0-ubuntu1 is broken in 14.04: https://bugs.launchpad.net/ubuntu/+source/multistrap/+bug/1313787 system_setup: > diff --git a/taskcluster/node-package.yml b/taskcluster/node-package.yml index 85e1a0b9..503caa65 100644 --- a/taskcluster/node-package.yml +++ b/taskcluster/node-package.yml @@ -16,7 +16,7 @@ build: system_config: > ${swig.patch_nodejs.linux} - tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/home.tar.xz" + tensorflow: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.cpu/artifacts/public/home.tar.xz" scripts: build: "taskcluster/node-build.sh" package: "taskcluster/node-package.sh" diff --git a/taskcluster/test-armbian-opt-base.tyml b/taskcluster/test-armbian-opt-base.tyml index 4c314d9a..41821f9f 100644 --- a/taskcluster/test-armbian-opt-base.tyml +++ b/taskcluster/test-armbian-opt-base.tyml @@ -43,7 +43,7 @@ then: PIP_DEFAULT_TIMEOUT: "60" PIP_EXTRA_INDEX_URL: "https://lissyx.github.io/deepspeech-python-wheels/" EXTRA_PYTHON_CONFIGURE_OPTS: "--with-fpectl" # Required by Debian Stretch - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-11-gbea86c1" command: - "/bin/bash" diff --git a/taskcluster/test-darwin-opt-base.tyml b/taskcluster/test-darwin-opt-base.tyml index 0338f93e..9725f167 100644 --- a/taskcluster/test-darwin-opt-base.tyml +++ b/taskcluster/test-darwin-opt-base.tyml @@ -41,7 +41,7 @@ then: DEEPSPEECH_TEST_MODEL: https://queue.taskcluster.net/v1/task/${training}/artifacts/public/output_graph.pb DEEPSPEECH_PROD_MODEL: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pb DEEPSPEECH_PROD_MODEL_MMAP: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pbmm - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-11-gbea86c1" command: - - "/bin/bash" diff --git a/taskcluster/test-linux-opt-base.tyml b/taskcluster/test-linux-opt-base.tyml index afa6e901..ebf9da7c 100644 --- a/taskcluster/test-linux-opt-base.tyml +++ b/taskcluster/test-linux-opt-base.tyml @@ -45,7 +45,7 @@ then: DEEPSPEECH_PROD_MODEL: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pb DEEPSPEECH_PROD_MODEL_MMAP: https://github.com/reuben/DeepSpeech/releases/download/v0.2.0-prod-ctcdecode/output_graph.pbmm PIP_DEFAULT_TIMEOUT: "60" - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-11-gbea86c1" command: - "/bin/bash" diff --git a/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml index d37e950c..ec915f8d 100644 --- a/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml +++ b/taskcluster/test-lite_benchmark_model-linux-amd64-opt.yml @@ -4,7 +4,7 @@ build: - "test-training_upstream-linux-amd64-py27mu-opt" args: tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/tc-lite_benchmark_model-ds-tests.sh" - benchmark_model_bin: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/lite_benchmark_model" + benchmark_model_bin: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.cpu/artifacts/public/lite_benchmark_model" metadata: name: "DeepSpeech Linux AMD64 CPU TF Lite benchmark_model" description: "Testing DeepSpeech TF Lite benchmark_model for Linux/AMD64, CPU only, optimized version" diff --git a/taskcluster/test-raspbian-opt-base.tyml b/taskcluster/test-raspbian-opt-base.tyml index dbb4e012..e1ee3159 100644 --- a/taskcluster/test-raspbian-opt-base.tyml +++ b/taskcluster/test-raspbian-opt-base.tyml @@ -43,7 +43,7 @@ then: PIP_DEFAULT_TIMEOUT: "60" PIP_EXTRA_INDEX_URL: "https://www.piwheels.org/simple" EXTRA_PYTHON_CONFIGURE_OPTS: "--with-fpectl" # Required by Raspbian Stretch / PiWheels - EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-5-g1c93ca2" + EXPECTED_TENSORFLOW_VERSION: "TensorFlow: v1.12.0-rc2-11-gbea86c1" command: - "/bin/bash" diff --git a/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml b/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml index 632f8316..ad8f6025 100644 --- a/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml +++ b/taskcluster/test-training_upstream-linux-amd64-py27mu-opt.yml @@ -7,7 +7,7 @@ build: apt-get -qq -y install ${python.packages_trusty.apt} args: tests_cmdline: "${system.homedir.linux}/DeepSpeech/ds/tc-train-tests.sh 2.7.14:mu" - convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.1c93ca24c99d7011ad639eea4cd96e4fe45e1a95.cpu/artifacts/public/convert_graphdef_memmapped_format" + convert_graphdef: "https://index.taskcluster.net/v1/task/project.deepspeech.tensorflow.pip.r1.12.bea86c1e884730cf7f8615eb24d31872c198c766.cpu/artifacts/public/convert_graphdef_memmapped_format" metadata: name: "DeepSpeech Linux AMD64 CPU upstream training Py2.7 mu" description: "Training a DeepSpeech LDC93S1 model for Linux/AMD64 using upstream TensorFlow Python 2.7 mu, CPU only, optimized version"