@@ -223,6 +223,22 @@ namespace Tensorflow.Gradients | |||||
return new Tensor[] { array_ops.reshape(grads[0], array_ops.shape(op.inputs[0])), null }; | return new Tensor[] { array_ops.reshape(grads[0], array_ops.shape(op.inputs[0])), null }; | ||||
} | } | ||||
[RegisterGradient("Pack")] | |||||
public static Tensor[] _PackGrad(Operation op, Tensor[] grads) | |||||
{ | |||||
var grad = grads[0]; | |||||
var num = op.get_attr<int>("N"); | |||||
var axis = op.get_attr<int>("axis"); | |||||
return array_ops.unstack(grad, num: num, axis: axis); | |||||
} | |||||
[RegisterGradient("Unpack")] | |||||
public static Tensor[] _UnpackGrad(Operation op, Tensor[] grads) | |||||
{ | |||||
var axis = op.get_attr<int>("axis"); | |||||
return new[] { array_ops.stack(grads, axis: axis) }; | |||||
} | |||||
[RegisterGradient("Pad")] | [RegisterGradient("Pad")] | ||||
public static Tensor[] _PadGrad(Operation op, Tensor[] grads) | public static Tensor[] _PadGrad(Operation op, Tensor[] grads) | ||||
{ | { | ||||
@@ -0,0 +1,70 @@ | |||||
/***************************************************************************** | |||||
Copyright 2021 The TensorFlow.NET 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. | |||||
******************************************************************************/ | |||||
using System; | |||||
using System.IO; | |||||
using System.IO.MemoryMappedFiles; | |||||
using System.Linq; | |||||
using Tensorflow; | |||||
namespace Tensorflow.IO | |||||
{ | |||||
public class MemmappedFileSystem | |||||
{ | |||||
public const string MEMMAPPED_PACKAGE_DEFAULT_NAME = "memmapped_package://."; | |||||
private MemoryMappedFile _mmapFile; | |||||
private MemmappedFileSystemDirectory _directory; | |||||
public MemmappedFileSystem(string path) | |||||
{ | |||||
using (var stream = File.OpenRead(path)) | |||||
{ | |||||
// Read the offset for the directory | |||||
var offsetData = new byte[sizeof(ulong)]; | |||||
stream.Seek(-sizeof(ulong), SeekOrigin.End); | |||||
stream.Read(offsetData, 0, sizeof(ulong)); | |||||
var offset = BitConverter.ToUInt64(offsetData, 0); | |||||
var dirLength = stream.Length - (long) offset - sizeof(ulong); | |||||
if (dirLength < 0) | |||||
{ | |||||
throw new InvalidDataException("Malformed mmapped filesystem!"); | |||||
} | |||||
var dirData = new byte[dirLength]; | |||||
stream.Seek((long) offset, SeekOrigin.Begin); | |||||
stream.Read(dirData, 0, (int) dirLength); | |||||
_directory = MemmappedFileSystemDirectory.Parser.ParseFrom(dirData); | |||||
} | |||||
_mmapFile = MemoryMappedFile.CreateFromFile(path, FileMode.Open); | |||||
} | |||||
public Stream OpenMemmapped(string filename) | |||||
{ | |||||
var entry = _directory.Element.FirstOrDefault(x => x.Name == filename); | |||||
if (entry == null) | |||||
{ | |||||
throw new FileNotFoundException($"Missing memmaped file entry: {filename}"); | |||||
} | |||||
return _mmapFile.CreateViewStream((long) entry.Offset, (long) entry.Length); | |||||
} | |||||
} | |||||
} |
@@ -494,20 +494,12 @@ namespace Tensorflow | |||||
return ops.convert_to_tensor(values, name: name); | return ops.convert_to_tensor(values, name: name); | ||||
} | } | ||||
var value_shape = ops.convert_to_tensor(values[0], name: name).shape; | |||||
return gen_array_ops.pack(values, axis: axis, name: name); | return gen_array_ops.pack(values, axis: axis, name: name); | ||||
} | } | ||||
public static Tensor[] unstack(Tensor value, int? num = null, int axis = 0, string name = "unstack") | public static Tensor[] unstack(Tensor value, int? num = null, int axis = 0, string name = "unstack") | ||||
{ | { | ||||
if (num == null) | |||||
{ | |||||
value = ops.convert_to_tensor(value); | |||||
var value_shape = value.shape; | |||||
num = (int)value_shape.dims[axis]; | |||||
} | |||||
num = num ?? value.shape.as_int_list()[axis]; | |||||
return gen_array_ops.unpack(value, num: num.Value, axis: axis, name: name); | return gen_array_ops.unpack(value, num: num.Value, axis: axis, name: name); | ||||
} | } | ||||
@@ -265,10 +265,8 @@ namespace Tensorflow | |||||
} | } | ||||
public static Tensor[] unpack(Tensor value, int num, int axis = 0, string name = null) | public static Tensor[] unpack(Tensor value, int num, int axis = 0, string name = null) | ||||
{ | |||||
var _op = tf.OpDefLib._apply_op_helper("Unpack", name, new { value, num, axis }); | |||||
return _op.outputs; | |||||
} | |||||
=> tf.Context.ExecuteOp("Unpack", name, new ExecuteOpArgs(value, num) | |||||
.SetAttributes(new { axis })); | |||||
public static Tensor where(Tensor condition, string name = null) | public static Tensor where(Tensor condition, string name = null) | ||||
{ | { | ||||
@@ -30,7 +30,7 @@ namespace Tensorflow { | |||||
"KnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvc3RlcF9zdGF0cy5wcm90bxom", | "KnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvc3RlcF9zdGF0cy5wcm90bxom", | ||||
"dGVuc29yZmxvdy9jb3JlL3Byb3RvYnVmL2NsdXN0ZXIucHJvdG8aJHRlbnNv", | "dGVuc29yZmxvdy9jb3JlL3Byb3RvYnVmL2NsdXN0ZXIucHJvdG8aJHRlbnNv", | ||||
"cmZsb3cvY29yZS9wcm90b2J1Zi9kZWJ1Zy5wcm90bxoudGVuc29yZmxvdy9j", | "cmZsb3cvY29yZS9wcm90b2J1Zi9kZWJ1Zy5wcm90bxoudGVuc29yZmxvdy9j", | ||||
"b3JlL3Byb3RvYnVmL3Jld3JpdGVyX2NvbmZpZy5wcm90byLJBQoKR1BVT3B0", | |||||
"b3JlL3Byb3RvYnVmL3Jld3JpdGVyX2NvbmZpZy5wcm90byKRBgoKR1BVT3B0", | |||||
"aW9ucxInCh9wZXJfcHJvY2Vzc19ncHVfbWVtb3J5X2ZyYWN0aW9uGAEgASgB", | "aW9ucxInCh9wZXJfcHJvY2Vzc19ncHVfbWVtb3J5X2ZyYWN0aW9uGAEgASgB", | ||||
"EhQKDGFsbG93X2dyb3d0aBgEIAEoCBIWCg5hbGxvY2F0b3JfdHlwZRgCIAEo", | "EhQKDGFsbG93X2dyb3d0aBgEIAEoCBIWCg5hbGxvY2F0b3JfdHlwZRgCIAEo", | ||||
"CRIfChdkZWZlcnJlZF9kZWxldGlvbl9ieXRlcxgDIAEoAxIbChN2aXNpYmxl", | "CRIfChdkZWZlcnJlZF9kZWxldGlvbl9ieXRlcxgDIAEoAxIbChN2aXNpYmxl", | ||||
@@ -38,123 +38,127 @@ namespace Tensorflow { | |||||
"ZWNzGAYgASgFEiQKHHBvbGxpbmdfaW5hY3RpdmVfZGVsYXlfbXNlY3MYByAB", | "ZWNzGAYgASgFEiQKHHBvbGxpbmdfaW5hY3RpdmVfZGVsYXlfbXNlY3MYByAB", | ||||
"KAUSHAoUZm9yY2VfZ3B1X2NvbXBhdGlibGUYCCABKAgSOQoMZXhwZXJpbWVu", | "KAUSHAoUZm9yY2VfZ3B1X2NvbXBhdGlibGUYCCABKAgSOQoMZXhwZXJpbWVu", | ||||
"dGFsGAkgASgLMiMudGVuc29yZmxvdy5HUFVPcHRpb25zLkV4cGVyaW1lbnRh", | "dGFsGAkgASgLMiMudGVuc29yZmxvdy5HUFVPcHRpb25zLkV4cGVyaW1lbnRh", | ||||
"bBqCAwoMRXhwZXJpbWVudGFsEksKD3ZpcnR1YWxfZGV2aWNlcxgBIAMoCzIy", | |||||
"bBrKAwoMRXhwZXJpbWVudGFsEksKD3ZpcnR1YWxfZGV2aWNlcxgBIAMoCzIy", | |||||
"LnRlbnNvcmZsb3cuR1BVT3B0aW9ucy5FeHBlcmltZW50YWwuVmlydHVhbERl", | "LnRlbnNvcmZsb3cuR1BVT3B0aW9ucy5FeHBlcmltZW50YWwuVmlydHVhbERl", | ||||
"dmljZXMSGgoSdXNlX3VuaWZpZWRfbWVtb3J5GAIgASgIEiMKG251bV9kZXZf", | "dmljZXMSGgoSdXNlX3VuaWZpZWRfbWVtb3J5GAIgASgIEiMKG251bV9kZXZf", | ||||
"dG9fZGV2X2NvcHlfc3RyZWFtcxgDIAEoBRIdChVjb2xsZWN0aXZlX3Jpbmdf", | "dG9fZGV2X2NvcHlfc3RyZWFtcxgDIAEoBRIdChVjb2xsZWN0aXZlX3Jpbmdf", | ||||
"b3JkZXIYBCABKAkSHQoVdGltZXN0YW1wZWRfYWxsb2NhdG9yGAUgASgIEiMK", | "b3JkZXIYBCABKAkSHQoVdGltZXN0YW1wZWRfYWxsb2NhdG9yGAUgASgIEiMK", | ||||
"G2tlcm5lbF90cmFja2VyX21heF9pbnRlcnZhbBgHIAEoBRIgChhrZXJuZWxf", | "G2tlcm5lbF90cmFja2VyX21heF9pbnRlcnZhbBgHIAEoBRIgChhrZXJuZWxf", | ||||
"dHJhY2tlcl9tYXhfYnl0ZXMYCCABKAUSIgoaa2VybmVsX3RyYWNrZXJfbWF4", | "dHJhY2tlcl9tYXhfYnl0ZXMYCCABKAUSIgoaa2VybmVsX3RyYWNrZXJfbWF4", | ||||
"X3BlbmRpbmcYCSABKAUaOwoOVmlydHVhbERldmljZXMSFwoPbWVtb3J5X2xp", | |||||
"bWl0X21iGAEgAygCEhAKCHByaW9yaXR5GAIgAygFIoUDChBPcHRpbWl6ZXJP", | |||||
"cHRpb25zEisKI2RvX2NvbW1vbl9zdWJleHByZXNzaW9uX2VsaW1pbmF0aW9u", | |||||
"GAEgASgIEhsKE2RvX2NvbnN0YW50X2ZvbGRpbmcYAiABKAgSJAocbWF4X2Zv", | |||||
"bGRlZF9jb25zdGFudF9pbl9ieXRlcxgGIAEoAxIcChRkb19mdW5jdGlvbl9p", | |||||
"bmxpbmluZxgEIAEoCBI1CglvcHRfbGV2ZWwYAyABKA4yIi50ZW5zb3JmbG93", | |||||
"Lk9wdGltaXplck9wdGlvbnMuTGV2ZWwSRQoQZ2xvYmFsX2ppdF9sZXZlbBgF", | |||||
"IAEoDjIrLnRlbnNvcmZsb3cuT3B0aW1pemVyT3B0aW9ucy5HbG9iYWxKaXRM", | |||||
"ZXZlbCIgCgVMZXZlbBIGCgJMMRAAEg8KAkwwEP///////////wEiQwoOR2xv", | |||||
"YmFsSml0TGV2ZWwSCwoHREVGQVVMVBAAEhAKA09GRhD///////////8BEggK", | |||||
"BE9OXzEQARIICgRPTl8yEAIi7gIKDEdyYXBoT3B0aW9ucxIeChZlbmFibGVf", | |||||
"cmVjdl9zY2hlZHVsaW5nGAIgASgIEjcKEW9wdGltaXplcl9vcHRpb25zGAMg", | |||||
"ASgLMhwudGVuc29yZmxvdy5PcHRpbWl6ZXJPcHRpb25zEhgKEGJ1aWxkX2Nv", | |||||
"c3RfbW9kZWwYBCABKAMSHgoWYnVpbGRfY29zdF9tb2RlbF9hZnRlchgJIAEo", | |||||
"AxIUCgxpbmZlcl9zaGFwZXMYBSABKAgSGgoScGxhY2VfcHJ1bmVkX2dyYXBo", | |||||
"GAYgASgIEiAKGGVuYWJsZV9iZmxvYXQxNl9zZW5kcmVjdhgHIAEoCBIVCg10", | |||||
"aW1lbGluZV9zdGVwGAggASgFEjMKD3Jld3JpdGVfb3B0aW9ucxgKIAEoCzIa", | |||||
"LnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWdKBAgBEAJSJXNraXBfY29tbW9u", | |||||
"X3N1YmV4cHJlc3Npb25fZWxpbWluYXRpb24iQQoVVGhyZWFkUG9vbE9wdGlv", | |||||
"blByb3RvEhMKC251bV90aHJlYWRzGAEgASgFEhMKC2dsb2JhbF9uYW1lGAIg", | |||||
"ASgJIrQBCgpSUENPcHRpb25zEiQKHHVzZV9ycGNfZm9yX2lucHJvY2Vzc19t", | |||||
"YXN0ZXIYASABKAgSHQoVY29tcHJlc3Npb25fYWxnb3JpdGhtGAIgASgJEhkK", | |||||
"EWNvbXByZXNzaW9uX2xldmVsGAMgASgFEhoKEmNhY2hlX3JwY19yZXNwb25z", | |||||
"ZRgEIAEoCBIqCiJkaXNhYmxlX3Nlc3Npb25fY29ubmVjdGlvbl9zaGFyaW5n", | |||||
"GAUgASgIIjAKD1Nlc3Npb25NZXRhZGF0YRIMCgRuYW1lGAEgASgJEg8KB3Zl", | |||||
"cnNpb24YAiABKAMijA0KC0NvbmZpZ1Byb3RvEj4KDGRldmljZV9jb3VudBgB", | |||||
"IAMoCzIoLnRlbnNvcmZsb3cuQ29uZmlnUHJvdG8uRGV2aWNlQ291bnRFbnRy", | |||||
"eRIkChxpbnRyYV9vcF9wYXJhbGxlbGlzbV90aHJlYWRzGAIgASgFEiQKHGlu", | |||||
"dGVyX29wX3BhcmFsbGVsaXNtX3RocmVhZHMYBSABKAUSHwoXdXNlX3Blcl9z", | |||||
"ZXNzaW9uX3RocmVhZHMYCSABKAgSRwocc2Vzc2lvbl9pbnRlcl9vcF90aHJl", | |||||
"YWRfcG9vbBgMIAMoCzIhLnRlbnNvcmZsb3cuVGhyZWFkUG9vbE9wdGlvblBy", | |||||
"b3RvEhgKEHBsYWNlbWVudF9wZXJpb2QYAyABKAUSFgoOZGV2aWNlX2ZpbHRl", | |||||
"cnMYBCADKAkSKwoLZ3B1X29wdGlvbnMYBiABKAsyFi50ZW5zb3JmbG93LkdQ", | |||||
"VU9wdGlvbnMSHAoUYWxsb3dfc29mdF9wbGFjZW1lbnQYByABKAgSHAoUbG9n", | |||||
"X2RldmljZV9wbGFjZW1lbnQYCCABKAgSLwoNZ3JhcGhfb3B0aW9ucxgKIAEo", | |||||
"CzIYLnRlbnNvcmZsb3cuR3JhcGhPcHRpb25zEh8KF29wZXJhdGlvbl90aW1l", | |||||
"b3V0X2luX21zGAsgASgDEisKC3JwY19vcHRpb25zGA0gASgLMhYudGVuc29y", | |||||
"Zmxvdy5SUENPcHRpb25zEisKC2NsdXN0ZXJfZGVmGA4gASgLMhYudGVuc29y", | |||||
"Zmxvdy5DbHVzdGVyRGVmEh0KFWlzb2xhdGVfc2Vzc2lvbl9zdGF0ZRgPIAEo", | |||||
"CBIoCiBzaGFyZV9jbHVzdGVyX2RldmljZXNfaW5fc2Vzc2lvbhgRIAEoCBI6", | |||||
"CgxleHBlcmltZW50YWwYECABKAsyJC50ZW5zb3JmbG93LkNvbmZpZ1Byb3Rv", | |||||
"LkV4cGVyaW1lbnRhbBoyChBEZXZpY2VDb3VudEVudHJ5EgsKA2tleRgBIAEo", | |||||
"CRINCgV2YWx1ZRgCIAEoBToCOAEahgcKDEV4cGVyaW1lbnRhbBIfChdjb2xs", | |||||
"ZWN0aXZlX2dyb3VwX2xlYWRlchgBIAEoCRIVCg1leGVjdXRvcl90eXBlGAMg", | |||||
"ASgJEhoKEnJlY3ZfYnVmX21heF9jaHVuaxgEIAEoBRIZChF1c2VfbnVtYV9h", | |||||
"ZmZpbml0eRgFIAEoCBI1Ci1jb2xsZWN0aXZlX2RldGVybWluaXN0aWNfc2Vx", | |||||
"dWVudGlhbF9leGVjdXRpb24YBiABKAgSFwoPY29sbGVjdGl2ZV9uY2NsGAcg", | |||||
"ASgIEjYKLnNoYXJlX3Nlc3Npb25fc3RhdGVfaW5fY2x1c3RlcnNwZWNfcHJv", | |||||
"cGFnYXRpb24YCCABKAgSHwoXZGlzYWJsZV90aHJlYWRfc3Bpbm5pbmcYCSAB", | |||||
"KAgSKAogc2hhcmVfY2x1c3Rlcl9kZXZpY2VzX2luX3Nlc3Npb24YCiABKAgS", | |||||
"NQoQc2Vzc2lvbl9tZXRhZGF0YRgLIAEoCzIbLnRlbnNvcmZsb3cuU2Vzc2lv", | |||||
"bk1ldGFkYXRhEiEKGW9wdGltaXplX2Zvcl9zdGF0aWNfZ3JhcGgYDCABKAgS", | |||||
"GgoSZW5hYmxlX21saXJfYnJpZGdlGA0gASgIElMKE21saXJfYnJpZGdlX3Jv", | |||||
"bGxvdXQYESABKA4yNi50ZW5zb3JmbG93LkNvbmZpZ1Byb3RvLkV4cGVyaW1l", | |||||
"bnRhbC5NbGlyQnJpZGdlUm9sbG91dBImCh5lbmFibGVfbWxpcl9ncmFwaF9v", | |||||
"cHRpbWl6YXRpb24YECABKAgSJwofZGlzYWJsZV9vdXRwdXRfcGFydGl0aW9u", | |||||
"X2dyYXBocxgOIAEoCBIjCht4bGFfZnVzaW9uX2F1dG90dW5lcl90aHJlc2gY", | |||||
"DyABKAMSEAoIdXNlX3RmcnQYEiABKAgi2gEKEU1saXJCcmlkZ2VSb2xsb3V0", | |||||
"EiMKH01MSVJfQlJJREdFX1JPTExPVVRfVU5TUEVDSUZJRUQQABIfChtNTElS", | |||||
"X0JSSURHRV9ST0xMT1VUX0VOQUJMRUQQARIgChxNTElSX0JSSURHRV9ST0xM", | |||||
"T1VUX0RJU0FCTEVEEAISKQolTUxJUl9CUklER0VfUk9MTE9VVF9TQUZFX01P", | |||||
"REVfRU5BQkxFRBADEjIKLk1MSVJfQlJJREdFX1JPTExPVVRfU0FGRV9NT0RF", | |||||
"X0ZBTExCQUNLX0VOQUJMRUQQBEoECAIQAyLhBAoKUnVuT3B0aW9ucxI2Cgt0", | |||||
"cmFjZV9sZXZlbBgBIAEoDjIhLnRlbnNvcmZsb3cuUnVuT3B0aW9ucy5UcmFj", | |||||
"ZUxldmVsEhUKDXRpbWVvdXRfaW5fbXMYAiABKAMSHAoUaW50ZXJfb3BfdGhy", | |||||
"ZWFkX3Bvb2wYAyABKAUSHwoXb3V0cHV0X3BhcnRpdGlvbl9ncmFwaHMYBSAB", | |||||
"KAgSLwoNZGVidWdfb3B0aW9ucxgGIAEoCzIYLnRlbnNvcmZsb3cuRGVidWdP", | |||||
"cHRpb25zEioKInJlcG9ydF90ZW5zb3JfYWxsb2NhdGlvbnNfdXBvbl9vb20Y", | |||||
"ByABKAgSOQoMZXhwZXJpbWVudGFsGAggASgLMiMudGVuc29yZmxvdy5SdW5P", | |||||
"cHRpb25zLkV4cGVyaW1lbnRhbBrSAQoMRXhwZXJpbWVudGFsEhwKFGNvbGxl", | |||||
"Y3RpdmVfZ3JhcGhfa2V5GAEgASgDEhwKFHVzZV9ydW5faGFuZGxlcl9wb29s", | |||||
"GAIgASgIElsKGHJ1bl9oYW5kbGVyX3Bvb2xfb3B0aW9ucxgDIAEoCzI5LnRl", | |||||
"bnNvcmZsb3cuUnVuT3B0aW9ucy5FeHBlcmltZW50YWwuUnVuSGFuZGxlclBv", | |||||
"b2xPcHRpb25zGikKFVJ1bkhhbmRsZXJQb29sT3B0aW9ucxIQCghwcmlvcml0", | |||||
"eRgBIAEoAyJSCgpUcmFjZUxldmVsEgwKCE5PX1RSQUNFEAASEgoOU09GVFdB", | |||||
"UkVfVFJBQ0UQARISCg5IQVJEV0FSRV9UUkFDRRACEg4KCkZVTExfVFJBQ0UQ", | |||||
"A0oECAQQBSKHAwoLUnVuTWV0YWRhdGESKQoKc3RlcF9zdGF0cxgBIAEoCzIV", | |||||
"LnRlbnNvcmZsb3cuU3RlcFN0YXRzEiwKCmNvc3RfZ3JhcGgYAiABKAsyGC50", | |||||
"ZW5zb3JmbG93LkNvc3RHcmFwaERlZhIuChBwYXJ0aXRpb25fZ3JhcGhzGAMg", | |||||
"AygLMhQudGVuc29yZmxvdy5HcmFwaERlZhI/Cg9mdW5jdGlvbl9ncmFwaHMY", | |||||
"BCADKAsyJi50ZW5zb3JmbG93LlJ1bk1ldGFkYXRhLkZ1bmN0aW9uR3JhcGhz", | |||||
"Gq0BCg5GdW5jdGlvbkdyYXBocxIuChBwYXJ0aXRpb25fZ3JhcGhzGAEgAygL", | |||||
"MhQudGVuc29yZmxvdy5HcmFwaERlZhI0ChZwcmVfb3B0aW1pemF0aW9uX2dy", | |||||
"YXBoGAIgASgLMhQudGVuc29yZmxvdy5HcmFwaERlZhI1Chdwb3N0X29wdGlt", | |||||
"aXphdGlvbl9ncmFwaBgDIAEoCzIULnRlbnNvcmZsb3cuR3JhcGhEZWYiOgoQ", | |||||
"VGVuc29yQ29ubmVjdGlvbhITCgtmcm9tX3RlbnNvchgBIAEoCRIRCgl0b190", | |||||
"ZW5zb3IYAiABKAkisAMKD0NhbGxhYmxlT3B0aW9ucxIMCgRmZWVkGAEgAygJ", | |||||
"Eg0KBWZldGNoGAIgAygJEg4KBnRhcmdldBgDIAMoCRIrCgtydW5fb3B0aW9u", | |||||
"cxgEIAEoCzIWLnRlbnNvcmZsb3cuUnVuT3B0aW9ucxI3ChF0ZW5zb3JfY29u", | |||||
"bmVjdGlvbhgFIAMoCzIcLnRlbnNvcmZsb3cuVGVuc29yQ29ubmVjdGlvbhJC", | |||||
"CgxmZWVkX2RldmljZXMYBiADKAsyLC50ZW5zb3JmbG93LkNhbGxhYmxlT3B0", | |||||
"aW9ucy5GZWVkRGV2aWNlc0VudHJ5EkQKDWZldGNoX2RldmljZXMYByADKAsy", | |||||
"LS50ZW5zb3JmbG93LkNhbGxhYmxlT3B0aW9ucy5GZXRjaERldmljZXNFbnRy", | |||||
"eRIXCg9mZXRjaF9za2lwX3N5bmMYCCABKAgaMgoQRmVlZERldmljZXNFbnRy", | |||||
"eRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjMKEUZldGNoRGV2", | |||||
"aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFChAEK", | |||||
"GG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IMQ29uZmlnUHJvdG9zUAFaVWdp", | |||||
"dGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28v", | |||||
"Y29yZS9wcm90b2J1Zi9mb3JfY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnBy", | |||||
"b3RvMw==")); | |||||
"X3BlbmRpbmcYCSABKAUSJwofaW50ZXJuYWxfZnJhZ21lbnRhdGlvbl9mcmFj", | |||||
"dGlvbhgKIAEoARIdChV1c2VfY3VkYV9tYWxsb2NfYXN5bmMYCyABKAgaOwoO", | |||||
"VmlydHVhbERldmljZXMSFwoPbWVtb3J5X2xpbWl0X21iGAEgAygCEhAKCHBy", | |||||
"aW9yaXR5GAIgAygFIoUDChBPcHRpbWl6ZXJPcHRpb25zEisKI2RvX2NvbW1v", | |||||
"bl9zdWJleHByZXNzaW9uX2VsaW1pbmF0aW9uGAEgASgIEhsKE2RvX2NvbnN0", | |||||
"YW50X2ZvbGRpbmcYAiABKAgSJAocbWF4X2ZvbGRlZF9jb25zdGFudF9pbl9i", | |||||
"eXRlcxgGIAEoAxIcChRkb19mdW5jdGlvbl9pbmxpbmluZxgEIAEoCBI1Cglv", | |||||
"cHRfbGV2ZWwYAyABKA4yIi50ZW5zb3JmbG93Lk9wdGltaXplck9wdGlvbnMu", | |||||
"TGV2ZWwSRQoQZ2xvYmFsX2ppdF9sZXZlbBgFIAEoDjIrLnRlbnNvcmZsb3cu", | |||||
"T3B0aW1pemVyT3B0aW9ucy5HbG9iYWxKaXRMZXZlbCIgCgVMZXZlbBIGCgJM", | |||||
"MRAAEg8KAkwwEP///////////wEiQwoOR2xvYmFsSml0TGV2ZWwSCwoHREVG", | |||||
"QVVMVBAAEhAKA09GRhD///////////8BEggKBE9OXzEQARIICgRPTl8yEAIi", | |||||
"7gIKDEdyYXBoT3B0aW9ucxIeChZlbmFibGVfcmVjdl9zY2hlZHVsaW5nGAIg", | |||||
"ASgIEjcKEW9wdGltaXplcl9vcHRpb25zGAMgASgLMhwudGVuc29yZmxvdy5P", | |||||
"cHRpbWl6ZXJPcHRpb25zEhgKEGJ1aWxkX2Nvc3RfbW9kZWwYBCABKAMSHgoW", | |||||
"YnVpbGRfY29zdF9tb2RlbF9hZnRlchgJIAEoAxIUCgxpbmZlcl9zaGFwZXMY", | |||||
"BSABKAgSGgoScGxhY2VfcHJ1bmVkX2dyYXBoGAYgASgIEiAKGGVuYWJsZV9i", | |||||
"ZmxvYXQxNl9zZW5kcmVjdhgHIAEoCBIVCg10aW1lbGluZV9zdGVwGAggASgF", | |||||
"EjMKD3Jld3JpdGVfb3B0aW9ucxgKIAEoCzIaLnRlbnNvcmZsb3cuUmV3cml0", | |||||
"ZXJDb25maWdKBAgBEAJSJXNraXBfY29tbW9uX3N1YmV4cHJlc3Npb25fZWxp", | |||||
"bWluYXRpb24iQQoVVGhyZWFkUG9vbE9wdGlvblByb3RvEhMKC251bV90aHJl", | |||||
"YWRzGAEgASgFEhMKC2dsb2JhbF9uYW1lGAIgASgJItUBCgpSUENPcHRpb25z", | |||||
"EiQKHHVzZV9ycGNfZm9yX2lucHJvY2Vzc19tYXN0ZXIYASABKAgSHQoVY29t", | |||||
"cHJlc3Npb25fYWxnb3JpdGhtGAIgASgJEhkKEWNvbXByZXNzaW9uX2xldmVs", | |||||
"GAMgASgFEhoKEmNhY2hlX3JwY19yZXNwb25zZRgEIAEoCBIqCiJkaXNhYmxl", | |||||
"X3Nlc3Npb25fY29ubmVjdGlvbl9zaGFyaW5nGAUgASgIEh8KF251bV9jaGFu", | |||||
"bmVsc19wZXJfdGFyZ2V0GAYgASgFIjAKD1Nlc3Npb25NZXRhZGF0YRIMCgRu", | |||||
"YW1lGAEgASgJEg8KB3ZlcnNpb24YAiABKAMi2A0KC0NvbmZpZ1Byb3RvEj4K", | |||||
"DGRldmljZV9jb3VudBgBIAMoCzIoLnRlbnNvcmZsb3cuQ29uZmlnUHJvdG8u", | |||||
"RGV2aWNlQ291bnRFbnRyeRIkChxpbnRyYV9vcF9wYXJhbGxlbGlzbV90aHJl", | |||||
"YWRzGAIgASgFEiQKHGludGVyX29wX3BhcmFsbGVsaXNtX3RocmVhZHMYBSAB", | |||||
"KAUSHwoXdXNlX3Blcl9zZXNzaW9uX3RocmVhZHMYCSABKAgSRwocc2Vzc2lv", | |||||
"bl9pbnRlcl9vcF90aHJlYWRfcG9vbBgMIAMoCzIhLnRlbnNvcmZsb3cuVGhy", | |||||
"ZWFkUG9vbE9wdGlvblByb3RvEhgKEHBsYWNlbWVudF9wZXJpb2QYAyABKAUS", | |||||
"FgoOZGV2aWNlX2ZpbHRlcnMYBCADKAkSKwoLZ3B1X29wdGlvbnMYBiABKAsy", | |||||
"Fi50ZW5zb3JmbG93LkdQVU9wdGlvbnMSHAoUYWxsb3dfc29mdF9wbGFjZW1l", | |||||
"bnQYByABKAgSHAoUbG9nX2RldmljZV9wbGFjZW1lbnQYCCABKAgSLwoNZ3Jh", | |||||
"cGhfb3B0aW9ucxgKIAEoCzIYLnRlbnNvcmZsb3cuR3JhcGhPcHRpb25zEh8K", | |||||
"F29wZXJhdGlvbl90aW1lb3V0X2luX21zGAsgASgDEisKC3JwY19vcHRpb25z", | |||||
"GA0gASgLMhYudGVuc29yZmxvdy5SUENPcHRpb25zEisKC2NsdXN0ZXJfZGVm", | |||||
"GA4gASgLMhYudGVuc29yZmxvdy5DbHVzdGVyRGVmEh0KFWlzb2xhdGVfc2Vz", | |||||
"c2lvbl9zdGF0ZRgPIAEoCBIoCiBzaGFyZV9jbHVzdGVyX2RldmljZXNfaW5f", | |||||
"c2Vzc2lvbhgRIAEoCBI6CgxleHBlcmltZW50YWwYECABKAsyJC50ZW5zb3Jm", | |||||
"bG93LkNvbmZpZ1Byb3RvLkV4cGVyaW1lbnRhbBoyChBEZXZpY2VDb3VudEVu", | |||||
"dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEa0gcKDEV4cGVy", | |||||
"aW1lbnRhbBIfChdjb2xsZWN0aXZlX2dyb3VwX2xlYWRlchgBIAEoCRIVCg1l", | |||||
"eGVjdXRvcl90eXBlGAMgASgJEhoKEnJlY3ZfYnVmX21heF9jaHVuaxgEIAEo", | |||||
"BRIZChF1c2VfbnVtYV9hZmZpbml0eRgFIAEoCBI1Ci1jb2xsZWN0aXZlX2Rl", | |||||
"dGVybWluaXN0aWNfc2VxdWVudGlhbF9leGVjdXRpb24YBiABKAgSFwoPY29s", | |||||
"bGVjdGl2ZV9uY2NsGAcgASgIEjYKLnNoYXJlX3Nlc3Npb25fc3RhdGVfaW5f", | |||||
"Y2x1c3RlcnNwZWNfcHJvcGFnYXRpb24YCCABKAgSHwoXZGlzYWJsZV90aHJl", | |||||
"YWRfc3Bpbm5pbmcYCSABKAgSKAogc2hhcmVfY2x1c3Rlcl9kZXZpY2VzX2lu", | |||||
"X3Nlc3Npb24YCiABKAgSNQoQc2Vzc2lvbl9tZXRhZGF0YRgLIAEoCzIbLnRl", | |||||
"bnNvcmZsb3cuU2Vzc2lvbk1ldGFkYXRhEiEKGW9wdGltaXplX2Zvcl9zdGF0", | |||||
"aWNfZ3JhcGgYDCABKAgSGgoSZW5hYmxlX21saXJfYnJpZGdlGA0gASgIElMK", | |||||
"E21saXJfYnJpZGdlX3JvbGxvdXQYESABKA4yNi50ZW5zb3JmbG93LkNvbmZp", | |||||
"Z1Byb3RvLkV4cGVyaW1lbnRhbC5NbGlyQnJpZGdlUm9sbG91dBImCh5lbmFi", | |||||
"bGVfbWxpcl9ncmFwaF9vcHRpbWl6YXRpb24YECABKAgSJwofZGlzYWJsZV9v", | |||||
"dXRwdXRfcGFydGl0aW9uX2dyYXBocxgOIAEoCBIjCht4bGFfZnVzaW9uX2F1", | |||||
"dG90dW5lcl90aHJlc2gYDyABKAMSEAoIdXNlX3RmcnQYEiABKAgSHAoUY29v", | |||||
"cmRpbmF0aW9uX3NlcnZpY2UYEyABKAkSLAokZmV0Y2hfcmVtb3RlX2Rldmlj", | |||||
"ZXNfaW5fbXVsdGlfY2xpZW50GBQgASgIItoBChFNbGlyQnJpZGdlUm9sbG91", | |||||
"dBIjCh9NTElSX0JSSURHRV9ST0xMT1VUX1VOU1BFQ0lGSUVEEAASHwobTUxJ", | |||||
"Ul9CUklER0VfUk9MTE9VVF9FTkFCTEVEEAESIAocTUxJUl9CUklER0VfUk9M", | |||||
"TE9VVF9ESVNBQkxFRBACEikKJU1MSVJfQlJJREdFX1JPTExPVVRfU0FGRV9N", | |||||
"T0RFX0VOQUJMRUQQAxIyCi5NTElSX0JSSURHRV9ST0xMT1VUX1NBRkVfTU9E", | |||||
"RV9GQUxMQkFDS19FTkFCTEVEEARKBAgCEAMi4QQKClJ1bk9wdGlvbnMSNgoL", | |||||
"dHJhY2VfbGV2ZWwYASABKA4yIS50ZW5zb3JmbG93LlJ1bk9wdGlvbnMuVHJh", | |||||
"Y2VMZXZlbBIVCg10aW1lb3V0X2luX21zGAIgASgDEhwKFGludGVyX29wX3Ro", | |||||
"cmVhZF9wb29sGAMgASgFEh8KF291dHB1dF9wYXJ0aXRpb25fZ3JhcGhzGAUg", | |||||
"ASgIEi8KDWRlYnVnX29wdGlvbnMYBiABKAsyGC50ZW5zb3JmbG93LkRlYnVn", | |||||
"T3B0aW9ucxIqCiJyZXBvcnRfdGVuc29yX2FsbG9jYXRpb25zX3Vwb25fb29t", | |||||
"GAcgASgIEjkKDGV4cGVyaW1lbnRhbBgIIAEoCzIjLnRlbnNvcmZsb3cuUnVu", | |||||
"T3B0aW9ucy5FeHBlcmltZW50YWwa0gEKDEV4cGVyaW1lbnRhbBIcChRjb2xs", | |||||
"ZWN0aXZlX2dyYXBoX2tleRgBIAEoAxIcChR1c2VfcnVuX2hhbmRsZXJfcG9v", | |||||
"bBgCIAEoCBJbChhydW5faGFuZGxlcl9wb29sX29wdGlvbnMYAyABKAsyOS50", | |||||
"ZW5zb3JmbG93LlJ1bk9wdGlvbnMuRXhwZXJpbWVudGFsLlJ1bkhhbmRsZXJQ", | |||||
"b29sT3B0aW9ucxopChVSdW5IYW5kbGVyUG9vbE9wdGlvbnMSEAoIcHJpb3Jp", | |||||
"dHkYASABKAMiUgoKVHJhY2VMZXZlbBIMCghOT19UUkFDRRAAEhIKDlNPRlRX", | |||||
"QVJFX1RSQUNFEAESEgoOSEFSRFdBUkVfVFJBQ0UQAhIOCgpGVUxMX1RSQUNF", | |||||
"EANKBAgEEAUihwMKC1J1bk1ldGFkYXRhEikKCnN0ZXBfc3RhdHMYASABKAsy", | |||||
"FS50ZW5zb3JmbG93LlN0ZXBTdGF0cxIsCgpjb3N0X2dyYXBoGAIgASgLMhgu", | |||||
"dGVuc29yZmxvdy5Db3N0R3JhcGhEZWYSLgoQcGFydGl0aW9uX2dyYXBocxgD", | |||||
"IAMoCzIULnRlbnNvcmZsb3cuR3JhcGhEZWYSPwoPZnVuY3Rpb25fZ3JhcGhz", | |||||
"GAQgAygLMiYudGVuc29yZmxvdy5SdW5NZXRhZGF0YS5GdW5jdGlvbkdyYXBo", | |||||
"cxqtAQoORnVuY3Rpb25HcmFwaHMSLgoQcGFydGl0aW9uX2dyYXBocxgBIAMo", | |||||
"CzIULnRlbnNvcmZsb3cuR3JhcGhEZWYSNAoWcHJlX29wdGltaXphdGlvbl9n", | |||||
"cmFwaBgCIAEoCzIULnRlbnNvcmZsb3cuR3JhcGhEZWYSNQoXcG9zdF9vcHRp", | |||||
"bWl6YXRpb25fZ3JhcGgYAyABKAsyFC50ZW5zb3JmbG93LkdyYXBoRGVmIjoK", | |||||
"EFRlbnNvckNvbm5lY3Rpb24SEwoLZnJvbV90ZW5zb3IYASABKAkSEQoJdG9f", | |||||
"dGVuc29yGAIgASgJIrADCg9DYWxsYWJsZU9wdGlvbnMSDAoEZmVlZBgBIAMo", | |||||
"CRINCgVmZXRjaBgCIAMoCRIOCgZ0YXJnZXQYAyADKAkSKwoLcnVuX29wdGlv", | |||||
"bnMYBCABKAsyFi50ZW5zb3JmbG93LlJ1bk9wdGlvbnMSNwoRdGVuc29yX2Nv", | |||||
"bm5lY3Rpb24YBSADKAsyHC50ZW5zb3JmbG93LlRlbnNvckNvbm5lY3Rpb24S", | |||||
"QgoMZmVlZF9kZXZpY2VzGAYgAygLMiwudGVuc29yZmxvdy5DYWxsYWJsZU9w", | |||||
"dGlvbnMuRmVlZERldmljZXNFbnRyeRJECg1mZXRjaF9kZXZpY2VzGAcgAygL", | |||||
"Mi0udGVuc29yZmxvdy5DYWxsYWJsZU9wdGlvbnMuRmV0Y2hEZXZpY2VzRW50", | |||||
"cnkSFwoPZmV0Y2hfc2tpcF9zeW5jGAggASgIGjIKEEZlZWREZXZpY2VzRW50", | |||||
"cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARozChFGZXRjaERl", | |||||
"dmljZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQoQB", | |||||
"ChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCDENvbmZpZ1Byb3Rvc1ABWlVn", | |||||
"aXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dv", | |||||
"L2NvcmUvcHJvdG9idWYvZm9yX2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZw", | |||||
"cm90bzM=")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.CostGraphReflection.Descriptor, global::Tensorflow.GraphReflection.Descriptor, global::Tensorflow.StepStatsReflection.Descriptor, global::Tensorflow.ClusterReflection.Descriptor, global::Tensorflow.DebugReflection.Descriptor, global::Tensorflow.RewriterConfigReflection.Descriptor, }, | new pbr::FileDescriptor[] { global::Tensorflow.CostGraphReflection.Descriptor, global::Tensorflow.GraphReflection.Descriptor, global::Tensorflow.StepStatsReflection.Descriptor, global::Tensorflow.ClusterReflection.Descriptor, global::Tensorflow.DebugReflection.Descriptor, global::Tensorflow.RewriterConfigReflection.Descriptor, }, | ||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions), global::Tensorflow.GPUOptions.Parser, new[]{ "PerProcessGpuMemoryFraction", "AllowGrowth", "AllocatorType", "DeferredDeletionBytes", "VisibleDeviceList", "PollingActiveDelayUsecs", "PollingInactiveDelayMsecs", "ForceGpuCompatible", "Experimental" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions.Types.Experimental), global::Tensorflow.GPUOptions.Types.Experimental.Parser, new[]{ "VirtualDevices", "UseUnifiedMemory", "NumDevToDevCopyStreams", "CollectiveRingOrder", "TimestampedAllocator", "KernelTrackerMaxInterval", "KernelTrackerMaxBytes", "KernelTrackerMaxPending" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions.Types.Experimental.Types.VirtualDevices), global::Tensorflow.GPUOptions.Types.Experimental.Types.VirtualDevices.Parser, new[]{ "MemoryLimitMb", "Priority" }, null, null, null, null)})}), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions), global::Tensorflow.GPUOptions.Parser, new[]{ "PerProcessGpuMemoryFraction", "AllowGrowth", "AllocatorType", "DeferredDeletionBytes", "VisibleDeviceList", "PollingActiveDelayUsecs", "PollingInactiveDelayMsecs", "ForceGpuCompatible", "Experimental" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions.Types.Experimental), global::Tensorflow.GPUOptions.Types.Experimental.Parser, new[]{ "VirtualDevices", "UseUnifiedMemory", "NumDevToDevCopyStreams", "CollectiveRingOrder", "TimestampedAllocator", "KernelTrackerMaxInterval", "KernelTrackerMaxBytes", "KernelTrackerMaxPending", "InternalFragmentationFraction", "UseCudaMallocAsync" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GPUOptions.Types.Experimental.Types.VirtualDevices), global::Tensorflow.GPUOptions.Types.Experimental.Types.VirtualDevices.Parser, new[]{ "MemoryLimitMb", "Priority" }, null, null, null, null)})}), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OptimizerOptions), global::Tensorflow.OptimizerOptions.Parser, new[]{ "DoCommonSubexpressionElimination", "DoConstantFolding", "MaxFoldedConstantInBytes", "DoFunctionInlining", "OptLevel", "GlobalJitLevel" }, null, new[]{ typeof(global::Tensorflow.OptimizerOptions.Types.Level), typeof(global::Tensorflow.OptimizerOptions.Types.GlobalJitLevel) }, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OptimizerOptions), global::Tensorflow.OptimizerOptions.Parser, new[]{ "DoCommonSubexpressionElimination", "DoConstantFolding", "MaxFoldedConstantInBytes", "DoFunctionInlining", "OptLevel", "GlobalJitLevel" }, null, new[]{ typeof(global::Tensorflow.OptimizerOptions.Types.Level), typeof(global::Tensorflow.OptimizerOptions.Types.GlobalJitLevel) }, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphOptions), global::Tensorflow.GraphOptions.Parser, new[]{ "EnableRecvScheduling", "OptimizerOptions", "BuildCostModel", "BuildCostModelAfter", "InferShapes", "PlacePrunedGraph", "EnableBfloat16Sendrecv", "TimelineStep", "RewriteOptions" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphOptions), global::Tensorflow.GraphOptions.Parser, new[]{ "EnableRecvScheduling", "OptimizerOptions", "BuildCostModel", "BuildCostModelAfter", "InferShapes", "PlacePrunedGraph", "EnableBfloat16Sendrecv", "TimelineStep", "RewriteOptions" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ThreadPoolOptionProto), global::Tensorflow.ThreadPoolOptionProto.Parser, new[]{ "NumThreads", "GlobalName" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ThreadPoolOptionProto), global::Tensorflow.ThreadPoolOptionProto.Parser, new[]{ "NumThreads", "GlobalName" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RPCOptions), global::Tensorflow.RPCOptions.Parser, new[]{ "UseRpcForInprocessMaster", "CompressionAlgorithm", "CompressionLevel", "CacheRpcResponse", "DisableSessionConnectionSharing" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RPCOptions), global::Tensorflow.RPCOptions.Parser, new[]{ "UseRpcForInprocessMaster", "CompressionAlgorithm", "CompressionLevel", "CacheRpcResponse", "DisableSessionConnectionSharing", "NumChannelsPerTarget" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SessionMetadata), global::Tensorflow.SessionMetadata.Parser, new[]{ "Name", "Version" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SessionMetadata), global::Tensorflow.SessionMetadata.Parser, new[]{ "Name", "Version" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ConfigProto), global::Tensorflow.ConfigProto.Parser, new[]{ "DeviceCount", "IntraOpParallelismThreads", "InterOpParallelismThreads", "UsePerSessionThreads", "SessionInterOpThreadPool", "PlacementPeriod", "DeviceFilters", "GpuOptions", "AllowSoftPlacement", "LogDevicePlacement", "GraphOptions", "OperationTimeoutInMs", "RpcOptions", "ClusterDef", "IsolateSessionState", "ShareClusterDevicesInSession", "Experimental" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ConfigProto.Types.Experimental), global::Tensorflow.ConfigProto.Types.Experimental.Parser, new[]{ "CollectiveGroupLeader", "ExecutorType", "RecvBufMaxChunk", "UseNumaAffinity", "CollectiveDeterministicSequentialExecution", "CollectiveNccl", "ShareSessionStateInClusterspecPropagation", "DisableThreadSpinning", "ShareClusterDevicesInSession", "SessionMetadata", "OptimizeForStaticGraph", "EnableMlirBridge", "MlirBridgeRollout", "EnableMlirGraphOptimization", "DisableOutputPartitionGraphs", "XlaFusionAutotunerThresh", "UseTfrt" }, null, new[]{ typeof(global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout) }, null, null)}), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ConfigProto), global::Tensorflow.ConfigProto.Parser, new[]{ "DeviceCount", "IntraOpParallelismThreads", "InterOpParallelismThreads", "UsePerSessionThreads", "SessionInterOpThreadPool", "PlacementPeriod", "DeviceFilters", "GpuOptions", "AllowSoftPlacement", "LogDevicePlacement", "GraphOptions", "OperationTimeoutInMs", "RpcOptions", "ClusterDef", "IsolateSessionState", "ShareClusterDevicesInSession", "Experimental" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ConfigProto.Types.Experimental), global::Tensorflow.ConfigProto.Types.Experimental.Parser, new[]{ "CollectiveGroupLeader", "ExecutorType", "RecvBufMaxChunk", "UseNumaAffinity", "CollectiveDeterministicSequentialExecution", "CollectiveNccl", "ShareSessionStateInClusterspecPropagation", "DisableThreadSpinning", "ShareClusterDevicesInSession", "SessionMetadata", "OptimizeForStaticGraph", "EnableMlirBridge", "MlirBridgeRollout", "EnableMlirGraphOptimization", "DisableOutputPartitionGraphs", "XlaFusionAutotunerThresh", "UseTfrt", "CoordinationService", "FetchRemoteDevicesInMultiClient" }, null, new[]{ typeof(global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout) }, null, null)}), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions), global::Tensorflow.RunOptions.Parser, new[]{ "TraceLevel", "TimeoutInMs", "InterOpThreadPool", "OutputPartitionGraphs", "DebugOptions", "ReportTensorAllocationsUponOom", "Experimental" }, null, new[]{ typeof(global::Tensorflow.RunOptions.Types.TraceLevel) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions.Types.Experimental), global::Tensorflow.RunOptions.Types.Experimental.Parser, new[]{ "CollectiveGraphKey", "UseRunHandlerPool", "RunHandlerPoolOptions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions), global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions.Parser, new[]{ "Priority" }, null, null, null, null)})}), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions), global::Tensorflow.RunOptions.Parser, new[]{ "TraceLevel", "TimeoutInMs", "InterOpThreadPool", "OutputPartitionGraphs", "DebugOptions", "ReportTensorAllocationsUponOom", "Experimental" }, null, new[]{ typeof(global::Tensorflow.RunOptions.Types.TraceLevel) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions.Types.Experimental), global::Tensorflow.RunOptions.Types.Experimental.Parser, new[]{ "CollectiveGraphKey", "UseRunHandlerPool", "RunHandlerPoolOptions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions), global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions.Parser, new[]{ "Priority" }, null, null, null, null)})}), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunMetadata), global::Tensorflow.RunMetadata.Parser, new[]{ "StepStats", "CostGraph", "PartitionGraphs", "FunctionGraphs" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunMetadata.Types.FunctionGraphs), global::Tensorflow.RunMetadata.Types.FunctionGraphs.Parser, new[]{ "PartitionGraphs", "PreOptimizationGraph", "PostOptimizationGraph" }, null, null, null, null)}), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunMetadata), global::Tensorflow.RunMetadata.Parser, new[]{ "StepStats", "CostGraph", "PartitionGraphs", "FunctionGraphs" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RunMetadata.Types.FunctionGraphs), global::Tensorflow.RunMetadata.Types.FunctionGraphs.Parser, new[]{ "PartitionGraphs", "PreOptimizationGraph", "PostOptimizationGraph" }, null, null, null, null)}), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TensorConnection), global::Tensorflow.TensorConnection.Parser, new[]{ "FromTensor", "ToTensor" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TensorConnection), global::Tensorflow.TensorConnection.Parser, new[]{ "FromTensor", "ToTensor" }, null, null, null, null), | ||||
@@ -645,6 +649,8 @@ namespace Tensorflow { | |||||
kernelTrackerMaxInterval_ = other.kernelTrackerMaxInterval_; | kernelTrackerMaxInterval_ = other.kernelTrackerMaxInterval_; | ||||
kernelTrackerMaxBytes_ = other.kernelTrackerMaxBytes_; | kernelTrackerMaxBytes_ = other.kernelTrackerMaxBytes_; | ||||
kernelTrackerMaxPending_ = other.kernelTrackerMaxPending_; | kernelTrackerMaxPending_ = other.kernelTrackerMaxPending_; | ||||
internalFragmentationFraction_ = other.internalFragmentationFraction_; | |||||
useCudaMallocAsync_ = other.useCudaMallocAsync_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -814,6 +820,42 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "internal_fragmentation_fraction" field.</summary> | |||||
public const int InternalFragmentationFractionFieldNumber = 10; | |||||
private double internalFragmentationFraction_; | |||||
/// <summary> | |||||
/// BFC Allocator can return an allocated chunk of memory upto 2x the | |||||
/// requested size. For virtual devices with tight memory constraints, and | |||||
/// proportionately large allocation requests, this can lead to a significant | |||||
/// reduction in available memory. The threshold below controls when a chunk | |||||
/// should be split if the chunk size exceeds requested memory size. It is | |||||
/// expressed as a fraction of total available memory for the tf device. For | |||||
/// example setting it to 0.05 would imply a chunk needs to be split if its | |||||
/// size exceeds the requested memory by 5% of the total virtual device/gpu | |||||
/// memory size. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public double InternalFragmentationFraction { | |||||
get { return internalFragmentationFraction_; } | |||||
set { | |||||
internalFragmentationFraction_ = value; | |||||
} | |||||
} | |||||
/// <summary>Field number for the "use_cuda_malloc_async" field.</summary> | |||||
public const int UseCudaMallocAsyncFieldNumber = 11; | |||||
private bool useCudaMallocAsync_; | |||||
/// <summary> | |||||
/// When true, use CUDA cudaMallocAsync API instead of TF gpu allocator. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool UseCudaMallocAsync { | |||||
get { return useCudaMallocAsync_; } | |||||
set { | |||||
useCudaMallocAsync_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as Experimental); | return Equals(other as Experimental); | ||||
@@ -835,6 +877,8 @@ namespace Tensorflow { | |||||
if (KernelTrackerMaxInterval != other.KernelTrackerMaxInterval) return false; | if (KernelTrackerMaxInterval != other.KernelTrackerMaxInterval) return false; | ||||
if (KernelTrackerMaxBytes != other.KernelTrackerMaxBytes) return false; | if (KernelTrackerMaxBytes != other.KernelTrackerMaxBytes) return false; | ||||
if (KernelTrackerMaxPending != other.KernelTrackerMaxPending) return false; | if (KernelTrackerMaxPending != other.KernelTrackerMaxPending) return false; | ||||
if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(InternalFragmentationFraction, other.InternalFragmentationFraction)) return false; | |||||
if (UseCudaMallocAsync != other.UseCudaMallocAsync) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -849,6 +893,8 @@ namespace Tensorflow { | |||||
if (KernelTrackerMaxInterval != 0) hash ^= KernelTrackerMaxInterval.GetHashCode(); | if (KernelTrackerMaxInterval != 0) hash ^= KernelTrackerMaxInterval.GetHashCode(); | ||||
if (KernelTrackerMaxBytes != 0) hash ^= KernelTrackerMaxBytes.GetHashCode(); | if (KernelTrackerMaxBytes != 0) hash ^= KernelTrackerMaxBytes.GetHashCode(); | ||||
if (KernelTrackerMaxPending != 0) hash ^= KernelTrackerMaxPending.GetHashCode(); | if (KernelTrackerMaxPending != 0) hash ^= KernelTrackerMaxPending.GetHashCode(); | ||||
if (InternalFragmentationFraction != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(InternalFragmentationFraction); | |||||
if (UseCudaMallocAsync != false) hash ^= UseCudaMallocAsync.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -891,6 +937,14 @@ namespace Tensorflow { | |||||
output.WriteRawTag(72); | output.WriteRawTag(72); | ||||
output.WriteInt32(KernelTrackerMaxPending); | output.WriteInt32(KernelTrackerMaxPending); | ||||
} | } | ||||
if (InternalFragmentationFraction != 0D) { | |||||
output.WriteRawTag(81); | |||||
output.WriteDouble(InternalFragmentationFraction); | |||||
} | |||||
if (UseCudaMallocAsync != false) { | |||||
output.WriteRawTag(88); | |||||
output.WriteBool(UseCudaMallocAsync); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -921,6 +975,12 @@ namespace Tensorflow { | |||||
if (KernelTrackerMaxPending != 0) { | if (KernelTrackerMaxPending != 0) { | ||||
size += 1 + pb::CodedOutputStream.ComputeInt32Size(KernelTrackerMaxPending); | size += 1 + pb::CodedOutputStream.ComputeInt32Size(KernelTrackerMaxPending); | ||||
} | } | ||||
if (InternalFragmentationFraction != 0D) { | |||||
size += 1 + 8; | |||||
} | |||||
if (UseCudaMallocAsync != false) { | |||||
size += 1 + 1; | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -954,6 +1014,12 @@ namespace Tensorflow { | |||||
if (other.KernelTrackerMaxPending != 0) { | if (other.KernelTrackerMaxPending != 0) { | ||||
KernelTrackerMaxPending = other.KernelTrackerMaxPending; | KernelTrackerMaxPending = other.KernelTrackerMaxPending; | ||||
} | } | ||||
if (other.InternalFragmentationFraction != 0D) { | |||||
InternalFragmentationFraction = other.InternalFragmentationFraction; | |||||
} | |||||
if (other.UseCudaMallocAsync != false) { | |||||
UseCudaMallocAsync = other.UseCudaMallocAsync; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -997,6 +1063,14 @@ namespace Tensorflow { | |||||
KernelTrackerMaxPending = input.ReadInt32(); | KernelTrackerMaxPending = input.ReadInt32(); | ||||
break; | break; | ||||
} | } | ||||
case 81: { | |||||
InternalFragmentationFraction = input.ReadDouble(); | |||||
break; | |||||
} | |||||
case 88: { | |||||
UseCudaMallocAsync = input.ReadBool(); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -1231,6 +1305,9 @@ namespace Tensorflow { | |||||
private bool doCommonSubexpressionElimination_; | private bool doCommonSubexpressionElimination_; | ||||
/// <summary> | /// <summary> | ||||
/// If true, optimize the graph using common subexpression elimination. | /// If true, optimize the graph using common subexpression elimination. | ||||
/// Note: the optimization Level L1 will override this setting to true. So in | |||||
/// order to disable common subexpression elimination the opt_level has to be | |||||
/// set to L0. | |||||
/// </summary> | /// </summary> | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public bool DoCommonSubexpressionElimination { | public bool DoCommonSubexpressionElimination { | ||||
@@ -1245,6 +1322,8 @@ namespace Tensorflow { | |||||
private bool doConstantFolding_; | private bool doConstantFolding_; | ||||
/// <summary> | /// <summary> | ||||
/// If true, perform constant folding optimization on the graph. | /// If true, perform constant folding optimization on the graph. | ||||
/// Note: the optimization Level L1 will override this setting to true. So in | |||||
/// order to disable constant folding the opt_level has to be set to L0. | |||||
/// </summary> | /// </summary> | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public bool DoConstantFolding { | public bool DoConstantFolding { | ||||
@@ -2135,6 +2214,7 @@ namespace Tensorflow { | |||||
compressionLevel_ = other.compressionLevel_; | compressionLevel_ = other.compressionLevel_; | ||||
cacheRpcResponse_ = other.cacheRpcResponse_; | cacheRpcResponse_ = other.cacheRpcResponse_; | ||||
disableSessionConnectionSharing_ = other.disableSessionConnectionSharing_; | disableSessionConnectionSharing_ = other.disableSessionConnectionSharing_; | ||||
numChannelsPerTarget_ = other.numChannelsPerTarget_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -2223,6 +2303,25 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "num_channels_per_target" field.</summary> | |||||
public const int NumChannelsPerTargetFieldNumber = 6; | |||||
private int numChannelsPerTarget_; | |||||
/// <summary> | |||||
/// Setting num_channels_per_target > 0 allows uses of multiple channels to | |||||
/// communicate to the same target. This can be used to improve the aggregate | |||||
/// throughput on high speed links (e.g 100G) where single connection is not | |||||
/// sufficient to maximize link utilization. Note that a single RPC only goes | |||||
/// on a single channel, this only helps in situations where there are multiple | |||||
/// transfers to the same target overlapping in time. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int NumChannelsPerTarget { | |||||
get { return numChannelsPerTarget_; } | |||||
set { | |||||
numChannelsPerTarget_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as RPCOptions); | return Equals(other as RPCOptions); | ||||
@@ -2241,6 +2340,7 @@ namespace Tensorflow { | |||||
if (CompressionLevel != other.CompressionLevel) return false; | if (CompressionLevel != other.CompressionLevel) return false; | ||||
if (CacheRpcResponse != other.CacheRpcResponse) return false; | if (CacheRpcResponse != other.CacheRpcResponse) return false; | ||||
if (DisableSessionConnectionSharing != other.DisableSessionConnectionSharing) return false; | if (DisableSessionConnectionSharing != other.DisableSessionConnectionSharing) return false; | ||||
if (NumChannelsPerTarget != other.NumChannelsPerTarget) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -2252,6 +2352,7 @@ namespace Tensorflow { | |||||
if (CompressionLevel != 0) hash ^= CompressionLevel.GetHashCode(); | if (CompressionLevel != 0) hash ^= CompressionLevel.GetHashCode(); | ||||
if (CacheRpcResponse != false) hash ^= CacheRpcResponse.GetHashCode(); | if (CacheRpcResponse != false) hash ^= CacheRpcResponse.GetHashCode(); | ||||
if (DisableSessionConnectionSharing != false) hash ^= DisableSessionConnectionSharing.GetHashCode(); | if (DisableSessionConnectionSharing != false) hash ^= DisableSessionConnectionSharing.GetHashCode(); | ||||
if (NumChannelsPerTarget != 0) hash ^= NumChannelsPerTarget.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -2285,6 +2386,10 @@ namespace Tensorflow { | |||||
output.WriteRawTag(40); | output.WriteRawTag(40); | ||||
output.WriteBool(DisableSessionConnectionSharing); | output.WriteBool(DisableSessionConnectionSharing); | ||||
} | } | ||||
if (NumChannelsPerTarget != 0) { | |||||
output.WriteRawTag(48); | |||||
output.WriteInt32(NumChannelsPerTarget); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -2308,6 +2413,9 @@ namespace Tensorflow { | |||||
if (DisableSessionConnectionSharing != false) { | if (DisableSessionConnectionSharing != false) { | ||||
size += 1 + 1; | size += 1 + 1; | ||||
} | } | ||||
if (NumChannelsPerTarget != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeInt32Size(NumChannelsPerTarget); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -2334,6 +2442,9 @@ namespace Tensorflow { | |||||
if (other.DisableSessionConnectionSharing != false) { | if (other.DisableSessionConnectionSharing != false) { | ||||
DisableSessionConnectionSharing = other.DisableSessionConnectionSharing; | DisableSessionConnectionSharing = other.DisableSessionConnectionSharing; | ||||
} | } | ||||
if (other.NumChannelsPerTarget != 0) { | |||||
NumChannelsPerTarget = other.NumChannelsPerTarget; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -2365,6 +2476,10 @@ namespace Tensorflow { | |||||
DisableSessionConnectionSharing = input.ReadBool(); | DisableSessionConnectionSharing = input.ReadBool(); | ||||
break; | break; | ||||
} | } | ||||
case 48: { | |||||
NumChannelsPerTarget = input.ReadInt32(); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -2624,7 +2739,7 @@ namespace Tensorflow { | |||||
/// The first session created determines the number of threads in this pool. | /// The first session created determines the number of threads in this pool. | ||||
/// All subsequent sessions reuse/share this one global pool. | /// All subsequent sessions reuse/share this one global pool. | ||||
/// | /// | ||||
/// There are notable exceptions to the default behavior describe above: | |||||
/// There are notable exceptions to the default behavior described above: | |||||
/// 1. There is an environment variable for overriding this thread pool, | /// 1. There is an environment variable for overriding this thread pool, | ||||
/// named TF_OVERRIDE_GLOBAL_THREADPOOL. | /// named TF_OVERRIDE_GLOBAL_THREADPOOL. | ||||
/// 2. When connecting to a server, such as a remote `tf.train.Server` | /// 2. When connecting to a server, such as a remote `tf.train.Server` | ||||
@@ -3292,6 +3407,8 @@ namespace Tensorflow { | |||||
disableOutputPartitionGraphs_ = other.disableOutputPartitionGraphs_; | disableOutputPartitionGraphs_ = other.disableOutputPartitionGraphs_; | ||||
xlaFusionAutotunerThresh_ = other.xlaFusionAutotunerThresh_; | xlaFusionAutotunerThresh_ = other.xlaFusionAutotunerThresh_; | ||||
useTfrt_ = other.useTfrt_; | useTfrt_ = other.useTfrt_; | ||||
coordinationService_ = other.coordinationService_; | |||||
fetchRemoteDevicesInMultiClient_ = other.fetchRemoteDevicesInMultiClient_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -3606,6 +3723,38 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "coordination_service" field.</summary> | |||||
public const int CoordinationServiceFieldNumber = 19; | |||||
private string coordinationService_ = ""; | |||||
/// <summary> | |||||
/// Distributed coordination service to be enabled if set. | |||||
/// Currently only effective in multi-client setup. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string CoordinationService { | |||||
get { return coordinationService_; } | |||||
set { | |||||
coordinationService_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
/// <summary>Field number for the "fetch_remote_devices_in_multi_client" field.</summary> | |||||
public const int FetchRemoteDevicesInMultiClientFieldNumber = 20; | |||||
private bool fetchRemoteDevicesInMultiClient_; | |||||
/// <summary> | |||||
/// Whether the remote devices in the cluster should be fetched during setup | |||||
/// of multi-client cluster. If enabled, the workers will run an extra device | |||||
/// information exchange step during startup and the workers' EagerContexts | |||||
/// will become aware of remote devices in the cluster as well. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool FetchRemoteDevicesInMultiClient { | |||||
get { return fetchRemoteDevicesInMultiClient_; } | |||||
set { | |||||
fetchRemoteDevicesInMultiClient_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as Experimental); | return Equals(other as Experimental); | ||||
@@ -3636,6 +3785,8 @@ namespace Tensorflow { | |||||
if (DisableOutputPartitionGraphs != other.DisableOutputPartitionGraphs) return false; | if (DisableOutputPartitionGraphs != other.DisableOutputPartitionGraphs) return false; | ||||
if (XlaFusionAutotunerThresh != other.XlaFusionAutotunerThresh) return false; | if (XlaFusionAutotunerThresh != other.XlaFusionAutotunerThresh) return false; | ||||
if (UseTfrt != other.UseTfrt) return false; | if (UseTfrt != other.UseTfrt) return false; | ||||
if (CoordinationService != other.CoordinationService) return false; | |||||
if (FetchRemoteDevicesInMultiClient != other.FetchRemoteDevicesInMultiClient) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -3659,6 +3810,8 @@ namespace Tensorflow { | |||||
if (DisableOutputPartitionGraphs != false) hash ^= DisableOutputPartitionGraphs.GetHashCode(); | if (DisableOutputPartitionGraphs != false) hash ^= DisableOutputPartitionGraphs.GetHashCode(); | ||||
if (XlaFusionAutotunerThresh != 0L) hash ^= XlaFusionAutotunerThresh.GetHashCode(); | if (XlaFusionAutotunerThresh != 0L) hash ^= XlaFusionAutotunerThresh.GetHashCode(); | ||||
if (UseTfrt != false) hash ^= UseTfrt.GetHashCode(); | if (UseTfrt != false) hash ^= UseTfrt.GetHashCode(); | ||||
if (CoordinationService.Length != 0) hash ^= CoordinationService.GetHashCode(); | |||||
if (FetchRemoteDevicesInMultiClient != false) hash ^= FetchRemoteDevicesInMultiClient.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -3740,6 +3893,14 @@ namespace Tensorflow { | |||||
output.WriteRawTag(144, 1); | output.WriteRawTag(144, 1); | ||||
output.WriteBool(UseTfrt); | output.WriteBool(UseTfrt); | ||||
} | } | ||||
if (CoordinationService.Length != 0) { | |||||
output.WriteRawTag(154, 1); | |||||
output.WriteString(CoordinationService); | |||||
} | |||||
if (FetchRemoteDevicesInMultiClient != false) { | |||||
output.WriteRawTag(160, 1); | |||||
output.WriteBool(FetchRemoteDevicesInMultiClient); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -3799,6 +3960,12 @@ namespace Tensorflow { | |||||
if (UseTfrt != false) { | if (UseTfrt != false) { | ||||
size += 2 + 1; | size += 2 + 1; | ||||
} | } | ||||
if (CoordinationService.Length != 0) { | |||||
size += 2 + pb::CodedOutputStream.ComputeStringSize(CoordinationService); | |||||
} | |||||
if (FetchRemoteDevicesInMultiClient != false) { | |||||
size += 2 + 1; | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -3864,6 +4031,12 @@ namespace Tensorflow { | |||||
if (other.UseTfrt != false) { | if (other.UseTfrt != false) { | ||||
UseTfrt = other.UseTfrt; | UseTfrt = other.UseTfrt; | ||||
} | } | ||||
if (other.CoordinationService.Length != 0) { | |||||
CoordinationService = other.CoordinationService; | |||||
} | |||||
if (other.FetchRemoteDevicesInMultiClient != false) { | |||||
FetchRemoteDevicesInMultiClient = other.FetchRemoteDevicesInMultiClient; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -3946,6 +4119,14 @@ namespace Tensorflow { | |||||
UseTfrt = input.ReadBool(); | UseTfrt = input.ReadBool(); | ||||
break; | break; | ||||
} | } | ||||
case 154: { | |||||
CoordinationService = input.ReadString(); | |||||
break; | |||||
} | |||||
case 160: { | |||||
FetchRemoteDevicesInMultiClient = input.ReadBool(); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -25,27 +25,28 @@ namespace Tensorflow { | |||||
byte[] descriptorData = global::System.Convert.FromBase64String( | byte[] descriptorData = global::System.Convert.FromBase64String( | ||||
string.Concat( | string.Concat( | ||||
"CjV0ZW5zb3JmbG93L3B5dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVy", | "CjV0ZW5zb3JmbG93L3B5dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVy", | ||||
"ZW5jZS5wcm90bxIKdGVuc29yZmxvdxoldGVuc29yZmxvdy9jb3JlL2ZyYW1l", | |||||
"d29yay90eXBlcy5wcm90bxosdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90", | |||||
"ZW5zb3Jfc2hhcGUucHJvdG8ipQMKF0NwcFNoYXBlSW5mZXJlbmNlUmVzdWx0", | |||||
"ZW5jZS5wcm90bxIKdGVuc29yZmxvdxopdGVuc29yZmxvdy9jb3JlL2ZyYW1l", | |||||
"d29yay9mdWxsX3R5cGUucHJvdG8aLHRlbnNvcmZsb3cvY29yZS9mcmFtZXdv", | |||||
"cmsvdGVuc29yX3NoYXBlLnByb3RvGiV0ZW5zb3JmbG93L2NvcmUvZnJhbWV3", | |||||
"b3JrL3R5cGVzLnByb3RvIpsDChdDcHBTaGFwZUluZmVyZW5jZVJlc3VsdBIr", | |||||
"CgVzaGFwZRgBIAEoCzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90bxJD", | |||||
"CgtoYW5kbGVfZGF0YRgEIAEoCzIuLnRlbnNvcmZsb3cuQ3BwU2hhcGVJbmZl", | |||||
"cmVuY2VSZXN1bHQuSGFuZGxlRGF0YRqTAQoSSGFuZGxlU2hhcGVBbmRUeXBl", | |||||
"EisKBXNoYXBlGAEgASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3Rv", | "EisKBXNoYXBlGAEgASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3Rv", | ||||
"EkMKC2hhbmRsZV9kYXRhGAQgASgLMi4udGVuc29yZmxvdy5DcHBTaGFwZUlu", | |||||
"ZmVyZW5jZVJlc3VsdC5IYW5kbGVEYXRhGp0BChJIYW5kbGVTaGFwZUFuZFR5", | |||||
"cGUSKwoFc2hhcGUYASABKAsyHC50ZW5zb3JmbG93LlRlbnNvclNoYXBlUHJv", | |||||
"dG8SIwoFZHR5cGUYAiABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBlEjUKEHNw", | |||||
"ZWNpYWxpemVkX3R5cGUYAyABKA4yGy50ZW5zb3JmbG93LlNwZWNpYWxpemVk", | |||||
"VHlwZRpsCgpIYW5kbGVEYXRhEg4KBmlzX3NldBgBIAEoCBJOCg5zaGFwZV9h", | |||||
"bmRfdHlwZRgCIAMoCzI2LnRlbnNvcmZsb3cuQ3BwU2hhcGVJbmZlcmVuY2VS", | |||||
"ZXN1bHQuSGFuZGxlU2hhcGVBbmRUeXBlSgQIAhADSgQIAxAEImUKHUNwcFNo", | |||||
"YXBlSW5mZXJlbmNlSW5wdXRzTmVlZGVkEhwKFGlucHV0X3RlbnNvcnNfbmVl", | |||||
"ZGVkGAEgAygFEiYKHmlucHV0X3RlbnNvcnNfYXNfc2hhcGVzX25lZWRlZBgC", | |||||
"IAMoBUJhWlxnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5z", | |||||
"b3JmbG93L2dvL3B5dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVyZW5j", | |||||
"ZV9nb19wcm90b/gBAWIGcHJvdG8z")); | |||||
"EiMKBWR0eXBlGAIgASgOMhQudGVuc29yZmxvdy5EYXRhVHlwZRIlCgR0eXBl", | |||||
"GAQgASgLMhcudGVuc29yZmxvdy5GdWxsVHlwZURlZkoECAMQBBpsCgpIYW5k", | |||||
"bGVEYXRhEg4KBmlzX3NldBgBIAEoCBJOCg5zaGFwZV9hbmRfdHlwZRgCIAMo", | |||||
"CzI2LnRlbnNvcmZsb3cuQ3BwU2hhcGVJbmZlcmVuY2VSZXN1bHQuSGFuZGxl", | |||||
"U2hhcGVBbmRUeXBlSgQIAhADSgQIAxAEImUKHUNwcFNoYXBlSW5mZXJlbmNl", | |||||
"SW5wdXRzTmVlZGVkEhwKFGlucHV0X3RlbnNvcnNfbmVlZGVkGAEgAygFEiYK", | |||||
"HmlucHV0X3RlbnNvcnNfYXNfc2hhcGVzX25lZWRlZBgCIAMoBUJhWlxnaXRo", | |||||
"dWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL3B5", | |||||
"dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVyZW5jZV9nb19wcm90b/gB", | |||||
"AWIGcHJvdG8z")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, }, | |||||
new pbr::FileDescriptor[] { global::Tensorflow.FullTypeReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, | |||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult), global::Tensorflow.CppShapeInferenceResult.Parser, new[]{ "Shape", "HandleData" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType), global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType.Parser, new[]{ "Shape", "Dtype", "SpecializedType" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult), global::Tensorflow.CppShapeInferenceResult.Parser, new[]{ "Shape", "HandleData" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType), global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType.Parser, new[]{ "Shape", "Dtype", "Type" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleData), global::Tensorflow.CppShapeInferenceResult.Types.HandleData.Parser, new[]{ "IsSet", "ShapeAndType" }, null, null, null, null)}), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleData), global::Tensorflow.CppShapeInferenceResult.Types.HandleData.Parser, new[]{ "IsSet", "ShapeAndType" }, null, null, null, null)}), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceInputsNeeded), global::Tensorflow.CppShapeInferenceInputsNeeded.Parser, new[]{ "InputTensorsNeeded", "InputTensorsAsShapesNeeded" }, null, null, null, null) | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceInputsNeeded), global::Tensorflow.CppShapeInferenceInputsNeeded.Parser, new[]{ "InputTensorsNeeded", "InputTensorsAsShapesNeeded" }, null, null, null, null) | ||||
})); | })); | ||||
@@ -252,7 +253,7 @@ namespace Tensorflow { | |||||
public HandleShapeAndType(HandleShapeAndType other) : this() { | public HandleShapeAndType(HandleShapeAndType other) : this() { | ||||
shape_ = other.shape_ != null ? other.shape_.Clone() : null; | shape_ = other.shape_ != null ? other.shape_.Clone() : null; | ||||
dtype_ = other.dtype_; | dtype_ = other.dtype_; | ||||
specializedType_ = other.specializedType_; | |||||
type_ = other.type_ != null ? other.type_.Clone() : null; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -283,19 +284,14 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "specialized_type" field.</summary> | |||||
public const int SpecializedTypeFieldNumber = 3; | |||||
private global::Tensorflow.SpecializedType specializedType_ = global::Tensorflow.SpecializedType.StInvalid; | |||||
/// <summary> | |||||
/// For dtype==DT_VARIANT, specialized_type may indicate a more specific | |||||
/// type. For other dtypes or when the information is unavailable it is set | |||||
/// to ST_INVALID. | |||||
/// </summary> | |||||
/// <summary>Field number for the "type" field.</summary> | |||||
public const int TypeFieldNumber = 4; | |||||
private global::Tensorflow.FullTypeDef type_; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public global::Tensorflow.SpecializedType SpecializedType { | |||||
get { return specializedType_; } | |||||
public global::Tensorflow.FullTypeDef Type { | |||||
get { return type_; } | |||||
set { | set { | ||||
specializedType_ = value; | |||||
type_ = value; | |||||
} | } | ||||
} | } | ||||
@@ -314,7 +310,7 @@ namespace Tensorflow { | |||||
} | } | ||||
if (!object.Equals(Shape, other.Shape)) return false; | if (!object.Equals(Shape, other.Shape)) return false; | ||||
if (Dtype != other.Dtype) return false; | if (Dtype != other.Dtype) return false; | ||||
if (SpecializedType != other.SpecializedType) return false; | |||||
if (!object.Equals(Type, other.Type)) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -323,7 +319,7 @@ namespace Tensorflow { | |||||
int hash = 1; | int hash = 1; | ||||
if (shape_ != null) hash ^= Shape.GetHashCode(); | if (shape_ != null) hash ^= Shape.GetHashCode(); | ||||
if (Dtype != global::Tensorflow.DataType.DtInvalid) hash ^= Dtype.GetHashCode(); | if (Dtype != global::Tensorflow.DataType.DtInvalid) hash ^= Dtype.GetHashCode(); | ||||
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) hash ^= SpecializedType.GetHashCode(); | |||||
if (type_ != null) hash ^= Type.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -345,9 +341,9 @@ namespace Tensorflow { | |||||
output.WriteRawTag(16); | output.WriteRawTag(16); | ||||
output.WriteEnum((int) Dtype); | output.WriteEnum((int) Dtype); | ||||
} | } | ||||
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) { | |||||
output.WriteRawTag(24); | |||||
output.WriteEnum((int) SpecializedType); | |||||
if (type_ != null) { | |||||
output.WriteRawTag(34); | |||||
output.WriteMessage(Type); | |||||
} | } | ||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
@@ -363,8 +359,8 @@ namespace Tensorflow { | |||||
if (Dtype != global::Tensorflow.DataType.DtInvalid) { | if (Dtype != global::Tensorflow.DataType.DtInvalid) { | ||||
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype); | size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype); | ||||
} | } | ||||
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) { | |||||
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SpecializedType); | |||||
if (type_ != null) { | |||||
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Type); | |||||
} | } | ||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
@@ -386,8 +382,11 @@ namespace Tensorflow { | |||||
if (other.Dtype != global::Tensorflow.DataType.DtInvalid) { | if (other.Dtype != global::Tensorflow.DataType.DtInvalid) { | ||||
Dtype = other.Dtype; | Dtype = other.Dtype; | ||||
} | } | ||||
if (other.SpecializedType != global::Tensorflow.SpecializedType.StInvalid) { | |||||
SpecializedType = other.SpecializedType; | |||||
if (other.type_ != null) { | |||||
if (type_ == null) { | |||||
Type = new global::Tensorflow.FullTypeDef(); | |||||
} | |||||
Type.MergeFrom(other.Type); | |||||
} | } | ||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -411,8 +410,11 @@ namespace Tensorflow { | |||||
Dtype = (global::Tensorflow.DataType) input.ReadEnum(); | Dtype = (global::Tensorflow.DataType) input.ReadEnum(); | ||||
break; | break; | ||||
} | } | ||||
case 24: { | |||||
SpecializedType = (global::Tensorflow.SpecializedType) input.ReadEnum(); | |||||
case 34: { | |||||
if (type_ == null) { | |||||
Type = new global::Tensorflow.FullTypeDef(); | |||||
} | |||||
input.ReadMessage(Type); | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
@@ -0,0 +1,450 @@ | |||||
// <auto-generated> | |||||
// Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
// source: tensorflow/core/framework/full_type.proto | |||||
// </auto-generated> | |||||
#pragma warning disable 1591, 0612, 3021 | |||||
#region Designer generated code | |||||
using pb = global::Google.Protobuf; | |||||
using pbc = global::Google.Protobuf.Collections; | |||||
using pbr = global::Google.Protobuf.Reflection; | |||||
using scg = global::System.Collections.Generic; | |||||
namespace Tensorflow { | |||||
/// <summary>Holder for reflection information generated from tensorflow/core/framework/full_type.proto</summary> | |||||
public static partial class FullTypeReflection { | |||||
#region Descriptor | |||||
/// <summary>File descriptor for tensorflow/core/framework/full_type.proto</summary> | |||||
public static pbr::FileDescriptor Descriptor { | |||||
get { return descriptor; } | |||||
} | |||||
private static pbr::FileDescriptor descriptor; | |||||
static FullTypeReflection() { | |||||
byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
string.Concat( | |||||
"Cil0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2Z1bGxfdHlwZS5wcm90bxIK", | |||||
"dGVuc29yZmxvdyJyCgtGdWxsVHlwZURlZhInCgd0eXBlX2lkGAEgASgOMhYu", | |||||
"dGVuc29yZmxvdy5GdWxsVHlwZUlkEiUKBGFyZ3MYAiADKAsyFy50ZW5zb3Jm", | |||||
"bG93LkZ1bGxUeXBlRGVmEgsKAXMYAyABKAlIAEIGCgRhdHRyKqwDCgpGdWxs", | |||||
"VHlwZUlkEg0KCVRGVF9VTlNFVBAAEgsKB1RGVF9WQVIQARILCgdURlRfQU5Z", | |||||
"EAISDwoLVEZUX1BST0RVQ1QQAxIQCgxURlRfQ0FMTEFCTEUQZBIPCgpURlRf", | |||||
"VEVOU09SEOgHEg4KCVRGVF9BUlJBWRDpBxIRCgxURlRfT1BUSU9OQUwQ6gcS", | |||||
"EAoLVEZUX0RBVEFTRVQQ9k4SDQoIVEZUX0JPT0wQyAESDgoJVEZUX1VJTlQ4", | |||||
"EMkBEg8KClRGVF9VSU5UMTYQygESDwoKVEZUX1VJTlQzMhDLARIPCgpURlRf", | |||||
"VUlOVDY0EMwBEg0KCFRGVF9JTlQ4EM0BEg4KCVRGVF9JTlQxNhDOARIOCglU", | |||||
"RlRfSU5UMzIQzwESDgoJVEZUX0lOVDY0ENABEg0KCFRGVF9IQUxGENEBEg4K", | |||||
"CVRGVF9GTE9BVBDSARIPCgpURlRfRE9VQkxFENMBEhEKDFRGVF9CRkxPQVQx", | |||||
"NhDXARISCg1URlRfQ09NUExFWDY0ENQBEhMKDlRGVF9DT01QTEVYMTI4ENUB", | |||||
"Eg8KClRGVF9TVFJJTkcQ1gFCfQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr", | |||||
"Qg5GdWxsVHlwZVByb3Rvc1ABWkxnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVu", | |||||
"c29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL3R5cGVzX2dv", | |||||
"X3Byb3Rv+AEBYgZwcm90bzM=")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
new pbr::FileDescriptor[] { }, | |||||
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.FullTypeId), }, null, new pbr::GeneratedClrTypeInfo[] { | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FullTypeDef), global::Tensorflow.FullTypeDef.Parser, new[]{ "TypeId", "Args", "S" }, new[]{ "Attr" }, null, null, null) | |||||
})); | |||||
} | |||||
#endregion | |||||
} | |||||
#region Enums | |||||
/// <summary> | |||||
/// Experimental. Represents the complete type information of a TensorFlow value. | |||||
/// </summary> | |||||
public enum FullTypeId { | |||||
/// <summary> | |||||
/// The default represents an uninitialized values. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_UNSET")] TftUnset = 0, | |||||
/// <summary> | |||||
/// Type variables may serve as placeholder for any other type ID in type | |||||
/// templates. | |||||
/// | |||||
/// Examples: | |||||
/// TFT_DATASET[TFT_VAR["T"]] is a Dataset returning a type indicated by "T". | |||||
/// TFT_TENSOR[TFT_VAR["T"]] is a Tensor of n element type indicated by "T". | |||||
/// TFT_TENSOR[TFT_VAR["T"]], TFT_TENSOR[TFT_VAR["T"]] are two tensors of | |||||
/// identical element types. | |||||
/// TFT_TENSOR[TFT_VAR["P"]], TFT_TENSOR[TFT_VAR["Q"]] are two tensors of | |||||
/// potentially different element types. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_VAR")] TftVar = 1, | |||||
/// <summary> | |||||
/// Wildcard type. Describes a parameter of unknown type. In TensorFlow, that | |||||
/// can mean either a "Top" type (accepts any type), or a dynamically typed | |||||
/// object whose type is unknown in context. | |||||
/// Important: "unknown" does not necessarily mean undeterminable! | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_ANY")] TftAny = 2, | |||||
/// <summary> | |||||
/// The algebraic product type. This is an algebraic type that may be used just | |||||
/// for logical grouping. Not to confused with TFT_TUPLE which describes a | |||||
/// concrete object of several elements. | |||||
/// | |||||
/// Example: | |||||
/// TFT_DATASET[TFT_PRODUCT[TFT_TENSOR[TFT_INT32], TFT_TENSOR[TFT_FLOAT64]]] | |||||
/// is a Dataset producing two tensors, an integer one and a float one. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_PRODUCT")] TftProduct = 3, | |||||
/// <summary> | |||||
/// Callable types describe functions and ops. | |||||
/// | |||||
/// Parametrization: | |||||
/// TFT_CALLABLE[<arg type>, <return type>] | |||||
/// * <arg_type> is the type of the arguments; TFT_PRODUCT represents | |||||
/// multiple | |||||
/// arguments. | |||||
/// * <return_type> is the return type; TFT_PRODUCT represents multiple | |||||
/// return values (that means that callables returning multiple things | |||||
/// don't necessarily return a single tuple). | |||||
/// | |||||
/// Example: | |||||
/// TFT_CALLABLE[ | |||||
/// TFT_ANY, | |||||
/// TFT_PRODUCT[TFT_TENSOR[TFT_INT32], TFT_TENSOR[TFT_FLOAT64]], | |||||
/// ] | |||||
/// is a callable with unspecified (for now) input arguments, and | |||||
/// two return values of type tensor. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_CALLABLE")] TftCallable = 100, | |||||
/// <summary> | |||||
/// The usual Tensor. This is a parametric type. | |||||
/// | |||||
/// Parametrization: | |||||
/// TFT_TENSOR[<element type>, <shape type>] | |||||
/// * <element_type> is currently limited to one of the element types | |||||
/// defined below. | |||||
/// * <shape_type> is not yet defined, and may only be TFT_UNKNOWN for now. | |||||
/// | |||||
/// A TFT_SHAPE type will be defined in the future. | |||||
/// | |||||
/// Example: | |||||
/// TFT_TENSOR[TFT_INT32, TFT_UNKNOWN] | |||||
/// is a Tensor of int32 element type and unknown shape. | |||||
/// | |||||
/// TODO(mdan): Define TFT_SHAPE and add more examples. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_TENSOR")] TftTensor = 1000, | |||||
/// <summary> | |||||
/// Array (or tensorflow::TensorList in the variant type registry). | |||||
/// Note: this is not to be confused with the deprecated `TensorArray*` ops | |||||
/// which are not supported by FullType. | |||||
/// This type represents a random-access list whose elements can be | |||||
/// described by a single type. Although immutable, Array is expected to | |||||
/// support efficient mutation semantics (i.e. element update) in the | |||||
/// user-facing API. | |||||
/// The element type may be generic or even TFT_ANY for a heterogenous list. | |||||
/// | |||||
/// Parametrization: | |||||
/// TFT_ARRAY[<element type>] | |||||
/// * <element_type> may be any concrete type. | |||||
/// | |||||
/// Examples: | |||||
/// TFT_ARRAY[TFT_TENSOR[TFT_INT32]] is a TensorArray holding int32 Tensors | |||||
/// of any shape. | |||||
/// TFT_ARRAY[TFT_TENSOR[TFT_UNKNOWN]] is a TensorArray holding Tensors of | |||||
/// mixed element types. | |||||
/// TFT_ARRAY[TFT_UNKNOWN] is a TensorArray holding any element type. | |||||
/// TFT_ARRAY[] is equivalent to TFT_ARRAY[TFT_UNKNOWN]. | |||||
/// TFT_ARRAY[TFT_ARRAY[]] is an array or arrays (of unknown types). | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_ARRAY")] TftArray = 1001, | |||||
/// <summary> | |||||
/// Optional (or tensorflow::OptionalVariant in the variant type registry). | |||||
/// This type represents a value that may either hold an element of a single | |||||
/// specified type, or nothing at all. | |||||
/// | |||||
/// Parametrization: | |||||
/// TFT_OPTIONAL[<element type>] | |||||
/// * <element_type> may be any concrete type. | |||||
/// | |||||
/// Examples: | |||||
/// TFT_OPTIONAL[TFT_TENSOR[TFT_INT32]] is an Optional holding an int32 | |||||
/// Tensor of any shape. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_OPTIONAL")] TftOptional = 1002, | |||||
/// <summary> | |||||
/// Datasets created by tf.data ops and APIs. Datasets have generator/iterable | |||||
/// semantics, that is, one can construct an iterator from them. Like | |||||
/// Array, they are considered to return elements that can be described | |||||
/// by a single type. Unlike Array, they do not support random access or | |||||
/// mutation, and can potentially produce an infinite number of elements. | |||||
/// A datasets can produce logical structures (e.g. multiple elements). This | |||||
/// is expressed using TFT_PRODUCT. | |||||
/// | |||||
/// Parametrization: TFT_ARRAY[<element type>]. | |||||
/// <element_type> may be a concrete type or a type symbol. It represents the | |||||
/// data type of the elements produced by the dataset. | |||||
/// | |||||
/// Examples: | |||||
/// TFT_DATSET[TFT_TENSOR[TFT_INT32]] is a Dataset producing single int32 | |||||
/// Tensors of unknown shape. | |||||
/// TFT_DATSET[TFT_PRODUCT[TFT_TENSOR[TFT_INT32], TFT_TENSOR[TFT_FLOAT32]] is | |||||
/// a | |||||
/// Dataset producing pairs of Tensors, one integer and one float. | |||||
/// Note: The high ID number is to prepare for the eventuality that Datasets | |||||
/// will be supported by user types in the future. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_DATASET")] TftDataset = 10102, | |||||
/// <summary> | |||||
/// The bool element type. | |||||
/// TODO(mdan): Quantized types, legacy representations (e.g. ref) | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_BOOL")] TftBool = 200, | |||||
/// <summary> | |||||
/// Integer element types. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_UINT8")] TftUint8 = 201, | |||||
[pbr::OriginalName("TFT_UINT16")] TftUint16 = 202, | |||||
[pbr::OriginalName("TFT_UINT32")] TftUint32 = 203, | |||||
[pbr::OriginalName("TFT_UINT64")] TftUint64 = 204, | |||||
[pbr::OriginalName("TFT_INT8")] TftInt8 = 205, | |||||
[pbr::OriginalName("TFT_INT16")] TftInt16 = 206, | |||||
[pbr::OriginalName("TFT_INT32")] TftInt32 = 207, | |||||
[pbr::OriginalName("TFT_INT64")] TftInt64 = 208, | |||||
/// <summary> | |||||
/// Floating-point element types. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_HALF")] TftHalf = 209, | |||||
[pbr::OriginalName("TFT_FLOAT")] TftFloat = 210, | |||||
[pbr::OriginalName("TFT_DOUBLE")] TftDouble = 211, | |||||
[pbr::OriginalName("TFT_BFLOAT16")] TftBfloat16 = 215, | |||||
/// <summary> | |||||
/// Complex element types. | |||||
/// TODO(mdan): Represent as TFT_COMPLEX[TFT_DOUBLE] instead? | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_COMPLEX64")] TftComplex64 = 212, | |||||
[pbr::OriginalName("TFT_COMPLEX128")] TftComplex128 = 213, | |||||
/// <summary> | |||||
/// The string element type. | |||||
/// </summary> | |||||
[pbr::OriginalName("TFT_STRING")] TftString = 214, | |||||
} | |||||
#endregion | |||||
#region Messages | |||||
/// <summary> | |||||
/// Highly experimental and very likely to change. | |||||
/// This encoding uses tags instead of dedicated messages for regularity. In | |||||
/// particular the encoding imposes no restrictions on what the parameters of any | |||||
/// type should be, which in particular needs to be true for type symbols. | |||||
/// </summary> | |||||
public sealed partial class FullTypeDef : pb::IMessage<FullTypeDef> { | |||||
private static readonly pb::MessageParser<FullTypeDef> _parser = new pb::MessageParser<FullTypeDef>(() => new FullTypeDef()); | |||||
private pb::UnknownFieldSet _unknownFields; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pb::MessageParser<FullTypeDef> Parser { get { return _parser; } } | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pbr::MessageDescriptor Descriptor { | |||||
get { return global::Tensorflow.FullTypeReflection.Descriptor.MessageTypes[0]; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
get { return Descriptor; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public FullTypeDef() { | |||||
OnConstruction(); | |||||
} | |||||
partial void OnConstruction(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public FullTypeDef(FullTypeDef other) : this() { | |||||
typeId_ = other.typeId_; | |||||
args_ = other.args_.Clone(); | |||||
switch (other.AttrCase) { | |||||
case AttrOneofCase.S: | |||||
S = other.S; | |||||
break; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public FullTypeDef Clone() { | |||||
return new FullTypeDef(this); | |||||
} | |||||
/// <summary>Field number for the "type_id" field.</summary> | |||||
public const int TypeIdFieldNumber = 1; | |||||
private global::Tensorflow.FullTypeId typeId_ = global::Tensorflow.FullTypeId.TftUnset; | |||||
/// <summary> | |||||
/// The principal type represented by this object. This may be a concrete type | |||||
/// (Tensor, Dataset) a type variable (used for dependent types) a type | |||||
/// symbol (Any, Union). See FullTypeId for details. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public global::Tensorflow.FullTypeId TypeId { | |||||
get { return typeId_; } | |||||
set { | |||||
typeId_ = value; | |||||
} | |||||
} | |||||
/// <summary>Field number for the "args" field.</summary> | |||||
public const int ArgsFieldNumber = 2; | |||||
private static readonly pb::FieldCodec<global::Tensorflow.FullTypeDef> _repeated_args_codec | |||||
= pb::FieldCodec.ForMessage(18, global::Tensorflow.FullTypeDef.Parser); | |||||
private readonly pbc::RepeatedField<global::Tensorflow.FullTypeDef> args_ = new pbc::RepeatedField<global::Tensorflow.FullTypeDef>(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public pbc::RepeatedField<global::Tensorflow.FullTypeDef> Args { | |||||
get { return args_; } | |||||
} | |||||
/// <summary>Field number for the "s" field.</summary> | |||||
public const int SFieldNumber = 3; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string S { | |||||
get { return attrCase_ == AttrOneofCase.S ? (string) attr_ : ""; } | |||||
set { | |||||
attr_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
attrCase_ = AttrOneofCase.S; | |||||
} | |||||
} | |||||
private object attr_; | |||||
/// <summary>Enum of possible cases for the "attr" oneof.</summary> | |||||
public enum AttrOneofCase { | |||||
None = 0, | |||||
S = 3, | |||||
} | |||||
private AttrOneofCase attrCase_ = AttrOneofCase.None; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public AttrOneofCase AttrCase { | |||||
get { return attrCase_; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void ClearAttr() { | |||||
attrCase_ = AttrOneofCase.None; | |||||
attr_ = null; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override bool Equals(object other) { | |||||
return Equals(other as FullTypeDef); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool Equals(FullTypeDef other) { | |||||
if (ReferenceEquals(other, null)) { | |||||
return false; | |||||
} | |||||
if (ReferenceEquals(other, this)) { | |||||
return true; | |||||
} | |||||
if (TypeId != other.TypeId) return false; | |||||
if(!args_.Equals(other.args_)) return false; | |||||
if (S != other.S) return false; | |||||
if (AttrCase != other.AttrCase) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override int GetHashCode() { | |||||
int hash = 1; | |||||
if (TypeId != global::Tensorflow.FullTypeId.TftUnset) hash ^= TypeId.GetHashCode(); | |||||
hash ^= args_.GetHashCode(); | |||||
if (attrCase_ == AttrOneofCase.S) hash ^= S.GetHashCode(); | |||||
hash ^= (int) attrCase_; | |||||
if (_unknownFields != null) { | |||||
hash ^= _unknownFields.GetHashCode(); | |||||
} | |||||
return hash; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override string ToString() { | |||||
return pb::JsonFormatter.ToDiagnosticString(this); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void WriteTo(pb::CodedOutputStream output) { | |||||
if (TypeId != global::Tensorflow.FullTypeId.TftUnset) { | |||||
output.WriteRawTag(8); | |||||
output.WriteEnum((int) TypeId); | |||||
} | |||||
args_.WriteTo(output, _repeated_args_codec); | |||||
if (attrCase_ == AttrOneofCase.S) { | |||||
output.WriteRawTag(26); | |||||
output.WriteString(S); | |||||
} | |||||
if (_unknownFields != null) { | |||||
_unknownFields.WriteTo(output); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int CalculateSize() { | |||||
int size = 0; | |||||
if (TypeId != global::Tensorflow.FullTypeId.TftUnset) { | |||||
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) TypeId); | |||||
} | |||||
size += args_.CalculateSize(_repeated_args_codec); | |||||
if (attrCase_ == AttrOneofCase.S) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(S); | |||||
} | |||||
if (_unknownFields != null) { | |||||
size += _unknownFields.CalculateSize(); | |||||
} | |||||
return size; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(FullTypeDef other) { | |||||
if (other == null) { | |||||
return; | |||||
} | |||||
if (other.TypeId != global::Tensorflow.FullTypeId.TftUnset) { | |||||
TypeId = other.TypeId; | |||||
} | |||||
args_.Add(other.args_); | |||||
switch (other.AttrCase) { | |||||
case AttrOneofCase.S: | |||||
S = other.S; | |||||
break; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(pb::CodedInputStream input) { | |||||
uint tag; | |||||
while ((tag = input.ReadTag()) != 0) { | |||||
switch(tag) { | |||||
default: | |||||
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
break; | |||||
case 8: { | |||||
TypeId = (global::Tensorflow.FullTypeId) input.ReadEnum(); | |||||
break; | |||||
} | |||||
case 18: { | |||||
args_.AddEntriesFrom(input, _repeated_args_codec); | |||||
break; | |||||
} | |||||
case 26: { | |||||
S = input.ReadString(); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
#endregion Designer generated code |
@@ -28,39 +28,43 @@ namespace Tensorflow { | |||||
"ZW5zb3JmbG93Gip0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2F0dHJfdmFs", | "ZW5zb3JmbG93Gip0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2F0dHJfdmFs", | ||||
"dWUucHJvdG8aKHRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvbm9kZV9kZWYu", | "dWUucHJvdG8aKHRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvbm9kZV9kZWYu", | ||||
"cHJvdG8aJnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvb3BfZGVmLnByb3Rv", | "cHJvdG8aJnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvb3BfZGVmLnByb3Rv", | ||||
"ImoKEkZ1bmN0aW9uRGVmTGlicmFyeRIpCghmdW5jdGlvbhgBIAMoCzIXLnRl", | |||||
"bnNvcmZsb3cuRnVuY3Rpb25EZWYSKQoIZ3JhZGllbnQYAiADKAsyFy50ZW5z", | |||||
"b3JmbG93LkdyYWRpZW50RGVmIsQGCgtGdW5jdGlvbkRlZhIkCglzaWduYXR1", | |||||
"cmUYASABKAsyES50ZW5zb3JmbG93Lk9wRGVmEi8KBGF0dHIYBSADKAsyIS50", | |||||
"ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLkF0dHJFbnRyeRI2CghhcmdfYXR0chgH", | |||||
"IAMoCzIkLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0ckVudHJ5ElAK", | |||||
"FnJlc291cmNlX2FyZ191bmlxdWVfaWQYCCADKAsyMC50ZW5zb3JmbG93LkZ1", | |||||
"bmN0aW9uRGVmLlJlc291cmNlQXJnVW5pcXVlSWRFbnRyeRIlCghub2RlX2Rl", | |||||
"ZhgDIAMoCzITLnRlbnNvcmZsb3cuTm9kZURlZhItCgNyZXQYBCADKAsyIC50", | |||||
"ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLlJldEVudHJ5EjwKC2NvbnRyb2xfcmV0", | |||||
"GAYgAygLMicudGVuc29yZmxvdy5GdW5jdGlvbkRlZi5Db250cm9sUmV0RW50", | |||||
"cnkaQgoJQXR0ckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIV", | |||||
"LnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4ARqIAQoIQXJnQXR0cnMSOAoEYXR0", | |||||
"chgBIAMoCzIqLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0cnMuQXR0", | |||||
"ckVudHJ5GkIKCUF0dHJFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiAB", | |||||
"KAsyFS50ZW5zb3JmbG93LkF0dHJWYWx1ZToCOAEaUAoMQXJnQXR0ckVudHJ5", | |||||
"EgsKA2tleRgBIAEoDRIvCgV2YWx1ZRgCIAEoCzIgLnRlbnNvcmZsb3cuRnVu", | |||||
"Y3Rpb25EZWYuQXJnQXR0cnM6AjgBGjoKGFJlc291cmNlQXJnVW5pcXVlSWRF", | |||||
"bnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGioKCFJldEVu", | |||||
"dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMQoPQ29udHJv", | |||||
"bFJldEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgC", | |||||
"EAMiOwoLR3JhZGllbnREZWYSFQoNZnVuY3Rpb25fbmFtZRgBIAEoCRIVCg1n", | |||||
"cmFkaWVudF9mdW5jGAIgASgJQoABChhvcmcudGVuc29yZmxvdy5mcmFtZXdv", | |||||
"cmtCDkZ1bmN0aW9uUHJvdG9zUAFaT2dpdGh1Yi5jb20vdGVuc29yZmxvdy90", | |||||
"ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmsvZnVuY3Rp", | |||||
"b25fZ29fcHJvdG/4AQFiBnByb3RvMw==")); | |||||
"IqgBChJGdW5jdGlvbkRlZkxpYnJhcnkSKQoIZnVuY3Rpb24YASADKAsyFy50", | |||||
"ZW5zb3JmbG93LkZ1bmN0aW9uRGVmEikKCGdyYWRpZW50GAIgAygLMhcudGVu", | |||||
"c29yZmxvdy5HcmFkaWVudERlZhI8ChRyZWdpc3RlcmVkX2dyYWRpZW50cxgD", | |||||
"IAMoCzIeLnRlbnNvcmZsb3cuUmVnaXN0ZXJlZEdyYWRpZW50IsQGCgtGdW5j", | |||||
"dGlvbkRlZhIkCglzaWduYXR1cmUYASABKAsyES50ZW5zb3JmbG93Lk9wRGVm", | |||||
"Ei8KBGF0dHIYBSADKAsyIS50ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLkF0dHJF", | |||||
"bnRyeRI2CghhcmdfYXR0chgHIAMoCzIkLnRlbnNvcmZsb3cuRnVuY3Rpb25E", | |||||
"ZWYuQXJnQXR0ckVudHJ5ElAKFnJlc291cmNlX2FyZ191bmlxdWVfaWQYCCAD", | |||||
"KAsyMC50ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLlJlc291cmNlQXJnVW5pcXVl", | |||||
"SWRFbnRyeRIlCghub2RlX2RlZhgDIAMoCzITLnRlbnNvcmZsb3cuTm9kZURl", | |||||
"ZhItCgNyZXQYBCADKAsyIC50ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLlJldEVu", | |||||
"dHJ5EjwKC2NvbnRyb2xfcmV0GAYgAygLMicudGVuc29yZmxvdy5GdW5jdGlv", | |||||
"bkRlZi5Db250cm9sUmV0RW50cnkaQgoJQXR0ckVudHJ5EgsKA2tleRgBIAEo", | |||||
"CRIkCgV2YWx1ZRgCIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4ARqI", | |||||
"AQoIQXJnQXR0cnMSOAoEYXR0chgBIAMoCzIqLnRlbnNvcmZsb3cuRnVuY3Rp", | |||||
"b25EZWYuQXJnQXR0cnMuQXR0ckVudHJ5GkIKCUF0dHJFbnRyeRILCgNrZXkY", | |||||
"ASABKAkSJAoFdmFsdWUYAiABKAsyFS50ZW5zb3JmbG93LkF0dHJWYWx1ZToC", | |||||
"OAEaUAoMQXJnQXR0ckVudHJ5EgsKA2tleRgBIAEoDRIvCgV2YWx1ZRgCIAEo", | |||||
"CzIgLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0cnM6AjgBGjoKGFJl", | |||||
"c291cmNlQXJnVW5pcXVlSWRFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUY", | |||||
"AiABKA06AjgBGioKCFJldEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgC", | |||||
"IAEoCToCOAEaMQoPQ29udHJvbFJldEVudHJ5EgsKA2tleRgBIAEoCRINCgV2", | |||||
"YWx1ZRgCIAEoCToCOAFKBAgCEAMiOwoLR3JhZGllbnREZWYSFQoNZnVuY3Rp", | |||||
"b25fbmFtZRgBIAEoCRIVCg1ncmFkaWVudF9mdW5jGAIgASgJIkcKElJlZ2lz", | |||||
"dGVyZWRHcmFkaWVudBIVCg1ncmFkaWVudF9mdW5jGAEgASgJEhoKEnJlZ2lz", | |||||
"dGVyZWRfb3BfdHlwZRgCIAEoCUKAAQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3", | |||||
"b3JrQg5GdW5jdGlvblByb3Rvc1ABWk9naXRodWIuY29tL3RlbnNvcmZsb3cv", | |||||
"dGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL2Z1bmN0", | |||||
"aW9uX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.NodeDefReflection.Descriptor, global::Tensorflow.OpDefReflection.Descriptor, }, | new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.NodeDefReflection.Descriptor, global::Tensorflow.OpDefReflection.Descriptor, }, | ||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDefLibrary), global::Tensorflow.FunctionDefLibrary.Parser, new[]{ "Function", "Gradient" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDefLibrary), global::Tensorflow.FunctionDefLibrary.Parser, new[]{ "Function", "Gradient", "RegisteredGradients" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDef), global::Tensorflow.FunctionDef.Parser, new[]{ "Signature", "Attr", "ArgAttr", "ResourceArgUniqueId", "NodeDef", "Ret", "ControlRet" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDef.Types.ArgAttrs), global::Tensorflow.FunctionDef.Types.ArgAttrs.Parser, new[]{ "Attr" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDef), global::Tensorflow.FunctionDef.Parser, new[]{ "Signature", "Attr", "ArgAttr", "ResourceArgUniqueId", "NodeDef", "Ret", "ControlRet" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDef.Types.ArgAttrs), global::Tensorflow.FunctionDef.Types.ArgAttrs.Parser, new[]{ "Attr" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | ||||
null, null, null, null, }), | null, null, null, null, }), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GradientDef), global::Tensorflow.GradientDef.Parser, new[]{ "FunctionName", "GradientFunc" }, null, null, null, null) | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GradientDef), global::Tensorflow.GradientDef.Parser, new[]{ "FunctionName", "GradientFunc" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RegisteredGradient), global::Tensorflow.RegisteredGradient.Parser, new[]{ "GradientFunc", "RegisteredOpType" }, null, null, null, null) | |||||
})); | })); | ||||
} | } | ||||
#endregion | #endregion | ||||
@@ -97,6 +101,7 @@ namespace Tensorflow { | |||||
public FunctionDefLibrary(FunctionDefLibrary other) : this() { | public FunctionDefLibrary(FunctionDefLibrary other) : this() { | ||||
function_ = other.function_.Clone(); | function_ = other.function_.Clone(); | ||||
gradient_ = other.gradient_.Clone(); | gradient_ = other.gradient_.Clone(); | ||||
registeredGradients_ = other.registeredGradients_.Clone(); | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -125,6 +130,16 @@ namespace Tensorflow { | |||||
get { return gradient_; } | get { return gradient_; } | ||||
} | } | ||||
/// <summary>Field number for the "registered_gradients" field.</summary> | |||||
public const int RegisteredGradientsFieldNumber = 3; | |||||
private static readonly pb::FieldCodec<global::Tensorflow.RegisteredGradient> _repeated_registeredGradients_codec | |||||
= pb::FieldCodec.ForMessage(26, global::Tensorflow.RegisteredGradient.Parser); | |||||
private readonly pbc::RepeatedField<global::Tensorflow.RegisteredGradient> registeredGradients_ = new pbc::RepeatedField<global::Tensorflow.RegisteredGradient>(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public pbc::RepeatedField<global::Tensorflow.RegisteredGradient> RegisteredGradients { | |||||
get { return registeredGradients_; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as FunctionDefLibrary); | return Equals(other as FunctionDefLibrary); | ||||
@@ -140,6 +155,7 @@ namespace Tensorflow { | |||||
} | } | ||||
if(!function_.Equals(other.function_)) return false; | if(!function_.Equals(other.function_)) return false; | ||||
if(!gradient_.Equals(other.gradient_)) return false; | if(!gradient_.Equals(other.gradient_)) return false; | ||||
if(!registeredGradients_.Equals(other.registeredGradients_)) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -148,6 +164,7 @@ namespace Tensorflow { | |||||
int hash = 1; | int hash = 1; | ||||
hash ^= function_.GetHashCode(); | hash ^= function_.GetHashCode(); | ||||
hash ^= gradient_.GetHashCode(); | hash ^= gradient_.GetHashCode(); | ||||
hash ^= registeredGradients_.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -163,6 +180,7 @@ namespace Tensorflow { | |||||
public void WriteTo(pb::CodedOutputStream output) { | public void WriteTo(pb::CodedOutputStream output) { | ||||
function_.WriteTo(output, _repeated_function_codec); | function_.WriteTo(output, _repeated_function_codec); | ||||
gradient_.WriteTo(output, _repeated_gradient_codec); | gradient_.WriteTo(output, _repeated_gradient_codec); | ||||
registeredGradients_.WriteTo(output, _repeated_registeredGradients_codec); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -173,6 +191,7 @@ namespace Tensorflow { | |||||
int size = 0; | int size = 0; | ||||
size += function_.CalculateSize(_repeated_function_codec); | size += function_.CalculateSize(_repeated_function_codec); | ||||
size += gradient_.CalculateSize(_repeated_gradient_codec); | size += gradient_.CalculateSize(_repeated_gradient_codec); | ||||
size += registeredGradients_.CalculateSize(_repeated_registeredGradients_codec); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -186,6 +205,7 @@ namespace Tensorflow { | |||||
} | } | ||||
function_.Add(other.function_); | function_.Add(other.function_); | ||||
gradient_.Add(other.gradient_); | gradient_.Add(other.gradient_); | ||||
registeredGradients_.Add(other.registeredGradients_); | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -205,6 +225,10 @@ namespace Tensorflow { | |||||
gradient_.AddEntriesFrom(input, _repeated_gradient_codec); | gradient_.AddEntriesFrom(input, _repeated_gradient_codec); | ||||
break; | break; | ||||
} | } | ||||
case 26: { | |||||
registeredGradients_.AddEntriesFrom(input, _repeated_registeredGradients_codec); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -820,6 +844,175 @@ namespace Tensorflow { | |||||
} | } | ||||
/// <summary> | |||||
/// RegisteredGradient stores a gradient function that is registered in the | |||||
/// gradients library and used in the ops of a function in the function library. | |||||
/// Unlike GradientDef, these gradients are identified by op type, and not | |||||
/// directly linked to any function. | |||||
/// </summary> | |||||
public sealed partial class RegisteredGradient : pb::IMessage<RegisteredGradient> { | |||||
private static readonly pb::MessageParser<RegisteredGradient> _parser = new pb::MessageParser<RegisteredGradient>(() => new RegisteredGradient()); | |||||
private pb::UnknownFieldSet _unknownFields; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pb::MessageParser<RegisteredGradient> Parser { get { return _parser; } } | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pbr::MessageDescriptor Descriptor { | |||||
get { return global::Tensorflow.FunctionReflection.Descriptor.MessageTypes[3]; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
get { return Descriptor; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public RegisteredGradient() { | |||||
OnConstruction(); | |||||
} | |||||
partial void OnConstruction(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public RegisteredGradient(RegisteredGradient other) : this() { | |||||
gradientFunc_ = other.gradientFunc_; | |||||
registeredOpType_ = other.registeredOpType_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public RegisteredGradient Clone() { | |||||
return new RegisteredGradient(this); | |||||
} | |||||
/// <summary>Field number for the "gradient_func" field.</summary> | |||||
public const int GradientFuncFieldNumber = 1; | |||||
private string gradientFunc_ = ""; | |||||
/// <summary> | |||||
/// The gradient function's name. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string GradientFunc { | |||||
get { return gradientFunc_; } | |||||
set { | |||||
gradientFunc_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
/// <summary>Field number for the "registered_op_type" field.</summary> | |||||
public const int RegisteredOpTypeFieldNumber = 2; | |||||
private string registeredOpType_ = ""; | |||||
/// <summary> | |||||
/// The gradient function's registered op type. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string RegisteredOpType { | |||||
get { return registeredOpType_; } | |||||
set { | |||||
registeredOpType_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override bool Equals(object other) { | |||||
return Equals(other as RegisteredGradient); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool Equals(RegisteredGradient other) { | |||||
if (ReferenceEquals(other, null)) { | |||||
return false; | |||||
} | |||||
if (ReferenceEquals(other, this)) { | |||||
return true; | |||||
} | |||||
if (GradientFunc != other.GradientFunc) return false; | |||||
if (RegisteredOpType != other.RegisteredOpType) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override int GetHashCode() { | |||||
int hash = 1; | |||||
if (GradientFunc.Length != 0) hash ^= GradientFunc.GetHashCode(); | |||||
if (RegisteredOpType.Length != 0) hash ^= RegisteredOpType.GetHashCode(); | |||||
if (_unknownFields != null) { | |||||
hash ^= _unknownFields.GetHashCode(); | |||||
} | |||||
return hash; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override string ToString() { | |||||
return pb::JsonFormatter.ToDiagnosticString(this); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void WriteTo(pb::CodedOutputStream output) { | |||||
if (GradientFunc.Length != 0) { | |||||
output.WriteRawTag(10); | |||||
output.WriteString(GradientFunc); | |||||
} | |||||
if (RegisteredOpType.Length != 0) { | |||||
output.WriteRawTag(18); | |||||
output.WriteString(RegisteredOpType); | |||||
} | |||||
if (_unknownFields != null) { | |||||
_unknownFields.WriteTo(output); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int CalculateSize() { | |||||
int size = 0; | |||||
if (GradientFunc.Length != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(GradientFunc); | |||||
} | |||||
if (RegisteredOpType.Length != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(RegisteredOpType); | |||||
} | |||||
if (_unknownFields != null) { | |||||
size += _unknownFields.CalculateSize(); | |||||
} | |||||
return size; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(RegisteredGradient other) { | |||||
if (other == null) { | |||||
return; | |||||
} | |||||
if (other.GradientFunc.Length != 0) { | |||||
GradientFunc = other.GradientFunc; | |||||
} | |||||
if (other.RegisteredOpType.Length != 0) { | |||||
RegisteredOpType = other.RegisteredOpType; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(pb::CodedInputStream input) { | |||||
uint tag; | |||||
while ((tag = input.ReadTag()) != 0) { | |||||
switch(tag) { | |||||
default: | |||||
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
break; | |||||
case 10: { | |||||
GradientFunc = input.ReadString(); | |||||
break; | |||||
} | |||||
case 18: { | |||||
RegisteredOpType = input.ReadString(); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endregion | #endregion | ||||
} | } | ||||
@@ -24,6 +24,7 @@ protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/kernel_def. | |||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/log_memory.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/log_memory.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor_slice.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/tensor_slice.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/summary.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/summary.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/full_type.proto | |||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/op_def.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/op_def.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/saver.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/saver.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/saved_object_graph.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/saved_object_graph.proto | ||||
@@ -39,6 +40,7 @@ protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/trackable_ob | |||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/struct.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/struct.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/verifier_config.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/protobuf/verifier_config.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/util/event.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/util/event.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/util/memmapped_file_system.proto | |||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/training/checkpoint_state.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/training/checkpoint_state.proto | ||||
protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/framework/cpp_shape_inference.proto | protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/framework/cpp_shape_inference.proto | ||||
@@ -0,0 +1,360 @@ | |||||
// <auto-generated> | |||||
// Generated by the protocol buffer compiler. DO NOT EDIT! | |||||
// source: tensorflow/core/util/memmapped_file_system.proto | |||||
// </auto-generated> | |||||
#pragma warning disable 1591, 0612, 3021 | |||||
#region Designer generated code | |||||
using pb = global::Google.Protobuf; | |||||
using pbc = global::Google.Protobuf.Collections; | |||||
using pbr = global::Google.Protobuf.Reflection; | |||||
using scg = global::System.Collections.Generic; | |||||
namespace Tensorflow { | |||||
/// <summary>Holder for reflection information generated from tensorflow/core/util/memmapped_file_system.proto</summary> | |||||
public static partial class MemmappedFileSystemReflection { | |||||
#region Descriptor | |||||
/// <summary>File descriptor for tensorflow/core/util/memmapped_file_system.proto</summary> | |||||
public static pbr::FileDescriptor Descriptor { | |||||
get { return descriptor; } | |||||
} | |||||
private static pbr::FileDescriptor descriptor; | |||||
static MemmappedFileSystemReflection() { | |||||
byte[] descriptorData = global::System.Convert.FromBase64String( | |||||
string.Concat( | |||||
"CjB0ZW5zb3JmbG93L2NvcmUvdXRpbC9tZW1tYXBwZWRfZmlsZV9zeXN0ZW0u", | |||||
"cHJvdG8SCnRlbnNvcmZsb3ciUwojTWVtbWFwcGVkRmlsZVN5c3RlbURpcmVj", | |||||
"dG9yeUVsZW1lbnQSDgoGb2Zmc2V0GAEgASgEEgwKBG5hbWUYAiABKAkSDgoG", | |||||
"bGVuZ3RoGAMgASgEImAKHE1lbW1hcHBlZEZpbGVTeXN0ZW1EaXJlY3RvcnkS", | |||||
"QAoHZWxlbWVudBgBIAMoCzIvLnRlbnNvcmZsb3cuTWVtbWFwcGVkRmlsZVN5", | |||||
"c3RlbURpcmVjdG9yeUVsZW1lbnRCA/gBAWIGcHJvdG8z")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | |||||
new pbr::FileDescriptor[] { }, | |||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MemmappedFileSystemDirectoryElement), global::Tensorflow.MemmappedFileSystemDirectoryElement.Parser, new[]{ "Offset", "Name", "Length" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MemmappedFileSystemDirectory), global::Tensorflow.MemmappedFileSystemDirectory.Parser, new[]{ "Element" }, null, null, null, null) | |||||
})); | |||||
} | |||||
#endregion | |||||
} | |||||
#region Messages | |||||
/// <summary> | |||||
/// A message that describes one region of memmapped file. | |||||
/// </summary> | |||||
public sealed partial class MemmappedFileSystemDirectoryElement : pb::IMessage<MemmappedFileSystemDirectoryElement> { | |||||
private static readonly pb::MessageParser<MemmappedFileSystemDirectoryElement> _parser = new pb::MessageParser<MemmappedFileSystemDirectoryElement>(() => new MemmappedFileSystemDirectoryElement()); | |||||
private pb::UnknownFieldSet _unknownFields; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pb::MessageParser<MemmappedFileSystemDirectoryElement> Parser { get { return _parser; } } | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pbr::MessageDescriptor Descriptor { | |||||
get { return global::Tensorflow.MemmappedFileSystemReflection.Descriptor.MessageTypes[0]; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
get { return Descriptor; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectoryElement() { | |||||
OnConstruction(); | |||||
} | |||||
partial void OnConstruction(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectoryElement(MemmappedFileSystemDirectoryElement other) : this() { | |||||
offset_ = other.offset_; | |||||
name_ = other.name_; | |||||
length_ = other.length_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectoryElement Clone() { | |||||
return new MemmappedFileSystemDirectoryElement(this); | |||||
} | |||||
/// <summary>Field number for the "offset" field.</summary> | |||||
public const int OffsetFieldNumber = 1; | |||||
private ulong offset_; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public ulong Offset { | |||||
get { return offset_; } | |||||
set { | |||||
offset_ = value; | |||||
} | |||||
} | |||||
/// <summary>Field number for the "name" field.</summary> | |||||
public const int NameFieldNumber = 2; | |||||
private string name_ = ""; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string Name { | |||||
get { return name_; } | |||||
set { | |||||
name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
/// <summary>Field number for the "length" field.</summary> | |||||
public const int LengthFieldNumber = 3; | |||||
private ulong length_; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public ulong Length { | |||||
get { return length_; } | |||||
set { | |||||
length_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override bool Equals(object other) { | |||||
return Equals(other as MemmappedFileSystemDirectoryElement); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool Equals(MemmappedFileSystemDirectoryElement other) { | |||||
if (ReferenceEquals(other, null)) { | |||||
return false; | |||||
} | |||||
if (ReferenceEquals(other, this)) { | |||||
return true; | |||||
} | |||||
if (Offset != other.Offset) return false; | |||||
if (Name != other.Name) return false; | |||||
if (Length != other.Length) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override int GetHashCode() { | |||||
int hash = 1; | |||||
if (Offset != 0UL) hash ^= Offset.GetHashCode(); | |||||
if (Name.Length != 0) hash ^= Name.GetHashCode(); | |||||
if (Length != 0UL) hash ^= Length.GetHashCode(); | |||||
if (_unknownFields != null) { | |||||
hash ^= _unknownFields.GetHashCode(); | |||||
} | |||||
return hash; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override string ToString() { | |||||
return pb::JsonFormatter.ToDiagnosticString(this); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void WriteTo(pb::CodedOutputStream output) { | |||||
if (Offset != 0UL) { | |||||
output.WriteRawTag(8); | |||||
output.WriteUInt64(Offset); | |||||
} | |||||
if (Name.Length != 0) { | |||||
output.WriteRawTag(18); | |||||
output.WriteString(Name); | |||||
} | |||||
if (Length != 0UL) { | |||||
output.WriteRawTag(24); | |||||
output.WriteUInt64(Length); | |||||
} | |||||
if (_unknownFields != null) { | |||||
_unknownFields.WriteTo(output); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int CalculateSize() { | |||||
int size = 0; | |||||
if (Offset != 0UL) { | |||||
size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Offset); | |||||
} | |||||
if (Name.Length != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); | |||||
} | |||||
if (Length != 0UL) { | |||||
size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Length); | |||||
} | |||||
if (_unknownFields != null) { | |||||
size += _unknownFields.CalculateSize(); | |||||
} | |||||
return size; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(MemmappedFileSystemDirectoryElement other) { | |||||
if (other == null) { | |||||
return; | |||||
} | |||||
if (other.Offset != 0UL) { | |||||
Offset = other.Offset; | |||||
} | |||||
if (other.Name.Length != 0) { | |||||
Name = other.Name; | |||||
} | |||||
if (other.Length != 0UL) { | |||||
Length = other.Length; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(pb::CodedInputStream input) { | |||||
uint tag; | |||||
while ((tag = input.ReadTag()) != 0) { | |||||
switch(tag) { | |||||
default: | |||||
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
break; | |||||
case 8: { | |||||
Offset = input.ReadUInt64(); | |||||
break; | |||||
} | |||||
case 18: { | |||||
Name = input.ReadString(); | |||||
break; | |||||
} | |||||
case 24: { | |||||
Length = input.ReadUInt64(); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | |||||
/// A directory of regions in a memmapped file. | |||||
/// </summary> | |||||
public sealed partial class MemmappedFileSystemDirectory : pb::IMessage<MemmappedFileSystemDirectory> { | |||||
private static readonly pb::MessageParser<MemmappedFileSystemDirectory> _parser = new pb::MessageParser<MemmappedFileSystemDirectory>(() => new MemmappedFileSystemDirectory()); | |||||
private pb::UnknownFieldSet _unknownFields; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pb::MessageParser<MemmappedFileSystemDirectory> Parser { get { return _parser; } } | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pbr::MessageDescriptor Descriptor { | |||||
get { return global::Tensorflow.MemmappedFileSystemReflection.Descriptor.MessageTypes[1]; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
get { return Descriptor; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectory() { | |||||
OnConstruction(); | |||||
} | |||||
partial void OnConstruction(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectory(MemmappedFileSystemDirectory other) : this() { | |||||
element_ = other.element_.Clone(); | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public MemmappedFileSystemDirectory Clone() { | |||||
return new MemmappedFileSystemDirectory(this); | |||||
} | |||||
/// <summary>Field number for the "element" field.</summary> | |||||
public const int ElementFieldNumber = 1; | |||||
private static readonly pb::FieldCodec<global::Tensorflow.MemmappedFileSystemDirectoryElement> _repeated_element_codec | |||||
= pb::FieldCodec.ForMessage(10, global::Tensorflow.MemmappedFileSystemDirectoryElement.Parser); | |||||
private readonly pbc::RepeatedField<global::Tensorflow.MemmappedFileSystemDirectoryElement> element_ = new pbc::RepeatedField<global::Tensorflow.MemmappedFileSystemDirectoryElement>(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public pbc::RepeatedField<global::Tensorflow.MemmappedFileSystemDirectoryElement> Element { | |||||
get { return element_; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override bool Equals(object other) { | |||||
return Equals(other as MemmappedFileSystemDirectory); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool Equals(MemmappedFileSystemDirectory other) { | |||||
if (ReferenceEquals(other, null)) { | |||||
return false; | |||||
} | |||||
if (ReferenceEquals(other, this)) { | |||||
return true; | |||||
} | |||||
if(!element_.Equals(other.element_)) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override int GetHashCode() { | |||||
int hash = 1; | |||||
hash ^= element_.GetHashCode(); | |||||
if (_unknownFields != null) { | |||||
hash ^= _unknownFields.GetHashCode(); | |||||
} | |||||
return hash; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override string ToString() { | |||||
return pb::JsonFormatter.ToDiagnosticString(this); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void WriteTo(pb::CodedOutputStream output) { | |||||
element_.WriteTo(output, _repeated_element_codec); | |||||
if (_unknownFields != null) { | |||||
_unknownFields.WriteTo(output); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int CalculateSize() { | |||||
int size = 0; | |||||
size += element_.CalculateSize(_repeated_element_codec); | |||||
if (_unknownFields != null) { | |||||
size += _unknownFields.CalculateSize(); | |||||
} | |||||
return size; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(MemmappedFileSystemDirectory other) { | |||||
if (other == null) { | |||||
return; | |||||
} | |||||
element_.Add(other.element_); | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(pb::CodedInputStream input) { | |||||
uint tag; | |||||
while ((tag = input.ReadTag()) != 0) { | |||||
switch(tag) { | |||||
default: | |||||
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
break; | |||||
case 10: { | |||||
element_.AddEntriesFrom(input, _repeated_element_codec); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
#endregion | |||||
} | |||||
#endregion Designer generated code |
@@ -26,35 +26,38 @@ namespace Tensorflow { | |||||
string.Concat( | string.Concat( | ||||
"CiZ0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL29wX2RlZi5wcm90bxIKdGVu", | "CiZ0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL29wX2RlZi5wcm90bxIKdGVu", | ||||
"c29yZmxvdxoqdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9hdHRyX3ZhbHVl", | "c29yZmxvdxoqdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9hdHRyX3ZhbHVl", | ||||
"LnByb3RvGiV0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3R5cGVzLnByb3Rv", | |||||
"Gi90ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3Jlc291cmNlX2hhbmRsZS5w", | |||||
"cm90byKUBgoFT3BEZWYSDAoEbmFtZRgBIAEoCRIrCglpbnB1dF9hcmcYAiAD", | |||||
"KAsyGC50ZW5zb3JmbG93Lk9wRGVmLkFyZ0RlZhIsCgpvdXRwdXRfYXJnGAMg", | |||||
"AygLMhgudGVuc29yZmxvdy5PcERlZi5BcmdEZWYSFgoOY29udHJvbF9vdXRw", | |||||
"dXQYFCADKAkSJwoEYXR0chgEIAMoCzIZLnRlbnNvcmZsb3cuT3BEZWYuQXR0", | |||||
"ckRlZhIuCgtkZXByZWNhdGlvbhgIIAEoCzIZLnRlbnNvcmZsb3cuT3BEZXBy", | |||||
"ZWNhdGlvbhIPCgdzdW1tYXJ5GAUgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJ", | |||||
"EhYKDmlzX2NvbW11dGF0aXZlGBIgASgIEhQKDGlzX2FnZ3JlZ2F0ZRgQIAEo", | |||||
"CBITCgtpc19zdGF0ZWZ1bBgRIAEoCBIiChphbGxvd3NfdW5pbml0aWFsaXpl", | |||||
"ZF9pbnB1dBgTIAEoCBrjAQoGQXJnRGVmEgwKBG5hbWUYASABKAkSEwoLZGVz", | |||||
"Y3JpcHRpb24YAiABKAkSIgoEdHlwZRgDIAEoDjIULnRlbnNvcmZsb3cuRGF0", | |||||
"YVR5cGUSEQoJdHlwZV9hdHRyGAQgASgJEhMKC251bWJlcl9hdHRyGAUgASgJ", | |||||
"EhYKDnR5cGVfbGlzdF9hdHRyGAYgASgJEkIKC2hhbmRsZV9kYXRhGAcgAygL", | |||||
"Mi0udGVuc29yZmxvdy5SZXNvdXJjZUhhbmRsZVByb3RvLkR0eXBlQW5kU2hh", | |||||
"cGUSDgoGaXNfcmVmGBAgASgIGr0BCgdBdHRyRGVmEgwKBG5hbWUYASABKAkS", | |||||
"DAoEdHlwZRgCIAEoCRIsCg1kZWZhdWx0X3ZhbHVlGAMgASgLMhUudGVuc29y", | |||||
"Zmxvdy5BdHRyVmFsdWUSEwoLZGVzY3JpcHRpb24YBCABKAkSEwoLaGFzX21p", | |||||
"bmltdW0YBSABKAgSDwoHbWluaW11bRgGIAEoAxItCg5hbGxvd2VkX3ZhbHVl", | |||||
"cxgHIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlIjUKDU9wRGVwcmVjYXRp", | |||||
"b24SDwoHdmVyc2lvbhgBIAEoBRITCgtleHBsYW5hdGlvbhgCIAEoCSInCgZP", | |||||
"cExpc3QSHQoCb3AYASADKAsyES50ZW5zb3JmbG93Lk9wRGVmQnsKGG9yZy50", | |||||
"ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQcm90b3NQAVpNZ2l0aHViLmNv", | |||||
"bS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2Zy", | |||||
"YW1ld29yay9vcF9kZWZfZ29fcHJvdG/4AQFiBnByb3RvMw==")); | |||||
"LnByb3RvGil0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2Z1bGxfdHlwZS5w", | |||||
"cm90bxovdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9yZXNvdXJjZV9oYW5k", | |||||
"bGUucHJvdG8aJXRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvdHlwZXMucHJv", | |||||
"dG8i8wYKBU9wRGVmEgwKBG5hbWUYASABKAkSKwoJaW5wdXRfYXJnGAIgAygL", | |||||
"MhgudGVuc29yZmxvdy5PcERlZi5BcmdEZWYSLAoKb3V0cHV0X2FyZxgDIAMo", | |||||
"CzIYLnRlbnNvcmZsb3cuT3BEZWYuQXJnRGVmEhYKDmNvbnRyb2xfb3V0cHV0", | |||||
"GBQgAygJEicKBGF0dHIYBCADKAsyGS50ZW5zb3JmbG93Lk9wRGVmLkF0dHJE", | |||||
"ZWYSLgoLZGVwcmVjYXRpb24YCCABKAsyGS50ZW5zb3JmbG93Lk9wRGVwcmVj", | |||||
"YXRpb24SDwoHc3VtbWFyeRgFIAEoCRITCgtkZXNjcmlwdGlvbhgGIAEoCRIW", | |||||
"Cg5pc19jb21tdXRhdGl2ZRgSIAEoCBIUCgxpc19hZ2dyZWdhdGUYECABKAgS", | |||||
"EwoLaXNfc3RhdGVmdWwYESABKAgSIgoaYWxsb3dzX3VuaW5pdGlhbGl6ZWRf", | |||||
"aW5wdXQYEyABKAgSJAocaXNfZGlzdHJpYnV0ZWRfY29tbXVuaWNhdGlvbhgV", | |||||
"IAEoCBqcAgoGQXJnRGVmEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24Y", | |||||
"AiABKAkSIgoEdHlwZRgDIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUSEQoJ", | |||||
"dHlwZV9hdHRyGAQgASgJEhMKC251bWJlcl9hdHRyGAUgASgJEhYKDnR5cGVf", | |||||
"bGlzdF9hdHRyGAYgASgJEkIKC2hhbmRsZV9kYXRhGAcgAygLMi0udGVuc29y", | |||||
"Zmxvdy5SZXNvdXJjZUhhbmRsZVByb3RvLkR0eXBlQW5kU2hhcGUSDgoGaXNf", | |||||
"cmVmGBAgASgIEjcKFmV4cGVyaW1lbnRhbF9mdWxsX3R5cGUYESABKAsyFy50", | |||||
"ZW5zb3JmbG93LkZ1bGxUeXBlRGVmGr0BCgdBdHRyRGVmEgwKBG5hbWUYASAB", | |||||
"KAkSDAoEdHlwZRgCIAEoCRIsCg1kZWZhdWx0X3ZhbHVlGAMgASgLMhUudGVu", | |||||
"c29yZmxvdy5BdHRyVmFsdWUSEwoLZGVzY3JpcHRpb24YBCABKAkSEwoLaGFz", | |||||
"X21pbmltdW0YBSABKAgSDwoHbWluaW11bRgGIAEoAxItCg5hbGxvd2VkX3Zh", | |||||
"bHVlcxgHIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlIjUKDU9wRGVwcmVj", | |||||
"YXRpb24SDwoHdmVyc2lvbhgBIAEoBRITCgtleHBsYW5hdGlvbhgCIAEoCSIn", | |||||
"CgZPcExpc3QSHQoCb3AYASADKAsyES50ZW5zb3JmbG93Lk9wRGVmQnsKGG9y", | |||||
"Zy50ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQcm90b3NQAVpNZ2l0aHVi", | |||||
"LmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3Jl", | |||||
"L2ZyYW1ld29yay9vcF9kZWZfZ29fcHJvdG/4AQFiBnByb3RvMw==")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.ResourceHandleReflection.Descriptor, }, | |||||
new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.FullTypeReflection.Descriptor, global::Tensorflow.ResourceHandleReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, | |||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef), global::Tensorflow.OpDef.Parser, new[]{ "Name", "InputArg", "OutputArg", "ControlOutput", "Attr", "Deprecation", "Summary", "Description", "IsCommutative", "IsAggregate", "IsStateful", "AllowsUninitializedInput" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.ArgDef), global::Tensorflow.OpDef.Types.ArgDef.Parser, new[]{ "Name", "Description", "Type", "TypeAttr", "NumberAttr", "TypeListAttr", "HandleData", "IsRef" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef), global::Tensorflow.OpDef.Parser, new[]{ "Name", "InputArg", "OutputArg", "ControlOutput", "Attr", "Deprecation", "Summary", "Description", "IsCommutative", "IsAggregate", "IsStateful", "AllowsUninitializedInput", "IsDistributedCommunication" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.ArgDef), global::Tensorflow.OpDef.Types.ArgDef.Parser, new[]{ "Name", "Description", "Type", "TypeAttr", "NumberAttr", "TypeListAttr", "HandleData", "IsRef", "ExperimentalFullType" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.AttrDef), global::Tensorflow.OpDef.Types.AttrDef.Parser, new[]{ "Name", "Type", "DefaultValue", "Description", "HasMinimum", "Minimum", "AllowedValues" }, null, null, null, null)}), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.AttrDef), global::Tensorflow.OpDef.Types.AttrDef.Parser, new[]{ "Name", "Type", "DefaultValue", "Description", "HasMinimum", "Minimum", "AllowedValues" }, null, null, null, null)}), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDeprecation), global::Tensorflow.OpDeprecation.Parser, new[]{ "Version", "Explanation" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDeprecation), global::Tensorflow.OpDeprecation.Parser, new[]{ "Version", "Explanation" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpList), global::Tensorflow.OpList.Parser, new[]{ "Op" }, null, null, null, null) | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpList), global::Tensorflow.OpList.Parser, new[]{ "Op" }, null, null, null, null) | ||||
@@ -106,6 +109,7 @@ namespace Tensorflow { | |||||
isAggregate_ = other.isAggregate_; | isAggregate_ = other.isAggregate_; | ||||
isStateful_ = other.isStateful_; | isStateful_ = other.isStateful_; | ||||
allowsUninitializedInput_ = other.allowsUninitializedInput_; | allowsUninitializedInput_ = other.allowsUninitializedInput_; | ||||
isDistributedCommunication_ = other.isDistributedCommunication_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -297,6 +301,22 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "is_distributed_communication" field.</summary> | |||||
public const int IsDistributedCommunicationFieldNumber = 21; | |||||
private bool isDistributedCommunication_; | |||||
/// <summary> | |||||
/// Indicates whether the op implementation uses distributed communication. | |||||
/// If True, the op is allowed to return errors for network disconnection and | |||||
/// trigger TF network failure handling logics. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool IsDistributedCommunication { | |||||
get { return isDistributedCommunication_; } | |||||
set { | |||||
isDistributedCommunication_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as OpDef); | return Equals(other as OpDef); | ||||
@@ -322,6 +342,7 @@ namespace Tensorflow { | |||||
if (IsAggregate != other.IsAggregate) return false; | if (IsAggregate != other.IsAggregate) return false; | ||||
if (IsStateful != other.IsStateful) return false; | if (IsStateful != other.IsStateful) return false; | ||||
if (AllowsUninitializedInput != other.AllowsUninitializedInput) return false; | if (AllowsUninitializedInput != other.AllowsUninitializedInput) return false; | ||||
if (IsDistributedCommunication != other.IsDistributedCommunication) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -340,6 +361,7 @@ namespace Tensorflow { | |||||
if (IsAggregate != false) hash ^= IsAggregate.GetHashCode(); | if (IsAggregate != false) hash ^= IsAggregate.GetHashCode(); | ||||
if (IsStateful != false) hash ^= IsStateful.GetHashCode(); | if (IsStateful != false) hash ^= IsStateful.GetHashCode(); | ||||
if (AllowsUninitializedInput != false) hash ^= AllowsUninitializedInput.GetHashCode(); | if (AllowsUninitializedInput != false) hash ^= AllowsUninitializedInput.GetHashCode(); | ||||
if (IsDistributedCommunication != false) hash ^= IsDistributedCommunication.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -389,6 +411,10 @@ namespace Tensorflow { | |||||
output.WriteBool(AllowsUninitializedInput); | output.WriteBool(AllowsUninitializedInput); | ||||
} | } | ||||
controlOutput_.WriteTo(output, _repeated_controlOutput_codec); | controlOutput_.WriteTo(output, _repeated_controlOutput_codec); | ||||
if (IsDistributedCommunication != false) { | |||||
output.WriteRawTag(168, 1); | |||||
output.WriteBool(IsDistributedCommunication); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -425,6 +451,9 @@ namespace Tensorflow { | |||||
if (AllowsUninitializedInput != false) { | if (AllowsUninitializedInput != false) { | ||||
size += 2 + 1; | size += 2 + 1; | ||||
} | } | ||||
if (IsDistributedCommunication != false) { | |||||
size += 2 + 1; | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -467,6 +496,9 @@ namespace Tensorflow { | |||||
if (other.AllowsUninitializedInput != false) { | if (other.AllowsUninitializedInput != false) { | ||||
AllowsUninitializedInput = other.AllowsUninitializedInput; | AllowsUninitializedInput = other.AllowsUninitializedInput; | ||||
} | } | ||||
if (other.IsDistributedCommunication != false) { | |||||
IsDistributedCommunication = other.IsDistributedCommunication; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -529,6 +561,10 @@ namespace Tensorflow { | |||||
controlOutput_.AddEntriesFrom(input, _repeated_controlOutput_codec); | controlOutput_.AddEntriesFrom(input, _repeated_controlOutput_codec); | ||||
break; | break; | ||||
} | } | ||||
case 168: { | |||||
IsDistributedCommunication = input.ReadBool(); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -573,6 +609,7 @@ namespace Tensorflow { | |||||
typeListAttr_ = other.typeListAttr_; | typeListAttr_ = other.typeListAttr_; | ||||
handleData_ = other.handleData_.Clone(); | handleData_ = other.handleData_.Clone(); | ||||
isRef_ = other.isRef_; | isRef_ = other.isRef_; | ||||
experimentalFullType_ = other.experimentalFullType_ != null ? other.experimentalFullType_.Clone() : null; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
} | } | ||||
@@ -704,6 +741,28 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "experimental_full_type" field.</summary> | |||||
public const int ExperimentalFullTypeFieldNumber = 17; | |||||
private global::Tensorflow.FullTypeDef experimentalFullType_; | |||||
/// <summary> | |||||
/// Experimental. Full type declaration for this argument. | |||||
/// The full type specification combines type, type_attr, type_list_attr, | |||||
/// etc. into a unified representation. | |||||
/// This declaration may contain non-concrete types (for example, | |||||
/// Tensor<TypeVar<'T'>> is a valid type declaration. | |||||
/// | |||||
/// Note: this is a transient field. The long-term aim is to represent the | |||||
/// entire OpDef as a single type: a callable. In that context, this field is | |||||
/// just the type of a single argument. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public global::Tensorflow.FullTypeDef ExperimentalFullType { | |||||
get { return experimentalFullType_; } | |||||
set { | |||||
experimentalFullType_ = value; | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public override bool Equals(object other) { | public override bool Equals(object other) { | ||||
return Equals(other as ArgDef); | return Equals(other as ArgDef); | ||||
@@ -725,6 +784,7 @@ namespace Tensorflow { | |||||
if (TypeListAttr != other.TypeListAttr) return false; | if (TypeListAttr != other.TypeListAttr) return false; | ||||
if(!handleData_.Equals(other.handleData_)) return false; | if(!handleData_.Equals(other.handleData_)) return false; | ||||
if (IsRef != other.IsRef) return false; | if (IsRef != other.IsRef) return false; | ||||
if (!object.Equals(ExperimentalFullType, other.ExperimentalFullType)) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -739,6 +799,7 @@ namespace Tensorflow { | |||||
if (TypeListAttr.Length != 0) hash ^= TypeListAttr.GetHashCode(); | if (TypeListAttr.Length != 0) hash ^= TypeListAttr.GetHashCode(); | ||||
hash ^= handleData_.GetHashCode(); | hash ^= handleData_.GetHashCode(); | ||||
if (IsRef != false) hash ^= IsRef.GetHashCode(); | if (IsRef != false) hash ^= IsRef.GetHashCode(); | ||||
if (experimentalFullType_ != null) hash ^= ExperimentalFullType.GetHashCode(); | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
hash ^= _unknownFields.GetHashCode(); | hash ^= _unknownFields.GetHashCode(); | ||||
} | } | ||||
@@ -781,6 +842,10 @@ namespace Tensorflow { | |||||
output.WriteRawTag(128, 1); | output.WriteRawTag(128, 1); | ||||
output.WriteBool(IsRef); | output.WriteBool(IsRef); | ||||
} | } | ||||
if (experimentalFullType_ != null) { | |||||
output.WriteRawTag(138, 1); | |||||
output.WriteMessage(ExperimentalFullType); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -811,6 +876,9 @@ namespace Tensorflow { | |||||
if (IsRef != false) { | if (IsRef != false) { | ||||
size += 2 + 1; | size += 2 + 1; | ||||
} | } | ||||
if (experimentalFullType_ != null) { | |||||
size += 2 + pb::CodedOutputStream.ComputeMessageSize(ExperimentalFullType); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
} | } | ||||
@@ -844,6 +912,12 @@ namespace Tensorflow { | |||||
if (other.IsRef != false) { | if (other.IsRef != false) { | ||||
IsRef = other.IsRef; | IsRef = other.IsRef; | ||||
} | } | ||||
if (other.experimentalFullType_ != null) { | |||||
if (experimentalFullType_ == null) { | |||||
ExperimentalFullType = new global::Tensorflow.FullTypeDef(); | |||||
} | |||||
ExperimentalFullType.MergeFrom(other.ExperimentalFullType); | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
} | } | ||||
@@ -887,6 +961,13 @@ namespace Tensorflow { | |||||
IsRef = input.ReadBool(); | IsRef = input.ReadBool(); | ||||
break; | break; | ||||
} | } | ||||
case 138: { | |||||
if (experimentalFullType_ == null) { | |||||
ExperimentalFullType = new global::Tensorflow.FullTypeDef(); | |||||
} | |||||
input.ReadMessage(ExperimentalFullType); | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -842,8 +842,8 @@ namespace Tensorflow { | |||||
private long metaOptimizerTimeoutMs_; | private long metaOptimizerTimeoutMs_; | ||||
/// <summary> | /// <summary> | ||||
/// Maximum number of milliseconds to spend optimizing a single graph before | /// Maximum number of milliseconds to spend optimizing a single graph before | ||||
/// timing out. If equal to 0 the system picks a default (currently 5 minutes). | |||||
/// If less than 0 the optimizer will never time out. | |||||
/// timing out. If less than or equal to 0 (default value) the optimizer will | |||||
/// never time out. | |||||
/// </summary> | /// </summary> | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public long MetaOptimizerTimeoutMs { | public long MetaOptimizerTimeoutMs { | ||||
@@ -36,7 +36,7 @@ namespace Tensorflow { | |||||
"aW9ucxgCIAMoCzIzLnRlbnNvcmZsb3cuU2F2ZWRPYmplY3RHcmFwaC5Db25j", | "aW9ucxgCIAMoCzIzLnRlbnNvcmZsb3cuU2F2ZWRPYmplY3RHcmFwaC5Db25j", | ||||
"cmV0ZUZ1bmN0aW9uc0VudHJ5GlsKFkNvbmNyZXRlRnVuY3Rpb25zRW50cnkS", | "cmV0ZUZ1bmN0aW9uc0VudHJ5GlsKFkNvbmNyZXRlRnVuY3Rpb25zRW50cnkS", | ||||
"CwoDa2V5GAEgASgJEjAKBXZhbHVlGAIgASgLMiEudGVuc29yZmxvdy5TYXZl", | "CwoDa2V5GAEgASgJEjAKBXZhbHVlGAIgASgLMiEudGVuc29yZmxvdy5TYXZl", | ||||
"ZENvbmNyZXRlRnVuY3Rpb246AjgBItkFCgtTYXZlZE9iamVjdBJSCghjaGls", | |||||
"ZENvbmNyZXRlRnVuY3Rpb246AjgBIpAGCgtTYXZlZE9iamVjdBJSCghjaGls", | |||||
"ZHJlbhgBIAMoCzJALnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", | "ZHJlbhgBIAMoCzJALnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", | ||||
"VHJhY2thYmxlT2JqZWN0Lk9iamVjdFJlZmVyZW5jZRJeCg5zbG90X3Zhcmlh", | "VHJhY2thYmxlT2JqZWN0Lk9iamVjdFJlZmVyZW5jZRJeCg5zbG90X3Zhcmlh", | ||||
"YmxlcxgDIAMoCzJGLnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", | "YmxlcxgDIAMoCzJGLnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", | ||||
@@ -48,51 +48,54 @@ namespace Tensorflow { | |||||
"RwoWYmFyZV9jb25jcmV0ZV9mdW5jdGlvbhgIIAEoCzIlLnRlbnNvcmZsb3cu", | "RwoWYmFyZV9jb25jcmV0ZV9mdW5jdGlvbhgIIAEoCzIlLnRlbnNvcmZsb3cu", | ||||
"U2F2ZWRCYXJlQ29uY3JldGVGdW5jdGlvbkgAEi0KCGNvbnN0YW50GAkgASgL", | "U2F2ZWRCYXJlQ29uY3JldGVGdW5jdGlvbkgAEi0KCGNvbnN0YW50GAkgASgL", | ||||
"MhkudGVuc29yZmxvdy5TYXZlZENvbnN0YW50SAASLQoIcmVzb3VyY2UYCiAB", | "MhkudGVuc29yZmxvdy5TYXZlZENvbnN0YW50SAASLQoIcmVzb3VyY2UYCiAB", | ||||
"KAsyGS50ZW5zb3JmbG93LlNhdmVkUmVzb3VyY2VIABJGChBzYXZlYWJsZV9v", | |||||
"YmplY3RzGAsgAygLMiwudGVuc29yZmxvdy5TYXZlZE9iamVjdC5TYXZlYWJs", | |||||
"ZU9iamVjdHNFbnRyeRpSChRTYXZlYWJsZU9iamVjdHNFbnRyeRILCgNrZXkY", | |||||
"ASABKAkSKQoFdmFsdWUYAiABKAsyGi50ZW5zb3JmbG93LlNhdmVhYmxlT2Jq", | |||||
"ZWN0OgI4AUIGCgRraW5kSgQIAhADUgphdHRyaWJ1dGVzImAKD1NhdmVkVXNl", | |||||
"ck9iamVjdBISCgppZGVudGlmaWVyGAEgASgJEicKB3ZlcnNpb24YAiABKAsy", | |||||
"Fi50ZW5zb3JmbG93LlZlcnNpb25EZWYSEAoIbWV0YWRhdGEYAyABKAkiKgoK", | |||||
"U2F2ZWRBc3NldBIcChRhc3NldF9maWxlX2RlZl9pbmRleBgBIAEoBSJcCg1T", | |||||
"YXZlZEZ1bmN0aW9uEhoKEmNvbmNyZXRlX2Z1bmN0aW9ucxgBIAMoCRIvCg1m", | |||||
"dW5jdGlvbl9zcGVjGAIgASgLMhgudGVuc29yZmxvdy5GdW5jdGlvblNwZWMi", | |||||
"qAEKFVNhdmVkQ29uY3JldGVGdW5jdGlvbhIUCgxib3VuZF9pbnB1dHMYAiAD", | |||||
"KAUSQgodY2Fub25pY2FsaXplZF9pbnB1dF9zaWduYXR1cmUYAyABKAsyGy50", | |||||
"ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZRI1ChBvdXRwdXRfc2lnbmF0dXJl", | |||||
"GAQgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUirQEKGVNhdmVk", | |||||
"QmFyZUNvbmNyZXRlRnVuY3Rpb24SHgoWY29uY3JldGVfZnVuY3Rpb25fbmFt", | |||||
"ZRgBIAEoCRIZChFhcmd1bWVudF9rZXl3b3JkcxgCIAMoCRIkChxhbGxvd2Vk", | |||||
"X3Bvc2l0aW9uYWxfYXJndW1lbnRzGAMgASgDEi8KDWZ1bmN0aW9uX3NwZWMY", | |||||
"BCABKAsyGC50ZW5zb3JmbG93LkZ1bmN0aW9uU3BlYyIiCg1TYXZlZENvbnN0", | |||||
"YW50EhEKCW9wZXJhdGlvbhgBIAEoCSLXAgoNU2F2ZWRWYXJpYWJsZRIjCgVk", | |||||
"dHlwZRgBIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUSKwoFc2hhcGUYAiAB", | |||||
"KAsyHC50ZW5zb3JmbG93LlRlbnNvclNoYXBlUHJvdG8SEQoJdHJhaW5hYmxl", | |||||
"GAMgASgIEjwKD3N5bmNocm9uaXphdGlvbhgEIAEoDjIjLnRlbnNvcmZsb3cu", | |||||
"VmFyaWFibGVTeW5jaHJvbml6YXRpb24SNAoLYWdncmVnYXRpb24YBSABKA4y", | |||||
"Hy50ZW5zb3JmbG93LlZhcmlhYmxlQWdncmVnYXRpb24SDAoEbmFtZRgGIAEo", | |||||
"CRIOCgZkZXZpY2UYByABKAkSTwosZXhwZXJpbWVudGFsX2Rpc3RyaWJ1dGVk", | |||||
"X3ZhcmlhYmxlX2NvbXBvbmVudHMYCCADKAsyGS50ZW5zb3JmbG93LlNhdmVk", | |||||
"VmFyaWFibGUi+wEKDEZ1bmN0aW9uU3BlYxIwCgtmdWxsYXJnc3BlYxgBIAEo", | |||||
"CzIbLnRlbnNvcmZsb3cuU3RydWN0dXJlZFZhbHVlEhEKCWlzX21ldGhvZBgC", | |||||
"IAEoCBI0Cg9pbnB1dF9zaWduYXR1cmUYBSABKAsyGy50ZW5zb3JmbG93LlN0", | |||||
"cnVjdHVyZWRWYWx1ZRI4CgtqaXRfY29tcGlsZRgGIAEoDjIjLnRlbnNvcmZs", | |||||
"b3cuRnVuY3Rpb25TcGVjLkppdENvbXBpbGUiKgoKSml0Q29tcGlsZRILCgdE", | |||||
"RUZBVUxUEAASBgoCT04QARIHCgNPRkYQAkoECAMQBEoECAQQBSIfCg1TYXZl", | |||||
"ZFJlc291cmNlEg4KBmRldmljZRgBIAEoCSJBCg5TYXZlYWJsZU9iamVjdBIV", | |||||
"Cg1zYXZlX2Z1bmN0aW9uGAIgASgFEhgKEHJlc3RvcmVfZnVuY3Rpb24YAyAB", | |||||
"KAVCWlpVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29y", | |||||
"Zmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3JlX3Byb3Rvc19nb19wcm90", | |||||
"b/gBAWIGcHJvdG8z")); | |||||
"KAsyGS50ZW5zb3JmbG93LlNhdmVkUmVzb3VyY2VIABI1Cg9jYXB0dXJlZF90", | |||||
"ZW5zb3IYDCABKAsyGi50ZW5zb3JmbG93LkNhcHR1cmVkVGVuc29ySAASRgoQ", | |||||
"c2F2ZWFibGVfb2JqZWN0cxgLIAMoCzIsLnRlbnNvcmZsb3cuU2F2ZWRPYmpl", | |||||
"Y3QuU2F2ZWFibGVPYmplY3RzRW50cnkaUgoUU2F2ZWFibGVPYmplY3RzRW50", | |||||
"cnkSCwoDa2V5GAEgASgJEikKBXZhbHVlGAIgASgLMhoudGVuc29yZmxvdy5T", | |||||
"YXZlYWJsZU9iamVjdDoCOAFCBgoEa2luZEoECAIQA1IKYXR0cmlidXRlcyJk", | |||||
"Cg9TYXZlZFVzZXJPYmplY3QSEgoKaWRlbnRpZmllchgBIAEoCRInCgd2ZXJz", | |||||
"aW9uGAIgASgLMhYudGVuc29yZmxvdy5WZXJzaW9uRGVmEhQKCG1ldGFkYXRh", | |||||
"GAMgASgJQgIYASIqCgpTYXZlZEFzc2V0EhwKFGFzc2V0X2ZpbGVfZGVmX2lu", | |||||
"ZGV4GAEgASgFIlwKDVNhdmVkRnVuY3Rpb24SGgoSY29uY3JldGVfZnVuY3Rp", | |||||
"b25zGAEgAygJEi8KDWZ1bmN0aW9uX3NwZWMYAiABKAsyGC50ZW5zb3JmbG93", | |||||
"LkZ1bmN0aW9uU3BlYyI5Cg5DYXB0dXJlZFRlbnNvchIMCgRuYW1lGAEgASgJ", | |||||
"EhkKEWNvbmNyZXRlX2Z1bmN0aW9uGAIgASgJIqgBChVTYXZlZENvbmNyZXRl", | |||||
"RnVuY3Rpb24SFAoMYm91bmRfaW5wdXRzGAIgAygFEkIKHWNhbm9uaWNhbGl6", | |||||
"ZWRfaW5wdXRfc2lnbmF0dXJlGAMgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1", | |||||
"cmVkVmFsdWUSNQoQb3V0cHV0X3NpZ25hdHVyZRgEIAEoCzIbLnRlbnNvcmZs", | |||||
"b3cuU3RydWN0dXJlZFZhbHVlIq0BChlTYXZlZEJhcmVDb25jcmV0ZUZ1bmN0", | |||||
"aW9uEh4KFmNvbmNyZXRlX2Z1bmN0aW9uX25hbWUYASABKAkSGQoRYXJndW1l", | |||||
"bnRfa2V5d29yZHMYAiADKAkSJAocYWxsb3dlZF9wb3NpdGlvbmFsX2FyZ3Vt", | |||||
"ZW50cxgDIAEoAxIvCg1mdW5jdGlvbl9zcGVjGAQgASgLMhgudGVuc29yZmxv", | |||||
"dy5GdW5jdGlvblNwZWMiIgoNU2F2ZWRDb25zdGFudBIRCglvcGVyYXRpb24Y", | |||||
"ASABKAki1wIKDVNhdmVkVmFyaWFibGUSIwoFZHR5cGUYASABKA4yFC50ZW5z", | |||||
"b3JmbG93LkRhdGFUeXBlEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5U", | |||||
"ZW5zb3JTaGFwZVByb3RvEhEKCXRyYWluYWJsZRgDIAEoCBI8Cg9zeW5jaHJv", | |||||
"bml6YXRpb24YBCABKA4yIy50ZW5zb3JmbG93LlZhcmlhYmxlU3luY2hyb25p", | |||||
"emF0aW9uEjQKC2FnZ3JlZ2F0aW9uGAUgASgOMh8udGVuc29yZmxvdy5WYXJp", | |||||
"YWJsZUFnZ3JlZ2F0aW9uEgwKBG5hbWUYBiABKAkSDgoGZGV2aWNlGAcgASgJ", | |||||
"Ek8KLGV4cGVyaW1lbnRhbF9kaXN0cmlidXRlZF92YXJpYWJsZV9jb21wb25l", | |||||
"bnRzGAggAygLMhkudGVuc29yZmxvdy5TYXZlZFZhcmlhYmxlIvsBCgxGdW5j", | |||||
"dGlvblNwZWMSMAoLZnVsbGFyZ3NwZWMYASABKAsyGy50ZW5zb3JmbG93LlN0", | |||||
"cnVjdHVyZWRWYWx1ZRIRCglpc19tZXRob2QYAiABKAgSNAoPaW5wdXRfc2ln", | |||||
"bmF0dXJlGAUgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUSOAoL", | |||||
"aml0X2NvbXBpbGUYBiABKA4yIy50ZW5zb3JmbG93LkZ1bmN0aW9uU3BlYy5K", | |||||
"aXRDb21waWxlIioKCkppdENvbXBpbGUSCwoHREVGQVVMVBAAEgYKAk9OEAES", | |||||
"BwoDT0ZGEAJKBAgDEARKBAgEEAUiHwoNU2F2ZWRSZXNvdXJjZRIOCgZkZXZp", | |||||
"Y2UYASABKAkiQQoOU2F2ZWFibGVPYmplY3QSFQoNc2F2ZV9mdW5jdGlvbhgC", | |||||
"IAEoBRIYChByZXN0b3JlX2Z1bmN0aW9uGAMgASgFQlpaVWdpdGh1Yi5jb20v", | |||||
"dGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90", | |||||
"b2J1Zi9mb3JfY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw==")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.VariableReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, global::Tensorflow.StructReflection.Descriptor, global::Tensorflow.TrackableObjectGraphReflection.Descriptor, }, | new pbr::FileDescriptor[] { global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.VariableReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, global::Tensorflow.StructReflection.Descriptor, global::Tensorflow.TrackableObjectGraphReflection.Descriptor, }, | ||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedObjectGraph), global::Tensorflow.SavedObjectGraph.Parser, new[]{ "Nodes", "ConcreteFunctions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedObjectGraph), global::Tensorflow.SavedObjectGraph.Parser, new[]{ "Nodes", "ConcreteFunctions" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedObject), global::Tensorflow.SavedObject.Parser, new[]{ "Children", "SlotVariables", "UserObject", "Asset", "Function", "Variable", "BareConcreteFunction", "Constant", "Resource", "SaveableObjects" }, new[]{ "Kind" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedObject), global::Tensorflow.SavedObject.Parser, new[]{ "Children", "SlotVariables", "UserObject", "Asset", "Function", "Variable", "BareConcreteFunction", "Constant", "Resource", "CapturedTensor", "SaveableObjects" }, new[]{ "Kind" }, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedUserObject), global::Tensorflow.SavedUserObject.Parser, new[]{ "Identifier", "Version", "Metadata" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedUserObject), global::Tensorflow.SavedUserObject.Parser, new[]{ "Identifier", "Version", "Metadata" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedAsset), global::Tensorflow.SavedAsset.Parser, new[]{ "AssetFileDefIndex" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedAsset), global::Tensorflow.SavedAsset.Parser, new[]{ "AssetFileDefIndex" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedFunction), global::Tensorflow.SavedFunction.Parser, new[]{ "ConcreteFunctions", "FunctionSpec" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedFunction), global::Tensorflow.SavedFunction.Parser, new[]{ "ConcreteFunctions", "FunctionSpec" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CapturedTensor), global::Tensorflow.CapturedTensor.Parser, new[]{ "Name", "ConcreteFunction" }, null, null, null, null), | |||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConcreteFunction), global::Tensorflow.SavedConcreteFunction.Parser, new[]{ "BoundInputs", "CanonicalizedInputSignature", "OutputSignature" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConcreteFunction), global::Tensorflow.SavedConcreteFunction.Parser, new[]{ "BoundInputs", "CanonicalizedInputSignature", "OutputSignature" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedBareConcreteFunction), global::Tensorflow.SavedBareConcreteFunction.Parser, new[]{ "ConcreteFunctionName", "ArgumentKeywords", "AllowedPositionalArguments", "FunctionSpec" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedBareConcreteFunction), global::Tensorflow.SavedBareConcreteFunction.Parser, new[]{ "ConcreteFunctionName", "ArgumentKeywords", "AllowedPositionalArguments", "FunctionSpec" }, null, null, null, null), | ||||
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConstant), global::Tensorflow.SavedConstant.Parser, new[]{ "Operation" }, null, null, null, null), | new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConstant), global::Tensorflow.SavedConstant.Parser, new[]{ "Operation" }, null, null, null, null), | ||||
@@ -307,6 +310,9 @@ namespace Tensorflow { | |||||
case KindOneofCase.Resource: | case KindOneofCase.Resource: | ||||
Resource = other.Resource.Clone(); | Resource = other.Resource.Clone(); | ||||
break; | break; | ||||
case KindOneofCase.CapturedTensor: | |||||
CapturedTensor = other.CapturedTensor.Clone(); | |||||
break; | |||||
} | } | ||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | ||||
@@ -427,6 +433,17 @@ namespace Tensorflow { | |||||
} | } | ||||
} | } | ||||
/// <summary>Field number for the "captured_tensor" field.</summary> | |||||
public const int CapturedTensorFieldNumber = 12; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public global::Tensorflow.CapturedTensor CapturedTensor { | |||||
get { return kindCase_ == KindOneofCase.CapturedTensor ? (global::Tensorflow.CapturedTensor) kind_ : null; } | |||||
set { | |||||
kind_ = value; | |||||
kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.CapturedTensor; | |||||
} | |||||
} | |||||
/// <summary>Field number for the "saveable_objects" field.</summary> | /// <summary>Field number for the "saveable_objects" field.</summary> | ||||
public const int SaveableObjectsFieldNumber = 11; | public const int SaveableObjectsFieldNumber = 11; | ||||
private static readonly pbc::MapField<string, global::Tensorflow.SaveableObject>.Codec _map_saveableObjects_codec | private static readonly pbc::MapField<string, global::Tensorflow.SaveableObject>.Codec _map_saveableObjects_codec | ||||
@@ -448,6 +465,7 @@ namespace Tensorflow { | |||||
BareConcreteFunction = 8, | BareConcreteFunction = 8, | ||||
Constant = 9, | Constant = 9, | ||||
Resource = 10, | Resource = 10, | ||||
CapturedTensor = 12, | |||||
} | } | ||||
private KindOneofCase kindCase_ = KindOneofCase.None; | private KindOneofCase kindCase_ = KindOneofCase.None; | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -483,6 +501,7 @@ namespace Tensorflow { | |||||
if (!object.Equals(BareConcreteFunction, other.BareConcreteFunction)) return false; | if (!object.Equals(BareConcreteFunction, other.BareConcreteFunction)) return false; | ||||
if (!object.Equals(Constant, other.Constant)) return false; | if (!object.Equals(Constant, other.Constant)) return false; | ||||
if (!object.Equals(Resource, other.Resource)) return false; | if (!object.Equals(Resource, other.Resource)) return false; | ||||
if (!object.Equals(CapturedTensor, other.CapturedTensor)) return false; | |||||
if (!SaveableObjects.Equals(other.SaveableObjects)) return false; | if (!SaveableObjects.Equals(other.SaveableObjects)) return false; | ||||
if (KindCase != other.KindCase) return false; | if (KindCase != other.KindCase) return false; | ||||
return Equals(_unknownFields, other._unknownFields); | return Equals(_unknownFields, other._unknownFields); | ||||
@@ -500,6 +519,7 @@ namespace Tensorflow { | |||||
if (kindCase_ == KindOneofCase.BareConcreteFunction) hash ^= BareConcreteFunction.GetHashCode(); | if (kindCase_ == KindOneofCase.BareConcreteFunction) hash ^= BareConcreteFunction.GetHashCode(); | ||||
if (kindCase_ == KindOneofCase.Constant) hash ^= Constant.GetHashCode(); | if (kindCase_ == KindOneofCase.Constant) hash ^= Constant.GetHashCode(); | ||||
if (kindCase_ == KindOneofCase.Resource) hash ^= Resource.GetHashCode(); | if (kindCase_ == KindOneofCase.Resource) hash ^= Resource.GetHashCode(); | ||||
if (kindCase_ == KindOneofCase.CapturedTensor) hash ^= CapturedTensor.GetHashCode(); | |||||
hash ^= SaveableObjects.GetHashCode(); | hash ^= SaveableObjects.GetHashCode(); | ||||
hash ^= (int) kindCase_; | hash ^= (int) kindCase_; | ||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
@@ -546,6 +566,10 @@ namespace Tensorflow { | |||||
output.WriteMessage(Resource); | output.WriteMessage(Resource); | ||||
} | } | ||||
saveableObjects_.WriteTo(output, _map_saveableObjects_codec); | saveableObjects_.WriteTo(output, _map_saveableObjects_codec); | ||||
if (kindCase_ == KindOneofCase.CapturedTensor) { | |||||
output.WriteRawTag(98); | |||||
output.WriteMessage(CapturedTensor); | |||||
} | |||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
_unknownFields.WriteTo(output); | _unknownFields.WriteTo(output); | ||||
} | } | ||||
@@ -577,6 +601,9 @@ namespace Tensorflow { | |||||
if (kindCase_ == KindOneofCase.Resource) { | if (kindCase_ == KindOneofCase.Resource) { | ||||
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Resource); | size += 1 + pb::CodedOutputStream.ComputeMessageSize(Resource); | ||||
} | } | ||||
if (kindCase_ == KindOneofCase.CapturedTensor) { | |||||
size += 1 + pb::CodedOutputStream.ComputeMessageSize(CapturedTensor); | |||||
} | |||||
size += saveableObjects_.CalculateSize(_map_saveableObjects_codec); | size += saveableObjects_.CalculateSize(_map_saveableObjects_codec); | ||||
if (_unknownFields != null) { | if (_unknownFields != null) { | ||||
size += _unknownFields.CalculateSize(); | size += _unknownFields.CalculateSize(); | ||||
@@ -635,6 +662,12 @@ namespace Tensorflow { | |||||
} | } | ||||
Resource.MergeFrom(other.Resource); | Resource.MergeFrom(other.Resource); | ||||
break; | break; | ||||
case KindOneofCase.CapturedTensor: | |||||
if (CapturedTensor == null) { | |||||
CapturedTensor = new global::Tensorflow.CapturedTensor(); | |||||
} | |||||
CapturedTensor.MergeFrom(other.CapturedTensor); | |||||
break; | |||||
} | } | ||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | ||||
@@ -723,6 +756,15 @@ namespace Tensorflow { | |||||
saveableObjects_.AddEntriesFrom(input, _map_saveableObjects_codec); | saveableObjects_.AddEntriesFrom(input, _map_saveableObjects_codec); | ||||
break; | break; | ||||
} | } | ||||
case 98: { | |||||
global::Tensorflow.CapturedTensor subBuilder = new global::Tensorflow.CapturedTensor(); | |||||
if (kindCase_ == KindOneofCase.CapturedTensor) { | |||||
subBuilder.MergeFrom(CapturedTensor); | |||||
} | |||||
input.ReadMessage(subBuilder); | |||||
CapturedTensor = subBuilder; | |||||
break; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -805,11 +847,13 @@ namespace Tensorflow { | |||||
public const int MetadataFieldNumber = 3; | public const int MetadataFieldNumber = 3; | ||||
private string metadata_ = ""; | private string metadata_ = ""; | ||||
/// <summary> | /// <summary> | ||||
/// Metadata for deserializing this object. | |||||
/// | |||||
/// Deprecated! At the time of deprecation, Keras was the only user of this | /// Deprecated! At the time of deprecation, Keras was the only user of this | ||||
/// field, and its saving and loading code will be updated shortly. | /// field, and its saving and loading code will be updated shortly. | ||||
/// Please save your application-specific metadata to separate file | |||||
/// Initialization-related metadata. | |||||
/// Please save your application-specific metadata to a separate file. | |||||
/// </summary> | /// </summary> | ||||
[global::System.ObsoleteAttribute] | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public string Metadata { | public string Metadata { | ||||
get { return metadata_; } | get { return metadata_; } | ||||
@@ -1240,6 +1284,169 @@ namespace Tensorflow { | |||||
} | } | ||||
public sealed partial class CapturedTensor : pb::IMessage<CapturedTensor> { | |||||
private static readonly pb::MessageParser<CapturedTensor> _parser = new pb::MessageParser<CapturedTensor>(() => new CapturedTensor()); | |||||
private pb::UnknownFieldSet _unknownFields; | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pb::MessageParser<CapturedTensor> Parser { get { return _parser; } } | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public static pbr::MessageDescriptor Descriptor { | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[5]; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
pbr::MessageDescriptor pb::IMessage.Descriptor { | |||||
get { return Descriptor; } | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public CapturedTensor() { | |||||
OnConstruction(); | |||||
} | |||||
partial void OnConstruction(); | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public CapturedTensor(CapturedTensor other) : this() { | |||||
name_ = other.name_; | |||||
concreteFunction_ = other.concreteFunction_; | |||||
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public CapturedTensor Clone() { | |||||
return new CapturedTensor(this); | |||||
} | |||||
/// <summary>Field number for the "name" field.</summary> | |||||
public const int NameFieldNumber = 1; | |||||
private string name_ = ""; | |||||
/// <summary> | |||||
/// Name of captured tensor | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string Name { | |||||
get { return name_; } | |||||
set { | |||||
name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
/// <summary>Field number for the "concrete_function" field.</summary> | |||||
public const int ConcreteFunctionFieldNumber = 2; | |||||
private string concreteFunction_ = ""; | |||||
/// <summary> | |||||
/// Name of concrete function which contains the computed graph tensor. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public string ConcreteFunction { | |||||
get { return concreteFunction_; } | |||||
set { | |||||
concreteFunction_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override bool Equals(object other) { | |||||
return Equals(other as CapturedTensor); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public bool Equals(CapturedTensor other) { | |||||
if (ReferenceEquals(other, null)) { | |||||
return false; | |||||
} | |||||
if (ReferenceEquals(other, this)) { | |||||
return true; | |||||
} | |||||
if (Name != other.Name) return false; | |||||
if (ConcreteFunction != other.ConcreteFunction) return false; | |||||
return Equals(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override int GetHashCode() { | |||||
int hash = 1; | |||||
if (Name.Length != 0) hash ^= Name.GetHashCode(); | |||||
if (ConcreteFunction.Length != 0) hash ^= ConcreteFunction.GetHashCode(); | |||||
if (_unknownFields != null) { | |||||
hash ^= _unknownFields.GetHashCode(); | |||||
} | |||||
return hash; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public override string ToString() { | |||||
return pb::JsonFormatter.ToDiagnosticString(this); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void WriteTo(pb::CodedOutputStream output) { | |||||
if (Name.Length != 0) { | |||||
output.WriteRawTag(10); | |||||
output.WriteString(Name); | |||||
} | |||||
if (ConcreteFunction.Length != 0) { | |||||
output.WriteRawTag(18); | |||||
output.WriteString(ConcreteFunction); | |||||
} | |||||
if (_unknownFields != null) { | |||||
_unknownFields.WriteTo(output); | |||||
} | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public int CalculateSize() { | |||||
int size = 0; | |||||
if (Name.Length != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(Name); | |||||
} | |||||
if (ConcreteFunction.Length != 0) { | |||||
size += 1 + pb::CodedOutputStream.ComputeStringSize(ConcreteFunction); | |||||
} | |||||
if (_unknownFields != null) { | |||||
size += _unknownFields.CalculateSize(); | |||||
} | |||||
return size; | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(CapturedTensor other) { | |||||
if (other == null) { | |||||
return; | |||||
} | |||||
if (other.Name.Length != 0) { | |||||
Name = other.Name; | |||||
} | |||||
if (other.ConcreteFunction.Length != 0) { | |||||
ConcreteFunction = other.ConcreteFunction; | |||||
} | |||||
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); | |||||
} | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | |||||
public void MergeFrom(pb::CodedInputStream input) { | |||||
uint tag; | |||||
while ((tag = input.ReadTag()) != 0) { | |||||
switch(tag) { | |||||
default: | |||||
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); | |||||
break; | |||||
case 10: { | |||||
Name = input.ReadString(); | |||||
break; | |||||
} | |||||
case 18: { | |||||
ConcreteFunction = input.ReadString(); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
/// <summary> | /// <summary> | ||||
/// Stores low-level information about a concrete function. Referenced in either | /// Stores low-level information about a concrete function. Referenced in either | ||||
/// a SavedFunction or a SavedBareConcreteFunction. | /// a SavedFunction or a SavedBareConcreteFunction. | ||||
@@ -1252,7 +1459,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[5]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[6]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -1285,12 +1492,6 @@ namespace Tensorflow { | |||||
private static readonly pb::FieldCodec<int> _repeated_boundInputs_codec | private static readonly pb::FieldCodec<int> _repeated_boundInputs_codec | ||||
= pb::FieldCodec.ForInt32(18); | = pb::FieldCodec.ForInt32(18); | ||||
private readonly pbc::RepeatedField<int> boundInputs_ = new pbc::RepeatedField<int>(); | private readonly pbc::RepeatedField<int> boundInputs_ = new pbc::RepeatedField<int>(); | ||||
/// <summary> | |||||
/// Bound inputs to the function. The SavedObjects identified by the node ids | |||||
/// given here are appended as extra inputs to the caller-supplied inputs. | |||||
/// The only types of SavedObjects valid here are SavedVariable, SavedResource | |||||
/// and SavedAsset. | |||||
/// </summary> | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public pbc::RepeatedField<int> BoundInputs { | public pbc::RepeatedField<int> BoundInputs { | ||||
get { return boundInputs_; } | get { return boundInputs_; } | ||||
@@ -1457,7 +1658,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[6]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[7]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -1685,7 +1886,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[7]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[8]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -1821,7 +2022,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[8]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[9]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -2156,7 +2357,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[9]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[10]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -2418,7 +2619,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[10]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[11]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -2552,7 +2753,7 @@ namespace Tensorflow { | |||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public static pbr::MessageDescriptor Descriptor { | public static pbr::MessageDescriptor Descriptor { | ||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[11]; } | |||||
get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[12]; } | |||||
} | } | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
@@ -58,19 +58,20 @@ namespace Tensorflow { | |||||
"YW1lGAEgASgJEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JT", | "YW1lGAEgASgJEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JT", | ||||
"aGFwZVByb3RvEiMKBWR0eXBlGAMgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw", | "aGFwZVByb3RvEiMKBWR0eXBlGAMgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw", | ||||
"ZRIoCgdtaW5pbXVtGAQgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90bxIo", | "ZRIoCgdtaW5pbXVtGAQgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90bxIo", | ||||
"CgdtYXhpbXVtGAUgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90byKoAwoN", | |||||
"CgdtYXhpbXVtGAUgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90byLbAwoN", | |||||
"VHlwZVNwZWNQcm90bxJACg90eXBlX3NwZWNfY2xhc3MYASABKA4yJy50ZW5z", | "VHlwZVNwZWNQcm90bxJACg90eXBlX3NwZWNfY2xhc3MYASABKA4yJy50ZW5z", | ||||
"b3JmbG93LlR5cGVTcGVjUHJvdG8uVHlwZVNwZWNDbGFzcxIvCgp0eXBlX3N0", | "b3JmbG93LlR5cGVTcGVjUHJvdG8uVHlwZVNwZWNDbGFzcxIvCgp0eXBlX3N0", | ||||
"YXRlGAIgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUSHAoUdHlw", | "YXRlGAIgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUSHAoUdHlw", | ||||
"ZV9zcGVjX2NsYXNzX25hbWUYAyABKAkihQIKDVR5cGVTcGVjQ2xhc3MSCwoH", | |||||
"ZV9zcGVjX2NsYXNzX25hbWUYAyABKAkiuAIKDVR5cGVTcGVjQ2xhc3MSCwoH", | |||||
"VU5LTk9XThAAEhYKElNQQVJTRV9URU5TT1JfU1BFQxABEhcKE0lOREVYRURf", | "VU5LTk9XThAAEhYKElNQQVJTRV9URU5TT1JfU1BFQxABEhcKE0lOREVYRURf", | ||||
"U0xJQ0VTX1NQRUMQAhIWChJSQUdHRURfVEVOU09SX1NQRUMQAxIVChFURU5T", | "U0xJQ0VTX1NQRUMQAhIWChJSQUdHRURfVEVOU09SX1NQRUMQAxIVChFURU5T", | ||||
"T1JfQVJSQVlfU1BFQxAEEhUKEURBVEFfREFUQVNFVF9TUEVDEAUSFgoSREFU", | "T1JfQVJSQVlfU1BFQxAEEhUKEURBVEFfREFUQVNFVF9TUEVDEAUSFgoSREFU", | ||||
"QV9JVEVSQVRPUl9TUEVDEAYSEQoNT1BUSU9OQUxfU1BFQxAHEhQKEFBFUl9S", | "QV9JVEVSQVRPUl9TUEVDEAYSEQoNT1BUSU9OQUxfU1BFQxAHEhQKEFBFUl9S", | ||||
"RVBMSUNBX1NQRUMQCBIRCg1WQVJJQUJMRV9TUEVDEAkSFgoSUk9XX1BBUlRJ", | "RVBMSUNBX1NQRUMQCBIRCg1WQVJJQUJMRV9TUEVDEAkSFgoSUk9XX1BBUlRJ", | ||||
"VElPTl9TUEVDEAoiBAgLEAtCV1pVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl", | |||||
"bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3Jl", | |||||
"X3Byb3Rvc19nb19wcm90b2IGcHJvdG8z")); | |||||
"VElPTl9TUEVDEAoSGAoUUkVHSVNURVJFRF9UWVBFX1NQRUMQDBIXChNFWFRF", | |||||
"TlNJT05fVFlQRV9TUEVDEA0iBAgLEAtCV1pVZ2l0aHViLmNvbS90ZW5zb3Jm", | |||||
"bG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zv", | |||||
"cl9jb3JlX3Byb3Rvc19nb19wcm90b2IGcHJvdG8z")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { global::Tensorflow.TensorReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, | new pbr::FileDescriptor[] { global::Tensorflow.TensorReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, | ||||
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { | ||||
@@ -2116,10 +2117,14 @@ namespace Tensorflow { | |||||
public const int TypeSpecClassNameFieldNumber = 3; | public const int TypeSpecClassNameFieldNumber = 3; | ||||
private string typeSpecClassName_ = ""; | private string typeSpecClassName_ = ""; | ||||
/// <summary> | /// <summary> | ||||
/// This is currently redundant with the type_spec_class enum, and is only | |||||
/// used for error reporting. In particular, if you use an older binary to | |||||
/// load a newer model, and the model uses a TypeSpecClass that the older | |||||
/// binary doesn't support, then this lets us display a useful error message. | |||||
/// The name of the TypeSpec class. | |||||
/// * If type_spec_class == REGISTERED_TYPE_SPEC, the TypeSpec class is | |||||
/// the one registered under this name. For types registered outside | |||||
/// core TensorFlow by an add-on library, that library must be loaded | |||||
/// before this value can be deserialized by StructureCoder. | |||||
/// * If type_spec_class specifies a particular TypeSpec class, this field is | |||||
/// redundant with the type_spec_class enum, and is only used for error | |||||
/// reporting in older binaries that do not know the tupe_spec_class enum. | |||||
/// </summary> | /// </summary> | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public string TypeSpecClassName { | public string TypeSpecClassName { | ||||
@@ -2295,6 +2300,14 @@ namespace Tensorflow { | |||||
/// RowPartitionSpec from ragged/row_partition.py | /// RowPartitionSpec from ragged/row_partition.py | ||||
/// </summary> | /// </summary> | ||||
[pbr::OriginalName("ROW_PARTITION_SPEC")] RowPartitionSpec = 10, | [pbr::OriginalName("ROW_PARTITION_SPEC")] RowPartitionSpec = 10, | ||||
/// <summary> | |||||
/// The type registered as type_spec_class_name. | |||||
/// </summary> | |||||
[pbr::OriginalName("REGISTERED_TYPE_SPEC")] RegisteredTypeSpec = 12, | |||||
/// <summary> | |||||
/// Subclasses of tf.ExtensionType | |||||
/// </summary> | |||||
[pbr::OriginalName("EXTENSION_TYPE_SPEC")] ExtensionTypeSpec = 13, | |||||
} | } | ||||
} | } | ||||
@@ -217,7 +217,7 @@ namespace Tensorflow { | |||||
= pb::FieldCodec.ForInt32(58); | = pb::FieldCodec.ForInt32(58); | ||||
private readonly pbc::RepeatedField<int> intVal_ = new pbc::RepeatedField<int>(); | private readonly pbc::RepeatedField<int> intVal_ = new pbc::RepeatedField<int>(); | ||||
/// <summary> | /// <summary> | ||||
/// DT_INT32, DT_INT16, DT_INT8, DT_UINT8. | |||||
/// DT_INT32, DT_INT16, DT_UINT16, DT_INT8, DT_UINT8. | |||||
/// </summary> | /// </summary> | ||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute] | [global::System.Diagnostics.DebuggerNonUserCodeAttribute] | ||||
public pbc::RepeatedField<int> IntVal { | public pbc::RepeatedField<int> IntVal { | ||||
@@ -43,14 +43,13 @@ namespace Tensorflow { | |||||
"X1JFRhB0EhEKDURUX1VJTlQxNl9SRUYQdRIVChFEVF9DT01QTEVYMTI4X1JF", | "X1JFRhB0EhEKDURUX1VJTlQxNl9SRUYQdRIVChFEVF9DT01QTEVYMTI4X1JF", | ||||
"RhB2Eg8KC0RUX0hBTEZfUkVGEHcSEwoPRFRfUkVTT1VSQ0VfUkVGEHgSEgoO", | "RhB2Eg8KC0RUX0hBTEZfUkVGEHcSEwoPRFRfUkVTT1VSQ0VfUkVGEHgSEgoO", | ||||
"RFRfVkFSSUFOVF9SRUYQeRIRCg1EVF9VSU5UMzJfUkVGEHoSEQoNRFRfVUlO", | "RFRfVkFSSUFOVF9SRUYQeRIRCg1EVF9VSU5UMzJfUkVGEHoSEQoNRFRfVUlO", | ||||
"VDY0X1JFRhB7KkYKD1NwZWNpYWxpemVkVHlwZRIOCgpTVF9JTlZBTElEEAAS", | |||||
"EgoOU1RfVEVOU09SX0xJU1QQARIPCgtTVF9PUFRJT05BTBACQnoKGG9yZy50", | |||||
"ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQcm90b3NQAVpMZ2l0aHViLmNv", | |||||
"bS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2Zy", | |||||
"YW1ld29yay90eXBlc19nb19wcm90b/gBAWIGcHJvdG8z")); | |||||
"VDY0X1JFRhB7QnoKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQ", | |||||
"cm90b3NQAVpMZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", | |||||
"c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay90eXBlc19nb19wcm90b/gBAWIG", | |||||
"cHJvdG8z")); | |||||
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, | ||||
new pbr::FileDescriptor[] { }, | new pbr::FileDescriptor[] { }, | ||||
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataType), typeof(global::Tensorflow.SpecializedType), }, null, null)); | |||||
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataType), }, null, null)); | |||||
} | } | ||||
#endregion | #endregion | ||||
@@ -149,27 +148,6 @@ namespace Tensorflow { | |||||
[pbr::OriginalName("DT_UINT64_REF")] DtUint64Ref = 123, | [pbr::OriginalName("DT_UINT64_REF")] DtUint64Ref = 123, | ||||
} | } | ||||
/// <summary> | |||||
/// For identifying the underlying type of a variant. For variants, the types | |||||
/// listed here are a subset of the types in the variant type registry, | |||||
/// corresponding to commonly used variants which must occasionally be | |||||
/// special-cased. | |||||
/// </summary> | |||||
public enum SpecializedType { | |||||
/// <summary> | |||||
/// Invalid/unknown specialized type. | |||||
/// </summary> | |||||
[pbr::OriginalName("ST_INVALID")] StInvalid = 0, | |||||
/// <summary> | |||||
/// "tensorflow::TensorList" in the variant type registry. | |||||
/// </summary> | |||||
[pbr::OriginalName("ST_TENSOR_LIST")] StTensorList = 1, | |||||
/// <summary> | |||||
/// "tensorflow::data::Optional" in the variant type registry. | |||||
/// </summary> | |||||
[pbr::OriginalName("ST_OPTIONAL")] StOptional = 2, | |||||
} | |||||
#endregion | #endregion | ||||
} | } | ||||
@@ -39,7 +39,7 @@ namespace Tensorflow | |||||
public static Session LoadFromSavedModel(string path) | public static Session LoadFromSavedModel(string path) | ||||
{ | { | ||||
using var graph = new Graph(); | |||||
var graph = new Graph(); | |||||
using var status = new Status(); | using var status = new Status(); | ||||
using var opt = c_api.TF_NewSessionOptions(); | using var opt = c_api.TF_NewSessionOptions(); | ||||
@@ -189,7 +189,10 @@ namespace Tensorflow | |||||
{ | { | ||||
TF_DataType.TF_STRING => "string", | TF_DataType.TF_STRING => "string", | ||||
TF_DataType.TF_UINT8 => "uint8", | TF_DataType.TF_UINT8 => "uint8", | ||||
TF_DataType.TF_INT8 => "int8", | |||||
TF_DataType.TF_UINT32 => "uint32", | |||||
TF_DataType.TF_INT32 => "int32", | TF_DataType.TF_INT32 => "int32", | ||||
TF_DataType.TF_UINT64 => "uint64", | |||||
TF_DataType.TF_INT64 => "int64", | TF_DataType.TF_INT64 => "int64", | ||||
TF_DataType.TF_FLOAT => "float32", | TF_DataType.TF_FLOAT => "float32", | ||||
TF_DataType.TF_DOUBLE => "float64", | TF_DataType.TF_DOUBLE => "float64", | ||||
@@ -204,9 +207,12 @@ namespace Tensorflow | |||||
{ | { | ||||
TF_DataType.TF_BOOL => sizeof(bool), | TF_DataType.TF_BOOL => sizeof(bool), | ||||
TF_DataType.TF_UINT8 => sizeof(byte), | TF_DataType.TF_UINT8 => sizeof(byte), | ||||
TF_DataType.TF_INT8 => sizeof(byte), | |||||
TF_DataType.TF_INT8 => sizeof(sbyte), | |||||
TF_DataType.TF_UINT16 => sizeof(ushort), | |||||
TF_DataType.TF_INT16 => sizeof(short), | TF_DataType.TF_INT16 => sizeof(short), | ||||
TF_DataType.TF_UINT32 => sizeof(uint), | |||||
TF_DataType.TF_INT32 => sizeof(int), | TF_DataType.TF_INT32 => sizeof(int), | ||||
TF_DataType.TF_UINT64 => sizeof(ulong), | |||||
TF_DataType.TF_INT64 => sizeof(long), | TF_DataType.TF_INT64 => sizeof(long), | ||||
TF_DataType.TF_FLOAT => sizeof(float), | TF_DataType.TF_FLOAT => sizeof(float), | ||||
TF_DataType.TF_DOUBLE => sizeof(double), | TF_DataType.TF_DOUBLE => sizeof(double), | ||||
@@ -10,7 +10,9 @@ using static Tensorflow.Binding; | |||||
namespace Tensorflow.Benchmark.Leak | namespace Tensorflow.Benchmark.Leak | ||||
{ | { | ||||
/// <summary> | |||||
/// https://github.com/SciSharp/TensorFlow.NET/issues/418 | |||||
/// </summary> | |||||
public class SavedModelCleanup | public class SavedModelCleanup | ||||
{ | { | ||||
[Benchmark] | [Benchmark] | ||||
@@ -22,6 +24,8 @@ namespace Tensorflow.Benchmark.Leak | |||||
for (var i = 0; i < 1024; i++) | for (var i = 0; i < 1024; i++) | ||||
{ | { | ||||
using var sess = Session.LoadFromSavedModel(ClassifierModelPath); | using var sess = Session.LoadFromSavedModel(ClassifierModelPath); | ||||
// destory graph | |||||
using var g = sess.graph; | |||||
} | } | ||||
} | } | ||||
} | } | ||||