| @@ -15,6 +15,7 @@ | |||||
| ******************************************************************************/ | ******************************************************************************/ | ||||
| using System; | using System; | ||||
| using Tensorflow.Util; | |||||
| using static Tensorflow.Binding; | using static Tensorflow.Binding; | ||||
| namespace Tensorflow | namespace Tensorflow | ||||
| @@ -40,29 +41,32 @@ namespace Tensorflow | |||||
| public static Session LoadFromSavedModel(string path) | public static Session LoadFromSavedModel(string path) | ||||
| { | { | ||||
| var graph = c_api.TF_NewGraph(); | |||||
| var status = new Status(); | |||||
| var opt = new SessionOptions(); | |||||
| var tags = new string[] { "serve" }; | |||||
| var buffer = new TF_Buffer(); | |||||
| var sess = c_api.TF_LoadSessionFromSavedModel(opt, | |||||
| IntPtr.Zero, | |||||
| path, | |||||
| tags, | |||||
| tags.Length, | |||||
| graph, | |||||
| ref buffer, | |||||
| status); | |||||
| // load graph bytes | |||||
| // var data = new byte[buffer.length]; | |||||
| // Marshal.Copy(buffer.data, data, 0, (int)buffer.length); | |||||
| // var meta_graph = MetaGraphDef.Parser.ParseFrom(data);*/ | |||||
| status.Check(true); | |||||
| return new Session(sess, g: new Graph(graph).as_default()); | |||||
| lock (Locks.ProcessWide) | |||||
| { | |||||
| var graph = c_api.TF_NewGraph(); | |||||
| var status = new Status(); | |||||
| var opt = new SessionOptions(); | |||||
| var tags = new string[] {"serve"}; | |||||
| var buffer = new TF_Buffer(); | |||||
| var sess = c_api.TF_LoadSessionFromSavedModel(opt, | |||||
| IntPtr.Zero, | |||||
| path, | |||||
| tags, | |||||
| tags.Length, | |||||
| graph, | |||||
| ref buffer, | |||||
| status); | |||||
| // load graph bytes | |||||
| // var data = new byte[buffer.length]; | |||||
| // Marshal.Copy(buffer.data, data, 0, (int)buffer.length); | |||||
| // var meta_graph = MetaGraphDef.Parser.ParseFrom(data);*/ | |||||
| status.Check(true); | |||||
| return new Session(sess, g: new Graph(graph).as_default()).as_default(); | |||||
| } | |||||
| } | } | ||||
| public static implicit operator IntPtr(Session session) => session._handle; | public static implicit operator IntPtr(Session session) => session._handle; | ||||