diff --git a/.gitattributes b/.gitattributes index 9e9082de011c838e69a0ead4d219c447b180cfce..4844958025d631da33b010d5ad50e5a80bed751d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -40,3 +40,26 @@ output.mp3 filter=lfs diff=lfs merge=lfs -text requirements.txt filter=lfs diff=lfs merge=lfs -text sample.mp3 filter=lfs diff=lfs merge=lfs -text text2speech.mp3 filter=lfs diff=lfs merge=lfs -text +models/char-clas/cz/Bi-RNN/model_2.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/char-clas/cz/Bi-RNN/model_2.meta filter=lfs diff=lfs merge=lfs -text +models/char-clas/cz/CharClassifier.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/char-clas/en/Bi-RNN/model_1.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/char-clas/en/Bi-RNN/model_1.meta filter=lfs diff=lfs merge=lfs -text +models/char-clas/en/CharClassifier.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/A-RNN/model.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/A-RNN/model.meta filter=lfs diff=lfs merge=lfs -text +models/gap-clas/Bi-RNN.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/CNN-CG.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/large/CNN-CG.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/RNN-A/Bi-RNN.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/RNN-A/Bi-RNN.meta filter=lfs diff=lfs merge=lfs -text +models/gap-clas/RNN/Bi-RNN-new.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/gap-clas/RNN/Bi-RNN-new.meta filter=lfs diff=lfs merge=lfs -text +models/word-clas/CTC/Classifier1.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/word-clas/CTC/Classifier1.meta filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/CTC/Classifier2.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/CTC/Classifier2.meta filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/SeqRNN/Classifier.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/SeqRNN/Classifier.meta filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/WordClassifier2.data-00000-of-00001 filter=lfs diff=lfs merge=lfs -text +models/word-clas/en/WordClassifier2.meta filter=lfs diff=lfs merge=lfs -text diff --git a/models/README.md b/models/README.md new file mode 100644 index 0000000000000000000000000000000000000000..dae90d5cf18b167b55c0ce9ce6bbe12cd66afb91 --- /dev/null +++ b/models/README.md @@ -0,0 +1,5 @@ +# Machine Learning Models +You have to donwload pre-trained ML models before using some of the notebooks. + +Download and extract the models in this folder: + diff --git a/models/char-clas/cz/Bi-RNN/checkpoint b/models/char-clas/cz/Bi-RNN/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..c87b927a84866bf8e96301e7f495b717ccc4de5e --- /dev/null +++ b/models/char-clas/cz/Bi-RNN/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model_2" +all_model_checkpoint_paths: "model_2" diff --git a/models/char-clas/cz/Bi-RNN/model_2.data-00000-of-00001 b/models/char-clas/cz/Bi-RNN/model_2.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..df462c270da01b75062fa80671d103249cfb278f --- /dev/null +++ b/models/char-clas/cz/Bi-RNN/model_2.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c54a4b4c8d925bee557917ffa2d1f43befdc21035e8fe0b482caf2aa9051bf20 +size 145353836 diff --git a/models/char-clas/cz/Bi-RNN/model_2.index b/models/char-clas/cz/Bi-RNN/model_2.index new file mode 100644 index 0000000000000000000000000000000000000000..b761ea79fdddf32d01e341d24f74220a45945c98 Binary files /dev/null and b/models/char-clas/cz/Bi-RNN/model_2.index differ diff --git a/models/char-clas/cz/Bi-RNN/model_2.meta b/models/char-clas/cz/Bi-RNN/model_2.meta new file mode 100644 index 0000000000000000000000000000000000000000..5f105c39ab2917cf7dda688372e8e48465a70a6f --- /dev/null +++ b/models/char-clas/cz/Bi-RNN/model_2.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cae04a4752de5f50f2928d8eadb1fc0a68a6bd4b26dd936a94d5f4852b02532e +size 1864590 diff --git a/models/char-clas/cz/CharClassifier.data-00000-of-00001 b/models/char-clas/cz/CharClassifier.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..72af23049959f24776d0dc3c9a21cc82b1271837 --- /dev/null +++ b/models/char-clas/cz/CharClassifier.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:921c2981f453c8bd09a278142d10fe0b0ec54b34f00b6b99527bd7990e04ee0f +size 6745052 diff --git a/models/char-clas/cz/CharClassifier.index b/models/char-clas/cz/CharClassifier.index new file mode 100644 index 0000000000000000000000000000000000000000..0d5dc763d49514cf650586c948813184cffa8b4a Binary files /dev/null and b/models/char-clas/cz/CharClassifier.index differ diff --git a/models/char-clas/cz/CharClassifier.meta b/models/char-clas/cz/CharClassifier.meta new file mode 100644 index 0000000000000000000000000000000000000000..94fbd86cc0a684d93acc57011b5d4ed7601d1629 Binary files /dev/null and b/models/char-clas/cz/CharClassifier.meta differ diff --git a/models/char-clas/cz/checkpoint b/models/char-clas/cz/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..70b68efebd8bd6ae062d77cfe0ca04d7409b8a55 --- /dev/null +++ b/models/char-clas/cz/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "CharClassifier" +all_model_checkpoint_paths: "CharClassifier" diff --git a/models/char-clas/en/Bi-RNN/checkpoint b/models/char-clas/en/Bi-RNN/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..9877ecbb03c3460c8775ef14a4031e17b44892af --- /dev/null +++ b/models/char-clas/en/Bi-RNN/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model_1" +all_model_checkpoint_paths: "model_1" diff --git a/models/char-clas/en/Bi-RNN/model_1.data-00000-of-00001 b/models/char-clas/en/Bi-RNN/model_1.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..89ee0eb3b31976f6d52f557eb8087257ce8f97b4 --- /dev/null +++ b/models/char-clas/en/Bi-RNN/model_1.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fd3a4cb72afd75b88dafacf6de6e53086724b3bbdcc19a6f68f073a35952b1ed +size 145169156 diff --git a/models/char-clas/en/Bi-RNN/model_1.index b/models/char-clas/en/Bi-RNN/model_1.index new file mode 100644 index 0000000000000000000000000000000000000000..b4e828739c7ac2055db6b4fbb2c08857f7831d6a Binary files /dev/null and b/models/char-clas/en/Bi-RNN/model_1.index differ diff --git a/models/char-clas/en/Bi-RNN/model_1.meta b/models/char-clas/en/Bi-RNN/model_1.meta new file mode 100644 index 0000000000000000000000000000000000000000..91d944f5e24aaceefb81e949a9518be7eb656537 --- /dev/null +++ b/models/char-clas/en/Bi-RNN/model_1.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d7924276bbfa6a042d76638152276aa05d4a15061a9a28aab4e89bf231c8e89 +size 1861142 diff --git a/models/char-clas/en/CharClassifier.data-00000-of-00001 b/models/char-clas/en/CharClassifier.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..fa9db9b224fb73f3b6d717720a564d8b303a1d0c --- /dev/null +++ b/models/char-clas/en/CharClassifier.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e8d85a7810fe30bfea4c9a474787ada5988a8b85202b5b1542b93e6de4159c +size 4440692 diff --git a/models/char-clas/en/CharClassifier.index b/models/char-clas/en/CharClassifier.index new file mode 100644 index 0000000000000000000000000000000000000000..57d580800dce567fa4ff5fe3862300167151bf98 Binary files /dev/null and b/models/char-clas/en/CharClassifier.index differ diff --git a/models/char-clas/en/CharClassifier.meta b/models/char-clas/en/CharClassifier.meta new file mode 100644 index 0000000000000000000000000000000000000000..027ba0d3a8e2b2e7c875c23f1f14115c75fd15f1 Binary files /dev/null and b/models/char-clas/en/CharClassifier.meta differ diff --git a/models/char-clas/en/checkpoint b/models/char-clas/en/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..70b68efebd8bd6ae062d77cfe0ca04d7409b8a55 --- /dev/null +++ b/models/char-clas/en/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "CharClassifier" +all_model_checkpoint_paths: "CharClassifier" diff --git a/models/freeze_graph.py b/models/freeze_graph.py new file mode 100644 index 0000000000000000000000000000000000000000..3d68537d8b6a600d043c76eeadca7c3bd6ed01a3 --- /dev/null +++ b/models/freeze_graph.py @@ -0,0 +1,263 @@ +# EDITED on 10. 9. 2017 for meta graph freezing +# +# Copyright 2015 The TensorFlow Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============================================================================== +"""Converts checkpoint variables into Const ops in a standalone GraphDef file. + +This script is designed to take a GraphDef proto, a SaverDef proto, and a set of +variable values stored in a checkpoint file, and output a GraphDef with all of +the variable ops converted into const ops containing the values of the +variables. + +It's useful to do this when we need to load a single file in C++, especially in +environments like mobile or embedded where we may not have access to the +RestoreTensor ops and file loading calls that they rely on. + +An example of command-line usage is: +bazel build tensorflow/python/tools:freeze_graph && \ +bazel-bin/tensorflow/python/tools/freeze_graph \ +--input_graph=some_graph_def.pb \ +--input_checkpoint=model.ckpt-8361242 \ +--output_graph=/tmp/frozen_graph.pb --output_node_names=softmax + +You can also look at freeze_graph_test.py for an example of how to use it. + +""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import argparse +import sys + +from google.protobuf import text_format + +from tensorflow.contrib.saved_model.python.saved_model import reader +from tensorflow.core.framework import graph_pb2 +from tensorflow.core.protobuf import saver_pb2 +from tensorflow.core.protobuf.meta_graph_pb2 import MetaGraphDef +from tensorflow.python import pywrap_tensorflow +from tensorflow.python.client import session +from tensorflow.python.framework import graph_util +from tensorflow.python.framework import importer +from tensorflow.python.platform import app +from tensorflow.python.platform import gfile +from tensorflow.python.saved_model import loader +from tensorflow.python.saved_model import tag_constants +from tensorflow.python.training import saver as saver_lib + +FLAGS = None + + +def freeze_graph_with_def_protos(input_graph_def, + input_saver_def, + input_checkpoint, + output_node_names, + restore_op_name, + filename_tensor_name, + output_graph, + clear_devices, + initializer_nodes, + variable_names_blacklist="", + input_meta_graph_def=None, + input_saved_model_dir=None, + saved_model_tags=None): + """Converts all variables in a graph and checkpoint into constants.""" + del restore_op_name, filename_tensor_name # Unused by updated loading code. + + # 'input_checkpoint' may be a prefix if we're using Saver V2 format + if (not input_saved_model_dir and + not saver_lib.checkpoint_exists(input_checkpoint)): + print("Input checkpoint '" + input_checkpoint + "' doesn't exist!") + return -1 + + if not output_node_names: + print("You need to supply the name of a node to --output_node_names.") + return -1 + + # Remove all the explicit device specifications for this node. This helps to + # make the graph more portable. + if clear_devices: + if input_meta_graph_def: + for node in input_meta_graph_def.graph_def.node: + node.device = "" + elif input_graph_def: + for node in input_graph_def.node: + node.device = "" + + if input_graph_def: + _ = importer.import_graph_def(input_graph_def, name="") + with session.Session() as sess: + if input_saver_def: + saver = saver_lib.Saver(saver_def=input_saver_def) + saver.restore(sess, input_checkpoint) + elif input_meta_graph_def: + restorer = saver_lib.import_meta_graph( + input_meta_graph_def, clear_devices=True) + restorer.restore(sess, input_checkpoint) + if initializer_nodes: + sess.run(initializer_nodes.split(",")) + elif input_saved_model_dir: + if saved_model_tags is None: + saved_model_tags = [] + loader.load(sess, saved_model_tags, input_saved_model_dir) + else: + var_list = {} + reader = pywrap_tensorflow.NewCheckpointReader(input_checkpoint) + var_to_shape_map = reader.get_variable_to_shape_map() + for key in var_to_shape_map: + try: + tensor = sess.graph.get_tensor_by_name(key + ":0") + except KeyError: + # This tensor doesn't exist in the graph (for example it's + # 'global_step' or a similar housekeeping element) so skip it. + continue + var_list[key] = tensor + saver = saver_lib.Saver(var_list=var_list) + saver.restore(sess, input_checkpoint) + if initializer_nodes: + sess.run(initializer_nodes.split(",")) + + variable_names_blacklist = (variable_names_blacklist.split(",") + if variable_names_blacklist else None) + + if input_meta_graph_def: + output_graph_def = graph_util.convert_variables_to_constants( + sess, + input_meta_graph_def.graph_def, + output_node_names.split(","), + variable_names_blacklist=variable_names_blacklist) + else: + output_graph_def = graph_util.convert_variables_to_constants( + sess, + input_graph_def, + output_node_names.split(","), + variable_names_blacklist=variable_names_blacklist) + + # Write GraphDef to file if output path has been given. + if output_graph: + with gfile.GFile(output_graph, "wb") as f: + f.write(output_graph_def.SerializeToString()) + + return output_graph_def + + +def _parse_input_graph_proto(input_graph, input_binary): + """Parser input tensorflow graph into GraphDef proto.""" + if not gfile.Exists(input_graph): + print("Input graph file '" + input_graph + "' does not exist!") + return -1 + input_graph_def = graph_pb2.GraphDef() + mode = "rb" if input_binary else "r" + with gfile.FastGFile(input_graph, mode) as f: + if input_binary: + input_graph_def.ParseFromString(f.read()) + else: + text_format.Merge(f.read(), input_graph_def) + return input_graph_def + + +def _parse_input_meta_graph_proto(input_graph, input_binary): + """Parser input tensorflow graph into MetaGraphDef proto.""" + if not gfile.Exists(input_graph): + print("Input meta graph file '" + input_graph + "' does not exist!") + return -1 + input_meta_graph_def = MetaGraphDef() + mode = "rb" if input_binary else "r" + with gfile.FastGFile(input_graph, mode) as f: + if input_binary: + input_meta_graph_def.ParseFromString(f.read()) + else: + text_format.Merge(f.read(), input_meta_graph_def) + print("Loaded meta graph file '" + input_graph) + return input_meta_graph_def + + +def _parse_input_saver_proto(input_saver, input_binary): + """Parser input tensorflow Saver into SaverDef proto.""" + if not gfile.Exists(input_saver): + print("Input saver file '" + input_saver + "' does not exist!") + return -1 + mode = "rb" if input_binary else "r" + with gfile.FastGFile(input_saver, mode) as f: + saver_def = saver_pb2.SaverDef() + if input_binary: + saver_def.ParseFromString(f.read()) + else: + text_format.Merge(f.read(), saver_def) + return saver_def + + +def get_meta_graph_def(saved_model_dir, tag_set): + """Gets MetaGraphDef from SavedModel. + + Returns the MetaGraphDef for the given tag-set and SavedModel directory. + + Args: + saved_model_dir: Directory containing the SavedModel to inspect or execute. + tag_set: Group of tag(s) of the MetaGraphDef to load, in string format, + separated by ','. For tag-set contains multiple tags, all tags must be + passed in. + + Raises: + RuntimeError: An error when the given tag-set does not exist in the + SavedModel. + + Returns: + A MetaGraphDef corresponding to the tag-set. + """ + saved_model = reader.read_saved_model(saved_model_dir) + set_of_tags = set(tag_set.split(',')) + for meta_graph_def in saved_model.meta_graphs: + if set(meta_graph_def.meta_info_def.tags) == set_of_tags: + return meta_graph_def + + raise RuntimeError('MetaGraphDef associated with tag-set ' + tag_set + + ' could not be found in SavedModel') + + +def freeze_graph(input_graph, + input_saver, + input_binary, + input_checkpoint, + output_node_names, + restore_op_name, + filename_tensor_name, + output_graph, + clear_devices, + initializer_nodes, + variable_names_blacklist="", + input_meta_graph=None, + input_saved_model_dir=None, + saved_model_tags=tag_constants.SERVING): + """Converts all variables in a graph and checkpoint into constants.""" + input_graph_def = None + if input_saved_model_dir: + input_graph_def = get_meta_graph_def( + input_saved_model_dir, saved_model_tags).graph_def + elif input_graph: + input_graph_def = _parse_input_graph_proto(input_graph, input_binary) + input_meta_graph_def = None + if input_meta_graph: + input_meta_graph_def = _parse_input_meta_graph_proto( + input_meta_graph, input_binary) + input_saver_def = None + if input_saver: + input_saver_def = _parse_input_saver_proto(input_saver, input_binary) + freeze_graph_with_def_protos( + input_graph_def, input_saver_def, input_checkpoint, output_node_names, + restore_op_name, filename_tensor_name, output_graph, clear_devices, + initializer_nodes, variable_names_blacklist, input_meta_graph_def, + input_saved_model_dir, saved_model_tags.split(",")) diff --git a/models/gap-clas/A-RNN/checkpoint b/models/gap-clas/A-RNN/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..a6e034f303e6fd8795171c44ad5816e660476552 --- /dev/null +++ b/models/gap-clas/A-RNN/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "model" +all_model_checkpoint_paths: "model" diff --git a/models/gap-clas/A-RNN/model.data-00000-of-00001 b/models/gap-clas/A-RNN/model.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..0e9d44a31965b93a92e2a109fe5c58426cc077a5 --- /dev/null +++ b/models/gap-clas/A-RNN/model.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9340ba3f9156f671ba3e78d61f280d32195f31d287e2cb4b2e8121a39ef3f2 +size 20459744 diff --git a/models/gap-clas/A-RNN/model.index b/models/gap-clas/A-RNN/model.index new file mode 100644 index 0000000000000000000000000000000000000000..6fe760b8c516ebaadf90fa5f7a5db5e885382b20 Binary files /dev/null and b/models/gap-clas/A-RNN/model.index differ diff --git a/models/gap-clas/A-RNN/model.meta b/models/gap-clas/A-RNN/model.meta new file mode 100644 index 0000000000000000000000000000000000000000..15f8aa820698eb9cdb6aae6c2dcff2e733cb7de8 --- /dev/null +++ b/models/gap-clas/A-RNN/model.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87cd2cb0b4e89914887127c607bb3240f272feb966afa7635647945c45a73f54 +size 2161008 diff --git a/models/gap-clas/Bi-RNN.data-00000-of-00001 b/models/gap-clas/Bi-RNN.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..ae45b9924b1548965adc8a7dce150e6939fdb2f0 --- /dev/null +++ b/models/gap-clas/Bi-RNN.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e3e67304611c52f34efd64d27ace70ddfa8ea094be4b9e0a95754afcc050029 +size 63168532 diff --git a/models/gap-clas/Bi-RNN.index b/models/gap-clas/Bi-RNN.index new file mode 100644 index 0000000000000000000000000000000000000000..a54ecfa65072199cd361ae53bbded899ae5bf8d8 Binary files /dev/null and b/models/gap-clas/Bi-RNN.index differ diff --git a/models/gap-clas/Bi-RNN.meta b/models/gap-clas/Bi-RNN.meta new file mode 100644 index 0000000000000000000000000000000000000000..439f779b428afa784380252b4f46dad0b5205c71 Binary files /dev/null and b/models/gap-clas/Bi-RNN.meta differ diff --git a/models/gap-clas/CNN-CG.data-00000-of-00001 b/models/gap-clas/CNN-CG.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..5b2f89dbf46711d684cb189c4072038a217d477b --- /dev/null +++ b/models/gap-clas/CNN-CG.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d753209958f41092716721614ad07f29a8bab2957d23efdf30b8d5cae792c55 +size 36324872 diff --git a/models/gap-clas/CNN-CG.index b/models/gap-clas/CNN-CG.index new file mode 100644 index 0000000000000000000000000000000000000000..4252db5bf8894c7b3a4cc564cad410731d6c07a4 Binary files /dev/null and b/models/gap-clas/CNN-CG.index differ diff --git a/models/gap-clas/CNN-CG.meta b/models/gap-clas/CNN-CG.meta new file mode 100644 index 0000000000000000000000000000000000000000..481b4d0e5a39953fd0fe023bd8d0b46a22c42da7 Binary files /dev/null and b/models/gap-clas/CNN-CG.meta differ diff --git a/models/gap-clas/RNN-A/Bi-RNN.data-00000-of-00001 b/models/gap-clas/RNN-A/Bi-RNN.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..a22c891efe92dca123e0c6af24d8f8ce0f67635e --- /dev/null +++ b/models/gap-clas/RNN-A/Bi-RNN.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:840283cecc2cd25a4285cd2146852bdb91f44a8f5676c6cec2ef9dc2e038bc45 +size 35047968 diff --git a/models/gap-clas/RNN-A/Bi-RNN.index b/models/gap-clas/RNN-A/Bi-RNN.index new file mode 100644 index 0000000000000000000000000000000000000000..aa43e80d93ac23903b084856b94c7ca7a5ff611c Binary files /dev/null and b/models/gap-clas/RNN-A/Bi-RNN.index differ diff --git a/models/gap-clas/RNN-A/Bi-RNN.meta b/models/gap-clas/RNN-A/Bi-RNN.meta new file mode 100644 index 0000000000000000000000000000000000000000..a3544b9bae83167b82d2a4ba762ad8e5b6f0d2a6 --- /dev/null +++ b/models/gap-clas/RNN-A/Bi-RNN.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4f61f67c5ff6ed1888228d204539626c75cf4422b14ddf543f46ec57a43b352 +size 1946207 diff --git a/models/gap-clas/RNN-A/checkpoint b/models/gap-clas/RNN-A/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..8e87bce6b6b91e924a94fae3c4abaabcb97d05db --- /dev/null +++ b/models/gap-clas/RNN-A/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "Bi-RNN" +all_model_checkpoint_paths: "Bi-RNN" diff --git a/models/gap-clas/RNN/Bi-RNN-new.data-00000-of-00001 b/models/gap-clas/RNN/Bi-RNN-new.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..18fd44c929f479e4fd535bf7cfc8c0d04383fb6f --- /dev/null +++ b/models/gap-clas/RNN/Bi-RNN-new.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01cebebe4e81fc511b6224b2a003d35968aa25179e2095cf5412dd7f8df416d4 +size 66272288 diff --git a/models/gap-clas/RNN/Bi-RNN-new.index b/models/gap-clas/RNN/Bi-RNN-new.index new file mode 100644 index 0000000000000000000000000000000000000000..48af206294bc9863d7a7b8495bc7f774833a1295 Binary files /dev/null and b/models/gap-clas/RNN/Bi-RNN-new.index differ diff --git a/models/gap-clas/RNN/Bi-RNN-new.meta b/models/gap-clas/RNN/Bi-RNN-new.meta new file mode 100644 index 0000000000000000000000000000000000000000..ac6268399cab661bcf97674ec7677ceadd4e636d --- /dev/null +++ b/models/gap-clas/RNN/Bi-RNN-new.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:43da4e220fb7e11b9c244167acd975611c771c645c006943a2f4241448608867 +size 1812295 diff --git a/models/gap-clas/RNN/checkpoint b/models/gap-clas/RNN/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..40fef1218d782fc3be4b3a70e776fa8fea0c2804 --- /dev/null +++ b/models/gap-clas/RNN/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "Bi-RNN-new" +all_model_checkpoint_paths: "Bi-RNN-new" diff --git a/models/gap-clas/checkpoint b/models/gap-clas/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..4588593b2134b21529248ead6975fd8cfd259414 --- /dev/null +++ b/models/gap-clas/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "CNN-CG" +all_model_checkpoint_paths: "CNN-CG" diff --git a/models/gap-clas/large/CNN-CG.data-00000-of-00001 b/models/gap-clas/large/CNN-CG.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..a352042bf4fc42ed5e97047307808fe0355c9bf2 --- /dev/null +++ b/models/gap-clas/large/CNN-CG.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1ba8a17b60e3155406ea2a06d0dfcf13b3a51e4b219cf94258d41ba8ba6446b +size 108104072 diff --git a/models/gap-clas/large/CNN-CG.index b/models/gap-clas/large/CNN-CG.index new file mode 100644 index 0000000000000000000000000000000000000000..1f261ad64df9468832ba3c5842f88502878be93e Binary files /dev/null and b/models/gap-clas/large/CNN-CG.index differ diff --git a/models/gap-clas/large/CNN-CG.meta b/models/gap-clas/large/CNN-CG.meta new file mode 100644 index 0000000000000000000000000000000000000000..82b0f52404670046341e7a11bc03bcefac2e40dd Binary files /dev/null and b/models/gap-clas/large/CNN-CG.meta differ diff --git a/models/gap-clas/large/checkpoint b/models/gap-clas/large/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..4588593b2134b21529248ead6975fd8cfd259414 --- /dev/null +++ b/models/gap-clas/large/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "CNN-CG" +all_model_checkpoint_paths: "CNN-CG" diff --git a/models/graph_optimizer.py b/models/graph_optimizer.py new file mode 100644 index 0000000000000000000000000000000000000000..5b7e73381728ba6dd0554d317460531734aa250c --- /dev/null +++ b/models/graph_optimizer.py @@ -0,0 +1,87 @@ +""" +Usage: +python graph_optimizer.py \ +--tf_path ../../tensorflow/ \ +--model_folder "path_to_the_model_folder" \ +--output_names "activation, accuracy" \ +--input_names "x" +""" + +import os, argparse +from subprocess import call + +import freeze_graph +import tensorflow as tf + +dir = os.path.dirname(os.path.realpath(__file__)) + +fr_name = "_frozen.pb" +op_name = "_optimized.pb" + + +def graph_freez(model_folder, output_names): + print("Model folder", model_folder) + checkpoint = tf.train.get_checkpoint_state(model_folder) + print(checkpoint) + checkpoint_path = checkpoint.model_checkpoint_path + output_graph_filename = checkpoint_path + fr_name + + input_saver_def_path = "" + input_binary = True + output_node_names = output_names + restore_op_name = "save/restore_all" + filename_tensor_name = "save/Const:0" + clear_devices = False + input_meta_graph = checkpoint_path + ".meta" + + freeze_graph.freeze_graph( + "", input_saver_def_path, input_binary, checkpoint_path, + output_node_names, restore_op_name, filename_tensor_name, + output_graph_filename, clear_devices, "", "", input_meta_graph) + + return output_graph_filename + + +def graph_optimization(tf_path, graph_file, input_names, output_names): + output_file = graph_file[:-len(fr_name)] + op_name + tf_path += "bazel-bin/tensorflow/tools/graph_transforms/transform_graph" + + call([tf_path, + "--in_graph=" + graph_file, + "--out_graph=" + output_file, + "--inputs=" + input_names, + "--outputs=" + output_names, + """--transforms= + strip_unused_nodes(type=float, shape="1,299,299,3") + fold_constants(ignore_errors=true) + fold_batch_norms + fold_old_batch_norms"""]) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser( + "Script freezes graph and optimize it for mobile usage") + parser.add_argument( + "--model", + type=str, + help="Path of folder + model name (folder_path/model_name)") + parser.add_argument( + "--input_names", + type=str, + default="", + help="Input node names, comma separated.") + parser.add_argument( + "--output_names", + type=str, + default="", + help="Output node names, comma separated.") + parser.add_argument( + "--tf_path", + type=str, + default="../../tensorflow/", + help="Path to the folder with tensorflow (requires bazel build of graph_transforms)") + + args = parser.parse_args() + + graph = graph_freez(args.model, args.output_names) + graph_optimization(args.tf_path, graph, args.input_names, args.output_names) diff --git a/models/word-clas/CTC/Classifier1.data-00000-of-00001 b/models/word-clas/CTC/Classifier1.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..a9b34266a0f8201de7358f7706c7aaf5d8e187f8 --- /dev/null +++ b/models/word-clas/CTC/Classifier1.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8257c216932dd878023da0a28719f3aa09ba5cf1ff6d9187fe09a9488f0f784 +size 304709420 diff --git a/models/word-clas/CTC/Classifier1.index b/models/word-clas/CTC/Classifier1.index new file mode 100644 index 0000000000000000000000000000000000000000..fc0771e8b041ca8d2968ae9628958de5315db5f1 Binary files /dev/null and b/models/word-clas/CTC/Classifier1.index differ diff --git a/models/word-clas/CTC/Classifier1.meta b/models/word-clas/CTC/Classifier1.meta new file mode 100644 index 0000000000000000000000000000000000000000..328285dfa316bceaa138691e5bc2e43237742abd --- /dev/null +++ b/models/word-clas/CTC/Classifier1.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64a0626ed8bb9aab20faf54b1b8a697ddd932c3ce0dd9d7428d0455c7a784350 +size 1844874 diff --git a/models/word-clas/CTC/checkpoint b/models/word-clas/CTC/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..6dfbe623baf002a0846e7281ced2ec2ca0d1c725 --- /dev/null +++ b/models/word-clas/CTC/checkpoint @@ -0,0 +1,6 @@ +model_checkpoint_path: "Classifier2-16500" +all_model_checkpoint_paths: "Classifier2-14500" +all_model_checkpoint_paths: "Classifier2-15000" +all_model_checkpoint_paths: "Classifier2-15500" +all_model_checkpoint_paths: "Classifier2-16000" +all_model_checkpoint_paths: "Classifier2-16500" diff --git a/models/word-clas/en/CTC/Classifier2.data-00000-of-00001 b/models/word-clas/en/CTC/Classifier2.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..e3ad7238d68d9261338784734e209a3e41b6a577 --- /dev/null +++ b/models/word-clas/en/CTC/Classifier2.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f40c80e41ea158725a366ebbed70ddd31d367eabee3334792d71c434e2518f7 +size 180905808 diff --git a/models/word-clas/en/CTC/Classifier2.index b/models/word-clas/en/CTC/Classifier2.index new file mode 100644 index 0000000000000000000000000000000000000000..f4e252d65ff28247c6af0cb9d8aa324917fa831d Binary files /dev/null and b/models/word-clas/en/CTC/Classifier2.index differ diff --git a/models/word-clas/en/CTC/Classifier2.meta b/models/word-clas/en/CTC/Classifier2.meta new file mode 100644 index 0000000000000000000000000000000000000000..5702016aa26cdcb27cea9a7a2555d5d578a76c0b --- /dev/null +++ b/models/word-clas/en/CTC/Classifier2.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89c4a6dfd6ed2eed76259a9b162e7b75cb45a397447c449185bb98e37d6c06b7 +size 1165772 diff --git a/models/word-clas/en/CTC/checkpoint b/models/word-clas/en/CTC/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..f41d4378a7e6e0caa49ff981f1fee5c6e6737303 --- /dev/null +++ b/models/word-clas/en/CTC/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "Classifier2" +all_model_checkpoint_paths: "Classifier2" diff --git a/models/word-clas/en/SeqRNN/Classifier.data-00000-of-00001 b/models/word-clas/en/SeqRNN/Classifier.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..1b1ac73dc587413d6c5955f941f0d252268999f8 --- /dev/null +++ b/models/word-clas/en/SeqRNN/Classifier.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c20b2f702d5b454bcc1f915db709c932ff49e95b903bae1131d799bf4363aa25 +size 115656128 diff --git a/models/word-clas/en/SeqRNN/Classifier.index b/models/word-clas/en/SeqRNN/Classifier.index new file mode 100644 index 0000000000000000000000000000000000000000..83147592940abb32dba4553f09bb40852ce0d267 Binary files /dev/null and b/models/word-clas/en/SeqRNN/Classifier.index differ diff --git a/models/word-clas/en/SeqRNN/Classifier.meta b/models/word-clas/en/SeqRNN/Classifier.meta new file mode 100644 index 0000000000000000000000000000000000000000..e09060d80e9170a4435941e1ba813e0ea27c50a5 --- /dev/null +++ b/models/word-clas/en/SeqRNN/Classifier.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45b61aa46a5c145470cc091448894c121b28766843ea6e96256bada910b36331 +size 2998503 diff --git a/models/word-clas/en/SeqRNN/checkpoint b/models/word-clas/en/SeqRNN/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..f41d4378a7e6e0caa49ff981f1fee5c6e6737303 --- /dev/null +++ b/models/word-clas/en/SeqRNN/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "Classifier2" +all_model_checkpoint_paths: "Classifier2" diff --git a/models/word-clas/en/WordClassifier2.data-00000-of-00001 b/models/word-clas/en/WordClassifier2.data-00000-of-00001 new file mode 100644 index 0000000000000000000000000000000000000000..bd200978a048f9eff65016e60ca81a53e18394cf --- /dev/null +++ b/models/word-clas/en/WordClassifier2.data-00000-of-00001 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48b60ccbae63b180e160160358567e8d6b3877763225a898482f6bce5b863286 +size 51895160 diff --git a/models/word-clas/en/WordClassifier2.index b/models/word-clas/en/WordClassifier2.index new file mode 100644 index 0000000000000000000000000000000000000000..995bb8173bd292336ab1630e59b5dd7d0cef2f02 Binary files /dev/null and b/models/word-clas/en/WordClassifier2.index differ diff --git a/models/word-clas/en/WordClassifier2.meta b/models/word-clas/en/WordClassifier2.meta new file mode 100644 index 0000000000000000000000000000000000000000..a8e232c99610e809bb1adae4a5146caac85e375c --- /dev/null +++ b/models/word-clas/en/WordClassifier2.meta @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33d343673dcebad2622b7c8f99415ee632965f8d0e938621d95230700caff560 +size 2055973 diff --git a/models/word-clas/en/checkpoint b/models/word-clas/en/checkpoint new file mode 100644 index 0000000000000000000000000000000000000000..6c39222cc731c0c12c3221b289c76492058b0e9a --- /dev/null +++ b/models/word-clas/en/checkpoint @@ -0,0 +1,2 @@ +model_checkpoint_path: "WordClassifier2" +all_model_checkpoint_paths: "WordClassifier2"