From 1e4e9202a9ba1212e497f5b4875e67a8089f5f98 Mon Sep 17 00:00:00 2001 From: Oceania2018 Date: Sun, 9 Feb 2020 21:21:32 -0600 Subject: [PATCH] Protobuf.Text --- .../TensorFlow.Binding.csproj | 12 ++++++----- .../Saving/checkpoint_management.py.cs | 20 +++---------------- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/src/TensorFlowNET.Core/TensorFlow.Binding.csproj b/src/TensorFlowNET.Core/TensorFlow.Binding.csproj index dd83ae65..22006661 100644 --- a/src/TensorFlowNET.Core/TensorFlow.Binding.csproj +++ b/src/TensorFlowNET.Core/TensorFlow.Binding.csproj @@ -5,7 +5,7 @@ TensorFlow.NET Tensorflow 1.14.1 - 0.14.1.1 + 0.14.2.0 Haiping Chen, Meinrad Recheis, Eli Belash SciSharp STACK true @@ -18,12 +18,13 @@ Google's TensorFlow full binding in .NET Standard. Building, training and infering deep learning models. https://tensorflownet.readthedocs.io - 0.14.1.1 + 0.14.2.0 Changes since v0.14.0: 1: Add TransformGraphWithStringInputs. -2: tf.trainer.load_graph, tf.trainer.freeze_graph +2: tf.trainer.load_graph, tf.trainer.freeze_graph +3: Import Protobuf.Text 7.3 - 0.14.1.1 + 0.14.2.0 LICENSE true true @@ -60,8 +61,9 @@ https://tensorflownet.readthedocs.io - + + diff --git a/src/TensorFlowNET.Core/Training/Saving/checkpoint_management.py.cs b/src/TensorFlowNET.Core/Training/Saving/checkpoint_management.py.cs index 92550757..242464bd 100644 --- a/src/TensorFlowNET.Core/Training/Saving/checkpoint_management.py.cs +++ b/src/TensorFlowNET.Core/Training/Saving/checkpoint_management.py.cs @@ -20,6 +20,7 @@ using System.IO; using System.Linq; using static Tensorflow.SaverDef.Types; using static Tensorflow.Binding; +using Protobuf.Text; namespace Tensorflow { @@ -187,24 +188,9 @@ namespace Tensorflow var coord_checkpoint_filename = _GetCheckpointFilename(checkpoint_dir, latest_filename); if (File.Exists(coord_checkpoint_filename)) { - var file_content = File.ReadAllLines(coord_checkpoint_filename); + var file_content = File.ReadAllText(coord_checkpoint_filename); // https://github.com/protocolbuffers/protobuf/issues/6654 - // var ckpt = CheckpointState.Parser.ParseFrom(file_content); - var ckpt = new CheckpointState(); - var field = CheckpointState.Descriptor.FindFieldByName("model_checkpoint_path"); - ckpt.ModelCheckpointPath = file_content.FirstOrDefault(x => x.StartsWith(field.Name + ":")).Substring(field.Name.Length + 2); - // remove first and last quote. - ckpt.ModelCheckpointPath = ckpt.ModelCheckpointPath.Substring(1, ckpt.ModelCheckpointPath.Length - 2); - - field = CheckpointState.Descriptor.FindFieldByName("all_model_checkpoint_paths"); - file_content.Where(x => x.StartsWith(field.Name + ":")) - .ToList() - .ForEach(x => - { - string value = x.Substring(field.Name.Length + 2); - ckpt.AllModelCheckpointPaths.Add(value.Substring(1, value.Length - 2)); - }); - + var ckpt = CheckpointState.Parser.ParseText(file_content); if (string.IsNullOrEmpty(ckpt.ModelCheckpointPath)) throw new ValueError($"Invalid checkpoint state loaded from {checkpoint_dir}"); // For relative model_checkpoint_path and all_model_checkpoint_paths,