diff --git a/src/TensorFlowNET.Core/Protobuf/AllocationDescription.cs b/src/TensorFlowNET.Core/Protobuf/AllocationDescription.cs index c8c6b8b0..fe484d99 100644 --- a/src/TensorFlowNET.Core/Protobuf/AllocationDescription.cs +++ b/src/TensorFlowNET.Core/Protobuf/AllocationDescription.cs @@ -29,10 +29,10 @@ namespace Tensorflow { "dGlvbhIXCg9yZXF1ZXN0ZWRfYnl0ZXMYASABKAMSFwoPYWxsb2NhdGVkX2J5", "dGVzGAIgASgDEhYKDmFsbG9jYXRvcl9uYW1lGAMgASgJEhUKDWFsbG9jYXRp", "b25faWQYBCABKAMSHAoUaGFzX3NpbmdsZV9yZWZlcmVuY2UYBSABKAgSCwoD", - "cHRyGAYgASgEQnsKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IbQWxsb2Nh", - "dGlvbkRlc2NyaXB0aW9uUHJvdG9zUAFaPWdpdGh1Yi5jb20vdGVuc29yZmxv", - "dy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmv4AQFi", - "BnByb3RvMw==")); + "cHRyGAYgASgEQpsBChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCG0FsbG9j", + "YXRpb25EZXNjcmlwdGlvblByb3Rvc1ABWl1naXRodWIuY29tL3RlbnNvcmZs", + "b3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL2Fs", + "bG9jYXRpb25fZGVzY3JpcHRpb25fZ29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/ApiDef.cs b/src/TensorFlowNET.Core/Protobuf/ApiDef.cs index ef6f1f75..57c5898d 100644 --- a/src/TensorFlowNET.Core/Protobuf/ApiDef.cs +++ b/src/TensorFlowNET.Core/Protobuf/ApiDef.cs @@ -43,10 +43,10 @@ namespace Tensorflow { "MhUudGVuc29yZmxvdy5BdHRyVmFsdWUSEwoLZGVzY3JpcHRpb24YBCABKAki", "RwoKVmlzaWJpbGl0eRIWChJERUZBVUxUX1ZJU0lCSUxJVFkQABILCgdWSVNJ", "QkxFEAESCAoEU0tJUBACEgoKBkhJRERFThADIikKB0FwaURlZnMSHgoCb3AY", - "ASADKAsyEi50ZW5zb3JmbG93LkFwaURlZkJsChhvcmcudGVuc29yZmxvdy5m", - "cmFtZXdvcmtCDEFwaURlZlByb3Rvc1ABWj1naXRodWIuY29tL3RlbnNvcmZs", - "b3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr+AEB", - "YgZwcm90bzM=")); + "ASADKAsyEi50ZW5zb3JmbG93LkFwaURlZkJ9ChhvcmcudGVuc29yZmxvdy5m", + "cmFtZXdvcmtCDEFwaURlZlByb3Rvc1ABWk5naXRodWIuY29tL3RlbnNvcmZs", + "b3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL2Fw", + "aV9kZWZfZ29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/AttrValue.cs b/src/TensorFlowNET.Core/Protobuf/AttrValue.cs index 744862f0..2a737f69 100644 --- a/src/TensorFlowNET.Core/Protobuf/AttrValue.cs +++ b/src/TensorFlowNET.Core/Protobuf/AttrValue.cs @@ -43,10 +43,10 @@ namespace Tensorflow { "ckxpc3RCBwoFdmFsdWUikgEKDE5hbWVBdHRyTGlzdBIMCgRuYW1lGAEgASgJ", "EjAKBGF0dHIYAiADKAsyIi50ZW5zb3JmbG93Lk5hbWVBdHRyTGlzdC5BdHRy", "RW50cnkaQgoJQXR0ckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEo", - "CzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4AUJvChhvcmcudGVuc29yZmxv", - "dy5mcmFtZXdvcmtCD0F0dHJWYWx1ZVByb3Rvc1ABWj1naXRodWIuY29tL3Rl", - "bnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3", - "b3Jr+AEBYgZwcm90bzM=")); + "CzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4AUKDAQoYb3JnLnRlbnNvcmZs", + "b3cuZnJhbWV3b3JrQg9BdHRyVmFsdWVQcm90b3NQAVpRZ2l0aHViLmNvbS90", + "ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2ZyYW1l", + "d29yay9hdHRyX3ZhbHVlX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TensorReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Cluster.cs b/src/TensorFlowNET.Core/Protobuf/Cluster.cs index 27dae3d9..e75123c0 100644 --- a/src/TensorFlowNET.Core/Protobuf/Cluster.cs +++ b/src/TensorFlowNET.Core/Protobuf/Cluster.cs @@ -28,10 +28,10 @@ namespace Tensorflow { "c29yZmxvdyJyCgZKb2JEZWYSDAoEbmFtZRgBIAEoCRIsCgV0YXNrcxgCIAMo", "CzIdLnRlbnNvcmZsb3cuSm9iRGVmLlRhc2tzRW50cnkaLAoKVGFza3NFbnRy", "eRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAk6AjgBIi0KCkNsdXN0ZXJE", - "ZWYSHwoDam9iGAEgAygLMhIudGVuc29yZmxvdy5Kb2JEZWZCbgoab3JnLnRl", - "bnNvcmZsb3cuZGlzdHJ1bnRpbWVCDUNsdXN0ZXJQcm90b3NQAVo8Z2l0aHVi", + "ZWYSHwoDam9iGAEgAygLMhIudGVuc29yZmxvdy5Kb2JEZWZCegoab3JnLnRl", + "bnNvcmZsb3cuZGlzdHJ1bnRpbWVCDUNsdXN0ZXJQcm90b3NQAVpIZ2l0aHVi", "LmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3Jl", - "L3Byb3RvYnVm+AEBYgZwcm90bzM=")); + "L2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Config.cs b/src/TensorFlowNET.Core/Protobuf/Config.cs index 694a0aba..d4d348f5 100644 --- a/src/TensorFlowNET.Core/Protobuf/Config.cs +++ b/src/TensorFlowNET.Core/Protobuf/Config.cs @@ -30,7 +30,7 @@ namespace Tensorflow { "KnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvc3RlcF9zdGF0cy5wcm90bxom", "dGVuc29yZmxvdy9jb3JlL3Byb3RvYnVmL2NsdXN0ZXIucHJvdG8aJHRlbnNv", "cmZsb3cvY29yZS9wcm90b2J1Zi9kZWJ1Zy5wcm90bxoudGVuc29yZmxvdy9j", - "b3JlL3Byb3RvYnVmL3Jld3JpdGVyX2NvbmZpZy5wcm90byK3BQoKR1BVT3B0", + "b3JlL3Byb3RvYnVmL3Jld3JpdGVyX2NvbmZpZy5wcm90byLJBQoKR1BVT3B0", "aW9ucxInCh9wZXJfcHJvY2Vzc19ncHVfbWVtb3J5X2ZyYWN0aW9uGAEgASgB", "EhQKDGFsbG93X2dyb3d0aBgEIAEoCBIWCg5hbGxvY2F0b3JfdHlwZRgCIAEo", "CRIfChdkZWZlcnJlZF9kZWxldGlvbl9ieXRlcxgDIAEoAxIbChN2aXNpYmxl", @@ -38,111 +38,116 @@ namespace Tensorflow { "ZWNzGAYgASgFEiQKHHBvbGxpbmdfaW5hY3RpdmVfZGVsYXlfbXNlY3MYByAB", "KAUSHAoUZm9yY2VfZ3B1X2NvbXBhdGlibGUYCCABKAgSOQoMZXhwZXJpbWVu", "dGFsGAkgASgLMiMudGVuc29yZmxvdy5HUFVPcHRpb25zLkV4cGVyaW1lbnRh", - "bBrwAgoMRXhwZXJpbWVudGFsEksKD3ZpcnR1YWxfZGV2aWNlcxgBIAMoCzIy", + "bBqCAwoMRXhwZXJpbWVudGFsEksKD3ZpcnR1YWxfZGV2aWNlcxgBIAMoCzIy", "LnRlbnNvcmZsb3cuR1BVT3B0aW9ucy5FeHBlcmltZW50YWwuVmlydHVhbERl", "dmljZXMSGgoSdXNlX3VuaWZpZWRfbWVtb3J5GAIgASgIEiMKG251bV9kZXZf", "dG9fZGV2X2NvcHlfc3RyZWFtcxgDIAEoBRIdChVjb2xsZWN0aXZlX3Jpbmdf", "b3JkZXIYBCABKAkSHQoVdGltZXN0YW1wZWRfYWxsb2NhdG9yGAUgASgIEiMK", "G2tlcm5lbF90cmFja2VyX21heF9pbnRlcnZhbBgHIAEoBRIgChhrZXJuZWxf", "dHJhY2tlcl9tYXhfYnl0ZXMYCCABKAUSIgoaa2VybmVsX3RyYWNrZXJfbWF4", - "X3BlbmRpbmcYCSABKAUaKQoOVmlydHVhbERldmljZXMSFwoPbWVtb3J5X2xp", - "bWl0X21iGAEgAygCIoUDChBPcHRpbWl6ZXJPcHRpb25zEisKI2RvX2NvbW1v", - "bl9zdWJleHByZXNzaW9uX2VsaW1pbmF0aW9uGAEgASgIEhsKE2RvX2NvbnN0", - "YW50X2ZvbGRpbmcYAiABKAgSJAocbWF4X2ZvbGRlZF9jb25zdGFudF9pbl9i", - "eXRlcxgGIAEoAxIcChRkb19mdW5jdGlvbl9pbmxpbmluZxgEIAEoCBI1Cglv", - "cHRfbGV2ZWwYAyABKA4yIi50ZW5zb3JmbG93Lk9wdGltaXplck9wdGlvbnMu", - "TGV2ZWwSRQoQZ2xvYmFsX2ppdF9sZXZlbBgFIAEoDjIrLnRlbnNvcmZsb3cu", - "T3B0aW1pemVyT3B0aW9ucy5HbG9iYWxKaXRMZXZlbCIgCgVMZXZlbBIGCgJM", - "MRAAEg8KAkwwEP///////////wEiQwoOR2xvYmFsSml0TGV2ZWwSCwoHREVG", - "QVVMVBAAEhAKA09GRhD///////////8BEggKBE9OXzEQARIICgRPTl8yEAIi", - "7gIKDEdyYXBoT3B0aW9ucxIeChZlbmFibGVfcmVjdl9zY2hlZHVsaW5nGAIg", - "ASgIEjcKEW9wdGltaXplcl9vcHRpb25zGAMgASgLMhwudGVuc29yZmxvdy5P", - "cHRpbWl6ZXJPcHRpb25zEhgKEGJ1aWxkX2Nvc3RfbW9kZWwYBCABKAMSHgoW", - "YnVpbGRfY29zdF9tb2RlbF9hZnRlchgJIAEoAxIUCgxpbmZlcl9zaGFwZXMY", - "BSABKAgSGgoScGxhY2VfcHJ1bmVkX2dyYXBoGAYgASgIEiAKGGVuYWJsZV9i", - "ZmxvYXQxNl9zZW5kcmVjdhgHIAEoCBIVCg10aW1lbGluZV9zdGVwGAggASgF", - "EjMKD3Jld3JpdGVfb3B0aW9ucxgKIAEoCzIaLnRlbnNvcmZsb3cuUmV3cml0", - "ZXJDb25maWdKBAgBEAJSJXNraXBfY29tbW9uX3N1YmV4cHJlc3Npb25fZWxp", - "bWluYXRpb24iQQoVVGhyZWFkUG9vbE9wdGlvblByb3RvEhMKC251bV90aHJl", - "YWRzGAEgASgFEhMKC2dsb2JhbF9uYW1lGAIgASgJIrQBCgpSUENPcHRpb25z", - "EiQKHHVzZV9ycGNfZm9yX2lucHJvY2Vzc19tYXN0ZXIYASABKAgSHQoVY29t", - "cHJlc3Npb25fYWxnb3JpdGhtGAIgASgJEhkKEWNvbXByZXNzaW9uX2xldmVs", - "GAMgASgFEhoKEmNhY2hlX3JwY19yZXNwb25zZRgEIAEoCBIqCiJkaXNhYmxl", - "X3Nlc3Npb25fY29ubmVjdGlvbl9zaGFyaW5nGAUgASgIIjAKD1Nlc3Npb25N", - "ZXRhZGF0YRIMCgRuYW1lGAEgASgJEg8KB3ZlcnNpb24YAiABKAMi9gkKC0Nv", - "bmZpZ1Byb3RvEj4KDGRldmljZV9jb3VudBgBIAMoCzIoLnRlbnNvcmZsb3cu", - "Q29uZmlnUHJvdG8uRGV2aWNlQ291bnRFbnRyeRIkChxpbnRyYV9vcF9wYXJh", - "bGxlbGlzbV90aHJlYWRzGAIgASgFEiQKHGludGVyX29wX3BhcmFsbGVsaXNt", - "X3RocmVhZHMYBSABKAUSHwoXdXNlX3Blcl9zZXNzaW9uX3RocmVhZHMYCSAB", - "KAgSRwocc2Vzc2lvbl9pbnRlcl9vcF90aHJlYWRfcG9vbBgMIAMoCzIhLnRl", - "bnNvcmZsb3cuVGhyZWFkUG9vbE9wdGlvblByb3RvEhgKEHBsYWNlbWVudF9w", - "ZXJpb2QYAyABKAUSFgoOZGV2aWNlX2ZpbHRlcnMYBCADKAkSKwoLZ3B1X29w", - "dGlvbnMYBiABKAsyFi50ZW5zb3JmbG93LkdQVU9wdGlvbnMSHAoUYWxsb3df", - "c29mdF9wbGFjZW1lbnQYByABKAgSHAoUbG9nX2RldmljZV9wbGFjZW1lbnQY", - "CCABKAgSLwoNZ3JhcGhfb3B0aW9ucxgKIAEoCzIYLnRlbnNvcmZsb3cuR3Jh", - "cGhPcHRpb25zEh8KF29wZXJhdGlvbl90aW1lb3V0X2luX21zGAsgASgDEisK", - "C3JwY19vcHRpb25zGA0gASgLMhYudGVuc29yZmxvdy5SUENPcHRpb25zEisK", - "C2NsdXN0ZXJfZGVmGA4gASgLMhYudGVuc29yZmxvdy5DbHVzdGVyRGVmEh0K", - "FWlzb2xhdGVfc2Vzc2lvbl9zdGF0ZRgPIAEoCBI6CgxleHBlcmltZW50YWwY", - "ECABKAsyJC50ZW5zb3JmbG93LkNvbmZpZ1Byb3RvLkV4cGVyaW1lbnRhbBoy", - "ChBEZXZpY2VDb3VudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEo", - "BToCOAEamgQKDEV4cGVyaW1lbnRhbBIfChdjb2xsZWN0aXZlX2dyb3VwX2xl", - "YWRlchgBIAEoCRIVCg1leGVjdXRvcl90eXBlGAMgASgJEhoKEnJlY3ZfYnVm", - "X21heF9jaHVuaxgEIAEoBRIZChF1c2VfbnVtYV9hZmZpbml0eRgFIAEoCBI1", - "Ci1jb2xsZWN0aXZlX2RldGVybWluaXN0aWNfc2VxdWVudGlhbF9leGVjdXRp", - "b24YBiABKAgSFwoPY29sbGVjdGl2ZV9uY2NsGAcgASgIEjYKLnNoYXJlX3Nl", - "c3Npb25fc3RhdGVfaW5fY2x1c3RlcnNwZWNfcHJvcGFnYXRpb24YCCABKAgS", - "HwoXZGlzYWJsZV90aHJlYWRfc3Bpbm5pbmcYCSABKAgSKAogc2hhcmVfY2x1", - "c3Rlcl9kZXZpY2VzX2luX3Nlc3Npb24YCiABKAgSNQoQc2Vzc2lvbl9tZXRh", - "ZGF0YRgLIAEoCzIbLnRlbnNvcmZsb3cuU2Vzc2lvbk1ldGFkYXRhEiEKGW9w", - "dGltaXplX2Zvcl9zdGF0aWNfZ3JhcGgYDCABKAgSGgoSZW5hYmxlX21saXJf", - "YnJpZGdlGA0gASgIEicKH2Rpc2FibGVfb3V0cHV0X3BhcnRpdGlvbl9ncmFw", - "aHMYDiABKAgSIwobeGxhX2Z1c2lvbl9hdXRvdHVuZXJfdGhyZXNoGA8gASgD", - "SgQIAhADItgDCgpSdW5PcHRpb25zEjYKC3RyYWNlX2xldmVsGAEgASgOMiEu", - "dGVuc29yZmxvdy5SdW5PcHRpb25zLlRyYWNlTGV2ZWwSFQoNdGltZW91dF9p", - "bl9tcxgCIAEoAxIcChRpbnRlcl9vcF90aHJlYWRfcG9vbBgDIAEoBRIfChdv", - "dXRwdXRfcGFydGl0aW9uX2dyYXBocxgFIAEoCBIvCg1kZWJ1Z19vcHRpb25z", - "GAYgASgLMhgudGVuc29yZmxvdy5EZWJ1Z09wdGlvbnMSKgoicmVwb3J0X3Rl", - "bnNvcl9hbGxvY2F0aW9uc191cG9uX29vbRgHIAEoCBI5CgxleHBlcmltZW50", - "YWwYCCABKAsyIy50ZW5zb3JmbG93LlJ1bk9wdGlvbnMuRXhwZXJpbWVudGFs", - "GkoKDEV4cGVyaW1lbnRhbBIcChRjb2xsZWN0aXZlX2dyYXBoX2tleRgBIAEo", - "AxIcChR1c2VfcnVuX2hhbmRsZXJfcG9vbBgCIAEoCCJSCgpUcmFjZUxldmVs", - "EgwKCE5PX1RSQUNFEAASEgoOU09GVFdBUkVfVFJBQ0UQARISCg5IQVJEV0FS", - "RV9UUkFDRRACEg4KCkZVTExfVFJBQ0UQA0oECAQQBSKHAwoLUnVuTWV0YWRh", - "dGESKQoKc3RlcF9zdGF0cxgBIAEoCzIVLnRlbnNvcmZsb3cuU3RlcFN0YXRz", - "EiwKCmNvc3RfZ3JhcGgYAiABKAsyGC50ZW5zb3JmbG93LkNvc3RHcmFwaERl", - "ZhIuChBwYXJ0aXRpb25fZ3JhcGhzGAMgAygLMhQudGVuc29yZmxvdy5HcmFw", - "aERlZhI/Cg9mdW5jdGlvbl9ncmFwaHMYBCADKAsyJi50ZW5zb3JmbG93LlJ1", - "bk1ldGFkYXRhLkZ1bmN0aW9uR3JhcGhzGq0BCg5GdW5jdGlvbkdyYXBocxIu", - "ChBwYXJ0aXRpb25fZ3JhcGhzGAEgAygLMhQudGVuc29yZmxvdy5HcmFwaERl", - "ZhI0ChZwcmVfb3B0aW1pemF0aW9uX2dyYXBoGAIgASgLMhQudGVuc29yZmxv", - "dy5HcmFwaERlZhI1Chdwb3N0X29wdGltaXphdGlvbl9ncmFwaBgDIAEoCzIU", - "LnRlbnNvcmZsb3cuR3JhcGhEZWYiOgoQVGVuc29yQ29ubmVjdGlvbhITCgtm", - "cm9tX3RlbnNvchgBIAEoCRIRCgl0b190ZW5zb3IYAiABKAkisAMKD0NhbGxh", - "YmxlT3B0aW9ucxIMCgRmZWVkGAEgAygJEg0KBWZldGNoGAIgAygJEg4KBnRh", - "cmdldBgDIAMoCRIrCgtydW5fb3B0aW9ucxgEIAEoCzIWLnRlbnNvcmZsb3cu", - "UnVuT3B0aW9ucxI3ChF0ZW5zb3JfY29ubmVjdGlvbhgFIAMoCzIcLnRlbnNv", - "cmZsb3cuVGVuc29yQ29ubmVjdGlvbhJCCgxmZWVkX2RldmljZXMYBiADKAsy", - "LC50ZW5zb3JmbG93LkNhbGxhYmxlT3B0aW9ucy5GZWVkRGV2aWNlc0VudHJ5", - "EkQKDWZldGNoX2RldmljZXMYByADKAsyLS50ZW5zb3JmbG93LkNhbGxhYmxl", - "T3B0aW9ucy5GZXRjaERldmljZXNFbnRyeRIXCg9mZXRjaF9za2lwX3N5bmMY", - "CCABKAgaMgoQRmVlZERldmljZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFs", - "dWUYAiABKAk6AjgBGjMKEUZldGNoRGV2aWNlc0VudHJ5EgsKA2tleRgBIAEo", - "CRINCgV2YWx1ZRgCIAEoCToCOAFCawoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3", - "b3JrQgxDb25maWdQcm90b3NQAVo8Z2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl", - "bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVm+AEBYgZwcm90", - "bzM=")); + "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", + "cnNpb24YAiABKAMiyAoKC0NvbmZpZ1Byb3RvEj4KDGRldmljZV9jb3VudBgB", + "IAMoCzIoLnRlbnNvcmZsb3cuQ29uZmlnUHJvdG8uRGV2aWNlQ291bnRFbnRy", + "eRIkChxpbnRyYV9vcF9wYXJhbGxlbGlzbV90aHJlYWRzGAIgASgFEiQKHGlu", + "dGVyX29wX3BhcmFsbGVsaXNtX3RocmVhZHMYBSABKAUSHwoXdXNlX3Blcl9z", + "ZXNzaW9uX3RocmVhZHMYCSABKAgSRwocc2Vzc2lvbl9pbnRlcl9vcF90aHJl", + "YWRfcG9vbBgMIAMoCzIhLnRlbnNvcmZsb3cuVGhyZWFkUG9vbE9wdGlvblBy", + "b3RvEhgKEHBsYWNlbWVudF9wZXJpb2QYAyABKAUSFgoOZGV2aWNlX2ZpbHRl", + "cnMYBCADKAkSKwoLZ3B1X29wdGlvbnMYBiABKAsyFi50ZW5zb3JmbG93LkdQ", + "VU9wdGlvbnMSHAoUYWxsb3dfc29mdF9wbGFjZW1lbnQYByABKAgSHAoUbG9n", + "X2RldmljZV9wbGFjZW1lbnQYCCABKAgSLwoNZ3JhcGhfb3B0aW9ucxgKIAEo", + "CzIYLnRlbnNvcmZsb3cuR3JhcGhPcHRpb25zEh8KF29wZXJhdGlvbl90aW1l", + "b3V0X2luX21zGAsgASgDEisKC3JwY19vcHRpb25zGA0gASgLMhYudGVuc29y", + "Zmxvdy5SUENPcHRpb25zEisKC2NsdXN0ZXJfZGVmGA4gASgLMhYudGVuc29y", + "Zmxvdy5DbHVzdGVyRGVmEh0KFWlzb2xhdGVfc2Vzc2lvbl9zdGF0ZRgPIAEo", + "CBIoCiBzaGFyZV9jbHVzdGVyX2RldmljZXNfaW5fc2Vzc2lvbhgRIAEoCBI6", + "CgxleHBlcmltZW50YWwYECABKAsyJC50ZW5zb3JmbG93LkNvbmZpZ1Byb3Rv", + "LkV4cGVyaW1lbnRhbBoyChBEZXZpY2VDb3VudEVudHJ5EgsKA2tleRgBIAEo", + "CRINCgV2YWx1ZRgCIAEoBToCOAEawgQKDEV4cGVyaW1lbnRhbBIfChdjb2xs", + "ZWN0aXZlX2dyb3VwX2xlYWRlchgBIAEoCRIVCg1leGVjdXRvcl90eXBlGAMg", + "ASgJEhoKEnJlY3ZfYnVmX21heF9jaHVuaxgEIAEoBRIZChF1c2VfbnVtYV9h", + "ZmZpbml0eRgFIAEoCBI1Ci1jb2xsZWN0aXZlX2RldGVybWluaXN0aWNfc2Vx", + "dWVudGlhbF9leGVjdXRpb24YBiABKAgSFwoPY29sbGVjdGl2ZV9uY2NsGAcg", + "ASgIEjYKLnNoYXJlX3Nlc3Npb25fc3RhdGVfaW5fY2x1c3RlcnNwZWNfcHJv", + "cGFnYXRpb24YCCABKAgSHwoXZGlzYWJsZV90aHJlYWRfc3Bpbm5pbmcYCSAB", + "KAgSKAogc2hhcmVfY2x1c3Rlcl9kZXZpY2VzX2luX3Nlc3Npb24YCiABKAgS", + "NQoQc2Vzc2lvbl9tZXRhZGF0YRgLIAEoCzIbLnRlbnNvcmZsb3cuU2Vzc2lv", + "bk1ldGFkYXRhEiEKGW9wdGltaXplX2Zvcl9zdGF0aWNfZ3JhcGgYDCABKAgS", + "GgoSZW5hYmxlX21saXJfYnJpZGdlGA0gASgIEiYKHmVuYWJsZV9tbGlyX2dy", + "YXBoX29wdGltaXphdGlvbhgQIAEoCBInCh9kaXNhYmxlX291dHB1dF9wYXJ0", + "aXRpb25fZ3JhcGhzGA4gASgIEiMKG3hsYV9mdXNpb25fYXV0b3R1bmVyX3Ro", + "cmVzaBgPIAEoA0oECAIQAyLhBAoKUnVuT3B0aW9ucxI2Cgt0cmFjZV9sZXZl", + "bBgBIAEoDjIhLnRlbnNvcmZsb3cuUnVuT3B0aW9ucy5UcmFjZUxldmVsEhUK", + "DXRpbWVvdXRfaW5fbXMYAiABKAMSHAoUaW50ZXJfb3BfdGhyZWFkX3Bvb2wY", + "AyABKAUSHwoXb3V0cHV0X3BhcnRpdGlvbl9ncmFwaHMYBSABKAgSLwoNZGVi", + "dWdfb3B0aW9ucxgGIAEoCzIYLnRlbnNvcmZsb3cuRGVidWdPcHRpb25zEioK", + "InJlcG9ydF90ZW5zb3JfYWxsb2NhdGlvbnNfdXBvbl9vb20YByABKAgSOQoM", + "ZXhwZXJpbWVudGFsGAggASgLMiMudGVuc29yZmxvdy5SdW5PcHRpb25zLkV4", + "cGVyaW1lbnRhbBrSAQoMRXhwZXJpbWVudGFsEhwKFGNvbGxlY3RpdmVfZ3Jh", + "cGhfa2V5GAEgASgDEhwKFHVzZV9ydW5faGFuZGxlcl9wb29sGAIgASgIElsK", + "GHJ1bl9oYW5kbGVyX3Bvb2xfb3B0aW9ucxgDIAEoCzI5LnRlbnNvcmZsb3cu", + "UnVuT3B0aW9ucy5FeHBlcmltZW50YWwuUnVuSGFuZGxlclBvb2xPcHRpb25z", + "GikKFVJ1bkhhbmRsZXJQb29sT3B0aW9ucxIQCghwcmlvcml0eRgBIAEoAyJS", + "CgpUcmFjZUxldmVsEgwKCE5PX1RSQUNFEAASEgoOU09GVFdBUkVfVFJBQ0UQ", + "ARISCg5IQVJEV0FSRV9UUkFDRRACEg4KCkZVTExfVFJBQ0UQA0oECAQQBSKH", + "AwoLUnVuTWV0YWRhdGESKQoKc3RlcF9zdGF0cxgBIAEoCzIVLnRlbnNvcmZs", + "b3cuU3RlcFN0YXRzEiwKCmNvc3RfZ3JhcGgYAiABKAsyGC50ZW5zb3JmbG93", + "LkNvc3RHcmFwaERlZhIuChBwYXJ0aXRpb25fZ3JhcGhzGAMgAygLMhQudGVu", + "c29yZmxvdy5HcmFwaERlZhI/Cg9mdW5jdGlvbl9ncmFwaHMYBCADKAsyJi50", + "ZW5zb3JmbG93LlJ1bk1ldGFkYXRhLkZ1bmN0aW9uR3JhcGhzGq0BCg5GdW5j", + "dGlvbkdyYXBocxIuChBwYXJ0aXRpb25fZ3JhcGhzGAEgAygLMhQudGVuc29y", + "Zmxvdy5HcmFwaERlZhI0ChZwcmVfb3B0aW1pemF0aW9uX2dyYXBoGAIgASgL", + "MhQudGVuc29yZmxvdy5HcmFwaERlZhI1Chdwb3N0X29wdGltaXphdGlvbl9n", + "cmFwaBgDIAEoCzIULnRlbnNvcmZsb3cuR3JhcGhEZWYiOgoQVGVuc29yQ29u", + "bmVjdGlvbhITCgtmcm9tX3RlbnNvchgBIAEoCRIRCgl0b190ZW5zb3IYAiAB", + "KAkisAMKD0NhbGxhYmxlT3B0aW9ucxIMCgRmZWVkGAEgAygJEg0KBWZldGNo", + "GAIgAygJEg4KBnRhcmdldBgDIAMoCRIrCgtydW5fb3B0aW9ucxgEIAEoCzIW", + "LnRlbnNvcmZsb3cuUnVuT3B0aW9ucxI3ChF0ZW5zb3JfY29ubmVjdGlvbhgF", + "IAMoCzIcLnRlbnNvcmZsb3cuVGVuc29yQ29ubmVjdGlvbhJCCgxmZWVkX2Rl", + "dmljZXMYBiADKAsyLC50ZW5zb3JmbG93LkNhbGxhYmxlT3B0aW9ucy5GZWVk", + "RGV2aWNlc0VudHJ5EkQKDWZldGNoX2RldmljZXMYByADKAsyLS50ZW5zb3Jm", + "bG93LkNhbGxhYmxlT3B0aW9ucy5GZXRjaERldmljZXNFbnRyeRIXCg9mZXRj", + "aF9za2lwX3N5bmMYCCABKAgaMgoQRmVlZERldmljZXNFbnRyeRILCgNrZXkY", + "ASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjMKEUZldGNoRGV2aWNlc0VudHJ5", + "EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCdwoYb3JnLnRlbnNv", + "cmZsb3cuZnJhbWV3b3JrQgxDb25maWdQcm90b3NQAVpIZ2l0aHViLmNvbS90", + "ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVf", + "cHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); 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::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" }, 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" }, 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.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.RPCOptions), global::Tensorflow.RPCOptions.Parser, new[]{ "UseRpcForInprocessMaster", "CompressionAlgorithm", "CompressionLevel", "CacheRpcResponse", "DisableSessionConnectionSharing" }, 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", "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", "DisableOutputPartitionGraphs", "XlaFusionAutotunerThresh" }, 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" }, 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", "EnableMlirGraphOptimization", "DisableOutputPartitionGraphs", "XlaFusionAutotunerThresh" }, 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.TensorConnection), global::Tensorflow.TensorConnection.Parser, new[]{ "FromTensor", "ToTensor" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CallableOptions), global::Tensorflow.CallableOptions.Parser, new[]{ "Feed", "Fetch", "Target", "RunOptions", "TensorConnection", "FeedDevices", "FetchDevices", "FetchSkipSync" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, null, }) @@ -1022,6 +1027,7 @@ namespace Tensorflow { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public VirtualDevices(VirtualDevices other) : this() { memoryLimitMb_ = other.memoryLimitMb_.Clone(); + priority_ = other.priority_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -1050,6 +1056,28 @@ namespace Tensorflow { get { return memoryLimitMb_; } } + /// Field number for the "priority" field. + public const int PriorityFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_priority_codec + = pb::FieldCodec.ForInt32(18); + private readonly pbc::RepeatedField priority_ = new pbc::RepeatedField(); + /// + /// Priority values to use with the virtual devices. Use the cuda function + /// cudaDeviceGetStreamPriorityRange to query for valid range of values for + /// priority. + /// + /// On a P4000 GPU with cuda 10.1, the priority range reported was 0 for + /// least priority and -1 for greatest priority. + /// + /// If this field is not specified, then the virtual devices will be + /// created with the default. If this field has values set, then the size + /// of this must match with the above memory_limit_mb. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Priority { + get { return priority_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as VirtualDevices); @@ -1064,6 +1092,7 @@ namespace Tensorflow { return true; } if(!memoryLimitMb_.Equals(other.memoryLimitMb_)) return false; + if(!priority_.Equals(other.priority_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -1071,6 +1100,7 @@ namespace Tensorflow { public override int GetHashCode() { int hash = 1; hash ^= memoryLimitMb_.GetHashCode(); + hash ^= priority_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -1085,6 +1115,7 @@ namespace Tensorflow { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { memoryLimitMb_.WriteTo(output, _repeated_memoryLimitMb_codec); + priority_.WriteTo(output, _repeated_priority_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -1094,6 +1125,7 @@ namespace Tensorflow { public int CalculateSize() { int size = 0; size += memoryLimitMb_.CalculateSize(_repeated_memoryLimitMb_codec); + size += priority_.CalculateSize(_repeated_priority_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -1106,6 +1138,7 @@ namespace Tensorflow { return; } memoryLimitMb_.Add(other.memoryLimitMb_); + priority_.Add(other.priority_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -1122,6 +1155,11 @@ namespace Tensorflow { memoryLimitMb_.AddEntriesFrom(input, _repeated_memoryLimitMb_codec); break; } + case 18: + case 16: { + priority_.AddEntriesFrom(input, _repeated_priority_codec); + break; + } } } } @@ -2539,6 +2577,7 @@ namespace Tensorflow { rpcOptions_ = other.rpcOptions_ != null ? other.rpcOptions_.Clone() : null; clusterDef_ = other.clusterDef_ != null ? other.clusterDef_.Clone() : null; isolateSessionState_ = other.isolateSessionState_; + shareClusterDevicesInSession_ = other.shareClusterDevicesInSession_; experimental_ = other.experimental_ != null ? other.experimental_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -2571,6 +2610,17 @@ namespace Tensorflow { /// The execution of an individual op (for some op types) can be /// parallelized on a pool of intra_op_parallelism_threads. /// 0 means the system picks an appropriate number. + /// + /// If you create an ordinary session, e.g., from Python or C++, + /// then there is exactly one intra op thread pool per process. + /// The first session created determines the number of threads in this pool. + /// All subsequent sessions reuse/share this one global pool. + /// + /// There are notable exceptions to the default behavior describe above: + /// 1. There is an environment variable for overriding this thread pool, + /// named TF_OVERRIDE_GLOBAL_THREADPOOL. + /// 2. When connecting to a server, such as a remote `tf.train.Server` + /// instance, then this option will be ignored altogether. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public int IntraOpParallelismThreads { @@ -2808,6 +2858,23 @@ namespace Tensorflow { } } + /// Field number for the "share_cluster_devices_in_session" field. + public const int ShareClusterDevicesInSessionFieldNumber = 17; + private bool shareClusterDevicesInSession_; + /// + /// When true, WorkerSessions are created with device attributes from the + /// full cluster. + /// This is helpful when a worker wants to partition a graph + /// (for example during a PartitionedCallOp). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool ShareClusterDevicesInSession { + get { return shareClusterDevicesInSession_; } + set { + shareClusterDevicesInSession_ = value; + } + } + /// Field number for the "experimental" field. public const int ExperimentalFieldNumber = 16; private global::Tensorflow.ConfigProto.Types.Experimental experimental_; @@ -2847,6 +2914,7 @@ namespace Tensorflow { if (!object.Equals(RpcOptions, other.RpcOptions)) return false; if (!object.Equals(ClusterDef, other.ClusterDef)) return false; if (IsolateSessionState != other.IsolateSessionState) return false; + if (ShareClusterDevicesInSession != other.ShareClusterDevicesInSession) return false; if (!object.Equals(Experimental, other.Experimental)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -2869,6 +2937,7 @@ namespace Tensorflow { if (rpcOptions_ != null) hash ^= RpcOptions.GetHashCode(); if (clusterDef_ != null) hash ^= ClusterDef.GetHashCode(); if (IsolateSessionState != false) hash ^= IsolateSessionState.GetHashCode(); + if (ShareClusterDevicesInSession != false) hash ^= ShareClusterDevicesInSession.GetHashCode(); if (experimental_ != null) hash ^= Experimental.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -2938,6 +3007,10 @@ namespace Tensorflow { output.WriteRawTag(130, 1); output.WriteMessage(Experimental); } + if (ShareClusterDevicesInSession != false) { + output.WriteRawTag(136, 1); + output.WriteBool(ShareClusterDevicesInSession); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -2985,6 +3058,9 @@ namespace Tensorflow { if (IsolateSessionState != false) { size += 1 + 1; } + if (ShareClusterDevicesInSession != false) { + size += 2 + 1; + } if (experimental_ != null) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(Experimental); } @@ -3050,6 +3126,9 @@ namespace Tensorflow { if (other.IsolateSessionState != false) { IsolateSessionState = other.IsolateSessionState; } + if (other.ShareClusterDevicesInSession != false) { + ShareClusterDevicesInSession = other.ShareClusterDevicesInSession; + } if (other.experimental_ != null) { if (experimental_ == null) { Experimental = new global::Tensorflow.ConfigProto.Types.Experimental(); @@ -3146,6 +3225,10 @@ namespace Tensorflow { input.ReadMessage(Experimental); break; } + case 136: { + ShareClusterDevicesInSession = input.ReadBool(); + break; + } } } } @@ -3196,6 +3279,7 @@ namespace Tensorflow { sessionMetadata_ = other.sessionMetadata_ != null ? other.sessionMetadata_.Clone() : null; optimizeForStaticGraph_ = other.optimizeForStaticGraph_; enableMlirBridge_ = other.enableMlirBridge_; + enableMlirGraphOptimization_ = other.enableMlirGraphOptimization_; disableOutputPartitionGraphs_ = other.disableOutputPartitionGraphs_; xlaFusionAutotunerThresh_ = other.xlaFusionAutotunerThresh_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); @@ -3351,10 +3435,8 @@ namespace Tensorflow { public const int ShareClusterDevicesInSessionFieldNumber = 10; private bool shareClusterDevicesInSession_; /// - /// When true, WorkerSessions are created with device attributes from the - /// full cluster. - /// This is helpful when a worker wants to partition a graph - /// (for example during a PartitionedCallOp). + /// This was promoted to a non-experimental API. Please use + /// ConfigProto.share_cluster_devices_in_session instead. /// [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public bool ShareClusterDevicesInSession { @@ -3426,6 +3508,24 @@ namespace Tensorflow { } } + /// Field number for the "enable_mlir_graph_optimization" field. + public const int EnableMlirGraphOptimizationFieldNumber = 16; + private bool enableMlirGraphOptimization_; + /// + /// Whether to enable the MLIR-based Graph optimizations. + /// + /// This will become a part of standard Tensorflow graph optimization + /// pipeline, currently this is only used for gradual migration and testing + /// new passes that are replacing existing optimizations in Grappler. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool EnableMlirGraphOptimization { + get { return enableMlirGraphOptimization_; } + set { + enableMlirGraphOptimization_ = value; + } + } + /// Field number for the "disable_output_partition_graphs" field. public const int DisableOutputPartitionGraphsFieldNumber = 14; private bool disableOutputPartitionGraphs_; @@ -3487,6 +3587,7 @@ namespace Tensorflow { if (!object.Equals(SessionMetadata, other.SessionMetadata)) return false; if (OptimizeForStaticGraph != other.OptimizeForStaticGraph) return false; if (EnableMlirBridge != other.EnableMlirBridge) return false; + if (EnableMlirGraphOptimization != other.EnableMlirGraphOptimization) return false; if (DisableOutputPartitionGraphs != other.DisableOutputPartitionGraphs) return false; if (XlaFusionAutotunerThresh != other.XlaFusionAutotunerThresh) return false; return Equals(_unknownFields, other._unknownFields); @@ -3507,6 +3608,7 @@ namespace Tensorflow { if (sessionMetadata_ != null) hash ^= SessionMetadata.GetHashCode(); if (OptimizeForStaticGraph != false) hash ^= OptimizeForStaticGraph.GetHashCode(); if (EnableMlirBridge != false) hash ^= EnableMlirBridge.GetHashCode(); + if (EnableMlirGraphOptimization != false) hash ^= EnableMlirGraphOptimization.GetHashCode(); if (DisableOutputPartitionGraphs != false) hash ^= DisableOutputPartitionGraphs.GetHashCode(); if (XlaFusionAutotunerThresh != 0L) hash ^= XlaFusionAutotunerThresh.GetHashCode(); if (_unknownFields != null) { @@ -3578,6 +3680,10 @@ namespace Tensorflow { output.WriteRawTag(120); output.WriteInt64(XlaFusionAutotunerThresh); } + if (EnableMlirGraphOptimization != false) { + output.WriteRawTag(128, 1); + output.WriteBool(EnableMlirGraphOptimization); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -3622,6 +3728,9 @@ namespace Tensorflow { if (EnableMlirBridge != false) { size += 1 + 1; } + if (EnableMlirGraphOptimization != false) { + size += 2 + 1; + } if (DisableOutputPartitionGraphs != false) { size += 1 + 1; } @@ -3678,6 +3787,9 @@ namespace Tensorflow { if (other.EnableMlirBridge != false) { EnableMlirBridge = other.EnableMlirBridge; } + if (other.EnableMlirGraphOptimization != false) { + EnableMlirGraphOptimization = other.EnableMlirGraphOptimization; + } if (other.DisableOutputPartitionGraphs != false) { DisableOutputPartitionGraphs = other.DisableOutputPartitionGraphs; } @@ -3754,6 +3866,10 @@ namespace Tensorflow { XlaFusionAutotunerThresh = input.ReadInt64(); break; } + case 128: { + EnableMlirGraphOptimization = input.ReadBool(); + break; + } } } } @@ -4147,6 +4263,7 @@ namespace Tensorflow { public Experimental(Experimental other) : this() { collectiveGraphKey_ = other.collectiveGraphKey_; useRunHandlerPool_ = other.useRunHandlerPool_; + runHandlerPoolOptions_ = other.runHandlerPoolOptions_ != null ? other.runHandlerPoolOptions_.Clone() : null; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -4189,6 +4306,17 @@ namespace Tensorflow { } } + /// Field number for the "run_handler_pool_options" field. + public const int RunHandlerPoolOptionsFieldNumber = 3; + private global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions runHandlerPoolOptions_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions RunHandlerPoolOptions { + get { return runHandlerPoolOptions_; } + set { + runHandlerPoolOptions_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as Experimental); @@ -4204,6 +4332,7 @@ namespace Tensorflow { } if (CollectiveGraphKey != other.CollectiveGraphKey) return false; if (UseRunHandlerPool != other.UseRunHandlerPool) return false; + if (!object.Equals(RunHandlerPoolOptions, other.RunHandlerPoolOptions)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -4212,6 +4341,7 @@ namespace Tensorflow { int hash = 1; if (CollectiveGraphKey != 0L) hash ^= CollectiveGraphKey.GetHashCode(); if (UseRunHandlerPool != false) hash ^= UseRunHandlerPool.GetHashCode(); + if (runHandlerPoolOptions_ != null) hash ^= RunHandlerPoolOptions.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -4233,6 +4363,10 @@ namespace Tensorflow { output.WriteRawTag(16); output.WriteBool(UseRunHandlerPool); } + if (runHandlerPoolOptions_ != null) { + output.WriteRawTag(26); + output.WriteMessage(RunHandlerPoolOptions); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -4247,6 +4381,9 @@ namespace Tensorflow { if (UseRunHandlerPool != false) { size += 1 + 1; } + if (runHandlerPoolOptions_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(RunHandlerPoolOptions); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -4264,6 +4401,12 @@ namespace Tensorflow { if (other.UseRunHandlerPool != false) { UseRunHandlerPool = other.UseRunHandlerPool; } + if (other.runHandlerPoolOptions_ != null) { + if (runHandlerPoolOptions_ == null) { + RunHandlerPoolOptions = new global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions(); + } + RunHandlerPoolOptions.MergeFrom(other.RunHandlerPoolOptions); + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -4283,9 +4426,159 @@ namespace Tensorflow { UseRunHandlerPool = input.ReadBool(); break; } + case 26: { + if (runHandlerPoolOptions_ == null) { + RunHandlerPoolOptions = new global::Tensorflow.RunOptions.Types.Experimental.Types.RunHandlerPoolOptions(); + } + input.ReadMessage(RunHandlerPoolOptions); + break; + } + } + } + } + + #region Nested types + /// Container for nested types declared in the Experimental message type. + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static partial class Types { + /// + /// Options for run handler thread pool. + /// + public sealed partial class RunHandlerPoolOptions : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new RunHandlerPoolOptions()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tensorflow.RunOptions.Types.Experimental.Descriptor.NestedTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public RunHandlerPoolOptions() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public RunHandlerPoolOptions(RunHandlerPoolOptions other) : this() { + priority_ = other.priority_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public RunHandlerPoolOptions Clone() { + return new RunHandlerPoolOptions(this); + } + + /// Field number for the "priority" field. + public const int PriorityFieldNumber = 1; + private long priority_; + /// + /// Priority of the request. The run handler thread pool will schedule ops + /// based on the priority number. The larger number means higher priority. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long Priority { + get { return priority_; } + set { + priority_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as RunHandlerPoolOptions); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(RunHandlerPoolOptions other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Priority != other.Priority) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Priority != 0L) hash ^= Priority.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 (Priority != 0L) { + output.WriteRawTag(8); + output.WriteInt64(Priority); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Priority != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Priority); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(RunHandlerPoolOptions other) { + if (other == null) { + return; + } + if (other.Priority != 0L) { + Priority = other.Priority; + } + _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: { + Priority = input.ReadInt64(); + break; + } + } + } } + } + } + #endregion } diff --git a/src/TensorFlowNET.Core/Protobuf/ControlFlow.cs b/src/TensorFlowNET.Core/Protobuf/ControlFlow.cs index 1fb8c005..7bf29730 100644 --- a/src/TensorFlowNET.Core/Protobuf/ControlFlow.cs +++ b/src/TensorFlowNET.Core/Protobuf/ControlFlow.cs @@ -44,10 +44,10 @@ namespace Tensorflow { "X2VudGVyX25hbWVzGAogAygJEikKCnZhbHVlc19kZWYYCSABKAsyFS50ZW5z", "b3JmbG93LlZhbHVlc0RlZhIfChdtYXhpbXVtX2l0ZXJhdGlvbnNfbmFtZRgL", "IAEoCRI6Cg9uZXN0ZWRfY29udGV4dHMYDCADKAsyIS50ZW5zb3JmbG93LkNv", - "bnRyb2xGbG93Q29udGV4dERlZkJwChhvcmcudGVuc29yZmxvdy5mcmFtZXdv", - "cmtCEUNvbnRyb2xGbG93UHJvdG9zUAFaPGdpdGh1Yi5jb20vdGVuc29yZmxv", - "dy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1ZvgBAWIG", - "cHJvdG8z")); + "bnRyb2xGbG93Q29udGV4dERlZkJ8ChhvcmcudGVuc29yZmxvdy5mcmFtZXdv", + "cmtCEUNvbnRyb2xGbG93UHJvdG9zUAFaSGdpdGh1Yi5jb20vdGVuc29yZmxv", + "dy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9jb3JlX3Byb3Rvc19n", + "b19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/CostGraph.cs b/src/TensorFlowNET.Core/Protobuf/CostGraph.cs index fba4c65a..c3b91d8e 100644 --- a/src/TensorFlowNET.Core/Protobuf/CostGraph.cs +++ b/src/TensorFlowNET.Core/Protobuf/CostGraph.cs @@ -27,31 +27,35 @@ namespace Tensorflow { "Cip0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2Nvc3RfZ3JhcGgucHJvdG8S", "CnRlbnNvcmZsb3caLHRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvdGVuc29y", "X3NoYXBlLnByb3RvGiV0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3R5cGVz", - "LnByb3RvIuAFCgxDb3N0R3JhcGhEZWYSKwoEbm9kZRgBIAMoCzIdLnRlbnNv", - "cmZsb3cuQ29zdEdyYXBoRGVmLk5vZGUaogUKBE5vZGUSDAoEbmFtZRgBIAEo", - "CRIOCgZkZXZpY2UYAiABKAkSCgoCaWQYAyABKAUSOwoKaW5wdXRfaW5mbxgE", - "IAMoCzInLnRlbnNvcmZsb3cuQ29zdEdyYXBoRGVmLk5vZGUuSW5wdXRJbmZv", - "Ej0KC291dHB1dF9pbmZvGAUgAygLMigudGVuc29yZmxvdy5Db3N0R3JhcGhE", - "ZWYuTm9kZS5PdXRwdXRJbmZvEh0KFXRlbXBvcmFyeV9tZW1vcnlfc2l6ZRgG", - "IAEoAxIeChZwZXJzaXN0ZW50X21lbW9yeV9zaXplGAwgASgDEiEKFWhvc3Rf", - "dGVtcF9tZW1vcnlfc2l6ZRgKIAEoA0ICGAESIwoXZGV2aWNlX3RlbXBfbWVt", - "b3J5X3NpemUYCyABKANCAhgBEikKHWRldmljZV9wZXJzaXN0ZW50X21lbW9y", - "eV9zaXplGBAgASgDQgIYARIUCgxjb21wdXRlX2Nvc3QYCSABKAMSFAoMY29t", - "cHV0ZV90aW1lGA4gASgDEhMKC21lbW9yeV90aW1lGA8gASgDEhAKCGlzX2Zp", - "bmFsGAcgASgIEhUKDWNvbnRyb2xfaW5wdXQYCCADKAUSEgoKaW5hY2N1cmF0", - "ZRgRIAEoCBo7CglJbnB1dEluZm8SFgoOcHJlY2VkaW5nX25vZGUYASABKAUS", - "FgoOcHJlY2VkaW5nX3BvcnQYAiABKAUahgEKCk91dHB1dEluZm8SDAoEc2l6", - "ZRgBIAEoAxIYChBhbGlhc19pbnB1dF9wb3J0GAIgASgDEisKBXNoYXBlGAMg", - "ASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3RvEiMKBWR0eXBlGAQg", - "ASgOMhQudGVuc29yZmxvdy5EYXRhVHlwZUJvChhvcmcudGVuc29yZmxvdy5m", - "cmFtZXdvcmtCD0Nvc3RHcmFwaFByb3Rvc1ABWj1naXRodWIuY29tL3RlbnNv", - "cmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr", - "+AEBYgZwcm90bzM=")); + "LnByb3RvIsoGCgxDb3N0R3JhcGhEZWYSKwoEbm9kZRgBIAMoCzIdLnRlbnNv", + "cmZsb3cuQ29zdEdyYXBoRGVmLk5vZGUSNQoEY29zdBgCIAMoCzInLnRlbnNv", + "cmZsb3cuQ29zdEdyYXBoRGVmLkFnZ3JlZ2F0ZWRDb3N0GqIFCgROb2RlEgwK", + "BG5hbWUYASABKAkSDgoGZGV2aWNlGAIgASgJEgoKAmlkGAMgASgFEjsKCmlu", + "cHV0X2luZm8YBCADKAsyJy50ZW5zb3JmbG93LkNvc3RHcmFwaERlZi5Ob2Rl", + "LklucHV0SW5mbxI9CgtvdXRwdXRfaW5mbxgFIAMoCzIoLnRlbnNvcmZsb3cu", + "Q29zdEdyYXBoRGVmLk5vZGUuT3V0cHV0SW5mbxIdChV0ZW1wb3JhcnlfbWVt", + "b3J5X3NpemUYBiABKAMSHgoWcGVyc2lzdGVudF9tZW1vcnlfc2l6ZRgMIAEo", + "AxIhChVob3N0X3RlbXBfbWVtb3J5X3NpemUYCiABKANCAhgBEiMKF2Rldmlj", + "ZV90ZW1wX21lbW9yeV9zaXplGAsgASgDQgIYARIpCh1kZXZpY2VfcGVyc2lz", + "dGVudF9tZW1vcnlfc2l6ZRgQIAEoA0ICGAESFAoMY29tcHV0ZV9jb3N0GAkg", + "ASgDEhQKDGNvbXB1dGVfdGltZRgOIAEoAxITCgttZW1vcnlfdGltZRgPIAEo", + "AxIQCghpc19maW5hbBgHIAEoCBIVCg1jb250cm9sX2lucHV0GAggAygFEhIK", + "CmluYWNjdXJhdGUYESABKAgaOwoJSW5wdXRJbmZvEhYKDnByZWNlZGluZ19u", + "b2RlGAEgASgFEhYKDnByZWNlZGluZ19wb3J0GAIgASgFGoYBCgpPdXRwdXRJ", + "bmZvEgwKBHNpemUYASABKAMSGAoQYWxpYXNfaW5wdXRfcG9ydBgCIAEoAxIr", + "CgVzaGFwZRgDIAEoCzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90bxIj", + "CgVkdHlwZRgEIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUaMQoOQWdncmVn", + "YXRlZENvc3QSDAoEY29zdBgBIAEoAhIRCglkaW1lbnNpb24YAiABKAlCgwEK", + "GG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IPQ29zdEdyYXBoUHJvdG9zUAFa", + "UWdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cv", + "Z28vY29yZS9mcmFtZXdvcmsvY29zdF9ncmFwaF9nb19wcm90b/gBAWIGcHJv", + "dG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef), global::Tensorflow.CostGraphDef.Parser, new[]{ "Node" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node), global::Tensorflow.CostGraphDef.Types.Node.Parser, new[]{ "Name", "Device", "Id", "InputInfo", "OutputInfo", "TemporaryMemorySize", "PersistentMemorySize", "HostTempMemorySize", "DeviceTempMemorySize", "DevicePersistentMemorySize", "ComputeCost", "ComputeTime", "MemoryTime", "IsFinal", "ControlInput", "Inaccurate" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node.Types.InputInfo), global::Tensorflow.CostGraphDef.Types.Node.Types.InputInfo.Parser, new[]{ "PrecedingNode", "PrecedingPort" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node.Types.OutputInfo), global::Tensorflow.CostGraphDef.Types.Node.Types.OutputInfo.Parser, new[]{ "Size", "AliasInputPort", "Shape", "Dtype" }, null, null, null, null)})}) + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef), global::Tensorflow.CostGraphDef.Parser, new[]{ "Node", "Cost" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node), global::Tensorflow.CostGraphDef.Types.Node.Parser, new[]{ "Name", "Device", "Id", "InputInfo", "OutputInfo", "TemporaryMemorySize", "PersistentMemorySize", "HostTempMemorySize", "DeviceTempMemorySize", "DevicePersistentMemorySize", "ComputeCost", "ComputeTime", "MemoryTime", "IsFinal", "ControlInput", "Inaccurate" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node.Types.InputInfo), global::Tensorflow.CostGraphDef.Types.Node.Types.InputInfo.Parser, new[]{ "PrecedingNode", "PrecedingPort" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.Node.Types.OutputInfo), global::Tensorflow.CostGraphDef.Types.Node.Types.OutputInfo.Parser, new[]{ "Size", "AliasInputPort", "Shape", "Dtype" }, null, null, null, null)}), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CostGraphDef.Types.AggregatedCost), global::Tensorflow.CostGraphDef.Types.AggregatedCost.Parser, new[]{ "Cost", "Dimension" }, null, null, null, null)}) })); } #endregion @@ -84,6 +88,7 @@ namespace Tensorflow { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public CostGraphDef(CostGraphDef other) : this() { node_ = other.node_.Clone(); + cost_ = other.cost_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -102,6 +107,16 @@ namespace Tensorflow { get { return node_; } } + /// Field number for the "cost" field. + public const int CostFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_cost_codec + = pb::FieldCodec.ForMessage(18, global::Tensorflow.CostGraphDef.Types.AggregatedCost.Parser); + private readonly pbc::RepeatedField cost_ = new pbc::RepeatedField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Cost { + get { return cost_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as CostGraphDef); @@ -116,6 +131,7 @@ namespace Tensorflow { return true; } if(!node_.Equals(other.node_)) return false; + if(!cost_.Equals(other.cost_)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -123,6 +139,7 @@ namespace Tensorflow { public override int GetHashCode() { int hash = 1; hash ^= node_.GetHashCode(); + hash ^= cost_.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -137,6 +154,7 @@ namespace Tensorflow { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public void WriteTo(pb::CodedOutputStream output) { node_.WriteTo(output, _repeated_node_codec); + cost_.WriteTo(output, _repeated_cost_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -146,6 +164,7 @@ namespace Tensorflow { public int CalculateSize() { int size = 0; size += node_.CalculateSize(_repeated_node_codec); + size += cost_.CalculateSize(_repeated_cost_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -158,6 +177,7 @@ namespace Tensorflow { return; } node_.Add(other.node_); + cost_.Add(other.cost_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -173,6 +193,10 @@ namespace Tensorflow { node_.AddEntriesFrom(input, _repeated_node_codec); break; } + case 18: { + cost_.AddEntriesFrom(input, _repeated_cost_codec); + break; + } } } } @@ -1143,6 +1167,172 @@ namespace Tensorflow { } + /// + /// Total cost of this graph, typically used for balancing decisions. + /// + public sealed partial class AggregatedCost : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AggregatedCost()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tensorflow.CostGraphDef.Descriptor.NestedTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public AggregatedCost() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public AggregatedCost(AggregatedCost other) : this() { + cost_ = other.cost_; + dimension_ = other.dimension_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public AggregatedCost Clone() { + return new AggregatedCost(this); + } + + /// Field number for the "cost" field. + public const int CostFieldNumber = 1; + private float cost_; + /// + /// Aggregated cost value. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public float Cost { + get { return cost_; } + set { + cost_ = value; + } + } + + /// Field number for the "dimension" field. + public const int DimensionFieldNumber = 2; + private string dimension_ = ""; + /// + /// Aggregated cost dimension (e.g. 'memory', 'compute', 'network'). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Dimension { + get { return dimension_; } + set { + dimension_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as AggregatedCost); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(AggregatedCost other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Cost, other.Cost)) return false; + if (Dimension != other.Dimension) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Cost != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Cost); + if (Dimension.Length != 0) hash ^= Dimension.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 (Cost != 0F) { + output.WriteRawTag(13); + output.WriteFloat(Cost); + } + if (Dimension.Length != 0) { + output.WriteRawTag(18); + output.WriteString(Dimension); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Cost != 0F) { + size += 1 + 4; + } + if (Dimension.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Dimension); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(AggregatedCost other) { + if (other == null) { + return; + } + if (other.Cost != 0F) { + Cost = other.Cost; + } + if (other.Dimension.Length != 0) { + Dimension = other.Dimension; + } + _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 13: { + Cost = input.ReadFloat(); + break; + } + case 18: { + Dimension = input.ReadString(); + break; + } + } + } + } + + } + } #endregion diff --git a/src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs b/src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs index c6574895..a48a8d5e 100644 --- a/src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs +++ b/src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs @@ -41,10 +41,10 @@ namespace Tensorflow { "cHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult), global::Tensorflow.CppShapeInferenceResult.Parser, new[]{ "Shape", "HandleData" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType), global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType.Parser, new[]{ "Shape", "Dtype" }, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleData), global::Tensorflow.CppShapeInferenceResult.Types.HandleData.Parser, new[]{ "IsSet", "ShapeAndType" }, null, null, null)}), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceInputsNeeded), global::Tensorflow.CppShapeInferenceInputsNeeded.Parser, new[]{ "InputTensorsNeeded", "InputTensorsAsShapesNeeded" }, null, null, null) + 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" }, 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) })); } #endregion @@ -179,13 +179,13 @@ namespace Tensorflow { } if (other.shape_ != null) { if (shape_ == null) { - shape_ = new global::Tensorflow.TensorShapeProto(); + Shape = new global::Tensorflow.TensorShapeProto(); } Shape.MergeFrom(other.Shape); } if (other.handleData_ != null) { if (handleData_ == null) { - handleData_ = new global::Tensorflow.CppShapeInferenceResult.Types.HandleData(); + HandleData = new global::Tensorflow.CppShapeInferenceResult.Types.HandleData(); } HandleData.MergeFrom(other.HandleData); } @@ -202,16 +202,16 @@ namespace Tensorflow { break; case 10: { if (shape_ == null) { - shape_ = new global::Tensorflow.TensorShapeProto(); + Shape = new global::Tensorflow.TensorShapeProto(); } - input.ReadMessage(shape_); + input.ReadMessage(Shape); break; } case 34: { if (handleData_ == null) { - handleData_ = new global::Tensorflow.CppShapeInferenceResult.Types.HandleData(); + HandleData = new global::Tensorflow.CppShapeInferenceResult.Types.HandleData(); } - input.ReadMessage(handleData_); + input.ReadMessage(HandleData); break; } } @@ -270,7 +270,7 @@ namespace Tensorflow { /// Field number for the "dtype" field. public const int DtypeFieldNumber = 2; - private global::Tensorflow.DataType dtype_ = 0; + private global::Tensorflow.DataType dtype_ = global::Tensorflow.DataType.DtInvalid; [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public global::Tensorflow.DataType Dtype { get { return dtype_; } @@ -301,7 +301,7 @@ namespace Tensorflow { public override int GetHashCode() { int hash = 1; if (shape_ != null) hash ^= Shape.GetHashCode(); - if (Dtype != 0) hash ^= Dtype.GetHashCode(); + if (Dtype != global::Tensorflow.DataType.DtInvalid) hash ^= Dtype.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -319,7 +319,7 @@ namespace Tensorflow { output.WriteRawTag(10); output.WriteMessage(Shape); } - if (Dtype != 0) { + if (Dtype != global::Tensorflow.DataType.DtInvalid) { output.WriteRawTag(16); output.WriteEnum((int) Dtype); } @@ -334,7 +334,7 @@ namespace Tensorflow { if (shape_ != null) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Shape); } - if (Dtype != 0) { + if (Dtype != global::Tensorflow.DataType.DtInvalid) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype); } if (_unknownFields != null) { @@ -350,11 +350,11 @@ namespace Tensorflow { } if (other.shape_ != null) { if (shape_ == null) { - shape_ = new global::Tensorflow.TensorShapeProto(); + Shape = new global::Tensorflow.TensorShapeProto(); } Shape.MergeFrom(other.Shape); } - if (other.Dtype != 0) { + if (other.Dtype != global::Tensorflow.DataType.DtInvalid) { Dtype = other.Dtype; } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); @@ -370,13 +370,13 @@ namespace Tensorflow { break; case 10: { if (shape_ == null) { - shape_ = new global::Tensorflow.TensorShapeProto(); + Shape = new global::Tensorflow.TensorShapeProto(); } - input.ReadMessage(shape_); + input.ReadMessage(Shape); break; } case 16: { - dtype_ = (global::Tensorflow.DataType) input.ReadEnum(); + Dtype = (global::Tensorflow.DataType) input.ReadEnum(); break; } } diff --git a/src/TensorFlowNET.Core/Protobuf/Debug.cs b/src/TensorFlowNET.Core/Protobuf/Debug.cs index 885fcfab..cdd11ef5 100644 --- a/src/TensorFlowNET.Core/Protobuf/Debug.cs +++ b/src/TensorFlowNET.Core/Protobuf/Debug.cs @@ -35,9 +35,10 @@ namespace Tensorflow { "ASgJEhEKCWZpbGVfcGF0aBgCIAEoCRIVCg1sYXN0X21vZGlmaWVkGAMgASgD", "Eg0KBWJ5dGVzGAQgASgDEg0KBWxpbmVzGAUgAygJIksKE0RlYnVnZ2VkU291", "cmNlRmlsZXMSNAoMc291cmNlX2ZpbGVzGAEgAygLMh4udGVuc29yZmxvdy5E", - "ZWJ1Z2dlZFNvdXJjZUZpbGVCagoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr", - "QgtEZWJ1Z1Byb3Rvc1ABWjxnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29y", - "Zmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvcHJvdG9idWb4AQFiBnByb3RvMw==")); + "ZWJ1Z2dlZFNvdXJjZUZpbGVCdgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr", + "QgtEZWJ1Z1Byb3Rvc1ABWkhnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29y", + "Zmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvY29yZV9wcm90b3NfZ29fcHJvdG/4", + "AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/DeviceAttributes.cs b/src/TensorFlowNET.Core/Protobuf/DeviceAttributes.cs index 31e2ac34..ec0d7c84 100644 --- a/src/TensorFlowNET.Core/Protobuf/DeviceAttributes.cs +++ b/src/TensorFlowNET.Core/Protobuf/DeviceAttributes.cs @@ -34,10 +34,10 @@ namespace Tensorflow { "IAEoCRITCgtkZXZpY2VfdHlwZRgCIAEoCRIUCgxtZW1vcnlfbGltaXQYBCAB", "KAMSLAoIbG9jYWxpdHkYBSABKAsyGi50ZW5zb3JmbG93LkRldmljZUxvY2Fs", "aXR5EhMKC2luY2FybmF0aW9uGAYgASgGEhwKFHBoeXNpY2FsX2RldmljZV9k", - "ZXNjGAcgASgJQnYKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IWRGV2aWNl", - "QXR0cmlidXRlc1Byb3Rvc1ABWj1naXRodWIuY29tL3RlbnNvcmZsb3cvdGVu", - "c29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr+AEBYgZwcm90", - "bzM=")); + "ZXNjGAcgASgJQpEBChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCFkRldmlj", + "ZUF0dHJpYnV0ZXNQcm90b3NQAVpYZ2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl", + "bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay9kZXZpY2Vf", + "YXR0cmlidXRlc19nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Function.cs b/src/TensorFlowNET.Core/Protobuf/Function.cs index 7ca65b65..78665f0d 100644 --- a/src/TensorFlowNET.Core/Protobuf/Function.cs +++ b/src/TensorFlowNET.Core/Protobuf/Function.cs @@ -30,32 +30,36 @@ namespace Tensorflow { "cHJvdG8aJnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvb3BfZGVmLnByb3Rv", "ImoKEkZ1bmN0aW9uRGVmTGlicmFyeRIpCghmdW5jdGlvbhgBIAMoCzIXLnRl", "bnNvcmZsb3cuRnVuY3Rpb25EZWYSKQoIZ3JhZGllbnQYAiADKAsyFy50ZW5z", - "b3JmbG93LkdyYWRpZW50RGVmIrYFCgtGdW5jdGlvbkRlZhIkCglzaWduYXR1", + "b3JmbG93LkdyYWRpZW50RGVmIsQGCgtGdW5jdGlvbkRlZhIkCglzaWduYXR1", "cmUYASABKAsyES50ZW5zb3JmbG93Lk9wRGVmEi8KBGF0dHIYBSADKAsyIS50", "ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLkF0dHJFbnRyeRI2CghhcmdfYXR0chgH", - "IAMoCzIkLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0ckVudHJ5EiUK", - "CG5vZGVfZGVmGAMgAygLMhMudGVuc29yZmxvdy5Ob2RlRGVmEi0KA3JldBgE", - "IAMoCzIgLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuUmV0RW50cnkSPAoLY29u", - "dHJvbF9yZXQYBiADKAsyJy50ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLkNvbnRy", - "b2xSZXRFbnRyeRpCCglBdHRyRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVl", - "GAIgASgLMhUudGVuc29yZmxvdy5BdHRyVmFsdWU6AjgBGogBCghBcmdBdHRy", - "cxI4CgRhdHRyGAEgAygLMioudGVuc29yZmxvdy5GdW5jdGlvbkRlZi5BcmdB", - "dHRycy5BdHRyRW50cnkaQgoJQXR0ckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2", - "YWx1ZRgCIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4ARpQCgxBcmdB", - "dHRyRW50cnkSCwoDa2V5GAEgASgNEi8KBXZhbHVlGAIgASgLMiAudGVuc29y", - "Zmxvdy5GdW5jdGlvbkRlZi5BcmdBdHRyczoCOAEaKgoIUmV0RW50cnkSCwoD", - "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARoxCg9Db250cm9sUmV0RW50", - "cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUoECAIQAyI7CgtH", - "cmFkaWVudERlZhIVCg1mdW5jdGlvbl9uYW1lGAEgASgJEhUKDWdyYWRpZW50", - "X2Z1bmMYAiABKAlCbgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQg5GdW5j", - "dGlvblByb3Rvc1ABWj1naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxv", - "dy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr+AEBYgZwcm90bzM=")); + "IAMoCzIkLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0ckVudHJ5ElAK", + "FnJlc291cmNlX2FyZ191bmlxdWVfaWQYCCADKAsyMC50ZW5zb3JmbG93LkZ1", + "bmN0aW9uRGVmLlJlc291cmNlQXJnVW5pcXVlSWRFbnRyeRIlCghub2RlX2Rl", + "ZhgDIAMoCzITLnRlbnNvcmZsb3cuTm9kZURlZhItCgNyZXQYBCADKAsyIC50", + "ZW5zb3JmbG93LkZ1bmN0aW9uRGVmLlJldEVudHJ5EjwKC2NvbnRyb2xfcmV0", + "GAYgAygLMicudGVuc29yZmxvdy5GdW5jdGlvbkRlZi5Db250cm9sUmV0RW50", + "cnkaQgoJQXR0ckVudHJ5EgsKA2tleRgBIAEoCRIkCgV2YWx1ZRgCIAEoCzIV", + "LnRlbnNvcmZsb3cuQXR0clZhbHVlOgI4ARqIAQoIQXJnQXR0cnMSOAoEYXR0", + "chgBIAMoCzIqLnRlbnNvcmZsb3cuRnVuY3Rpb25EZWYuQXJnQXR0cnMuQXR0", + "ckVudHJ5GkIKCUF0dHJFbnRyeRILCgNrZXkYASABKAkSJAoFdmFsdWUYAiAB", + "KAsyFS50ZW5zb3JmbG93LkF0dHJWYWx1ZToCOAEaUAoMQXJnQXR0ckVudHJ5", + "EgsKA2tleRgBIAEoDRIvCgV2YWx1ZRgCIAEoCzIgLnRlbnNvcmZsb3cuRnVu", + "Y3Rpb25EZWYuQXJnQXR0cnM6AjgBGjoKGFJlc291cmNlQXJnVW5pcXVlSWRF", + "bnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGioKCFJldEVu", + "dHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEaMQoPQ29udHJv", + "bFJldEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgC", + "EAMiOwoLR3JhZGllbnREZWYSFQoNZnVuY3Rpb25fbmFtZRgBIAEoCRIVCg1n", + "cmFkaWVudF9mdW5jGAIgASgJQoABChhvcmcudGVuc29yZmxvdy5mcmFtZXdv", + "cmtCDkZ1bmN0aW9uUHJvdG9zUAFaT2dpdGh1Yi5jb20vdGVuc29yZmxvdy90", + "ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmsvZnVuY3Rp", + "b25fZ29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, 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(typeof(global::Tensorflow.FunctionDefLibrary), global::Tensorflow.FunctionDefLibrary.Parser, new[]{ "Function", "Gradient" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionDef), global::Tensorflow.FunctionDef.Parser, new[]{ "Signature", "Attr", "ArgAttr", "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, }), + 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, }), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GradientDef), global::Tensorflow.GradientDef.Parser, new[]{ "FunctionName", "GradientFunc" }, null, null, null, null) })); } @@ -243,6 +247,7 @@ namespace Tensorflow { signature_ = other.signature_ != null ? other.signature_.Clone() : null; attr_ = other.attr_.Clone(); argAttr_ = other.argAttr_.Clone(); + resourceArgUniqueId_ = other.resourceArgUniqueId_.Clone(); nodeDef_ = other.nodeDef_.Clone(); ret_ = other.ret_.Clone(); controlRet_ = other.controlRet_.Clone(); @@ -292,6 +297,27 @@ namespace Tensorflow { get { return argAttr_; } } + /// Field number for the "resource_arg_unique_id" field. + public const int ResourceArgUniqueIdFieldNumber = 8; + private static readonly pbc::MapField.Codec _map_resourceArgUniqueId_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForUInt32(8, 0), pb::FieldCodec.ForUInt32(16, 0), 66); + private readonly pbc::MapField resourceArgUniqueId_ = new pbc::MapField(); + /// + /// Unique IDs for each resource argument, used to track aliasing resources. If + /// Argument A and Argument B alias each other, then + /// resource_arg_unique_ids[A.index] == resource_arg_unique_ids[B.index]. + /// + /// If this field is empty, none of the arguments could alias; otherwise, every + /// resource argument should have an entry in this field. + /// + /// When instantiated, the unique IDs will be attached to the _Arg nodes' + /// "_resource_arg_unique_id" attribute. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField ResourceArgUniqueId { + get { return resourceArgUniqueId_; } + } + /// Field number for the "node_def" field. public const int NodeDefFieldNumber = 3; private static readonly pb::FieldCodec _repeated_nodeDef_codec @@ -351,6 +377,7 @@ namespace Tensorflow { if (!object.Equals(Signature, other.Signature)) return false; if (!Attr.Equals(other.Attr)) return false; if (!ArgAttr.Equals(other.ArgAttr)) return false; + if (!ResourceArgUniqueId.Equals(other.ResourceArgUniqueId)) return false; if(!nodeDef_.Equals(other.nodeDef_)) return false; if (!Ret.Equals(other.Ret)) return false; if (!ControlRet.Equals(other.ControlRet)) return false; @@ -363,6 +390,7 @@ namespace Tensorflow { if (signature_ != null) hash ^= Signature.GetHashCode(); hash ^= Attr.GetHashCode(); hash ^= ArgAttr.GetHashCode(); + hash ^= ResourceArgUniqueId.GetHashCode(); hash ^= nodeDef_.GetHashCode(); hash ^= Ret.GetHashCode(); hash ^= ControlRet.GetHashCode(); @@ -388,6 +416,7 @@ namespace Tensorflow { attr_.WriteTo(output, _map_attr_codec); controlRet_.WriteTo(output, _map_controlRet_codec); argAttr_.WriteTo(output, _map_argAttr_codec); + resourceArgUniqueId_.WriteTo(output, _map_resourceArgUniqueId_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -401,6 +430,7 @@ namespace Tensorflow { } size += attr_.CalculateSize(_map_attr_codec); size += argAttr_.CalculateSize(_map_argAttr_codec); + size += resourceArgUniqueId_.CalculateSize(_map_resourceArgUniqueId_codec); size += nodeDef_.CalculateSize(_repeated_nodeDef_codec); size += ret_.CalculateSize(_map_ret_codec); size += controlRet_.CalculateSize(_map_controlRet_codec); @@ -423,6 +453,7 @@ namespace Tensorflow { } attr_.Add(other.attr_); argAttr_.Add(other.argAttr_); + resourceArgUniqueId_.Add(other.resourceArgUniqueId_); nodeDef_.Add(other.nodeDef_); ret_.Add(other.ret_); controlRet_.Add(other.controlRet_); @@ -464,6 +495,10 @@ namespace Tensorflow { argAttr_.AddEntriesFrom(input, _map_argAttr_codec); break; } + case 66: { + resourceArgUniqueId_.AddEntriesFrom(input, _map_resourceArgUniqueId_codec); + break; + } } } } diff --git a/src/TensorFlowNET.Core/Protobuf/Gen.bat b/src/TensorFlowNET.Core/Protobuf/Gen.bat index ad2acc36..745235af 100644 --- a/src/TensorFlowNET.Core/Protobuf/Gen.bat +++ b/src/TensorFlowNET.Core/Protobuf/Gen.bat @@ -1,6 +1,6 @@ @ECHO OFF -set SRC_DIR=D:/SciSharp/tensorflow +set SRC_DIR=D:/SciSharp/tensorflow-google set DST_DIR=D:/SciSharp/TensorFlow.NET/src/TensorFlowNET.Core/Protobuf protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/core/framework/resource_handle.proto @@ -39,5 +39,6 @@ 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/util/event.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 PAUSE \ No newline at end of file diff --git a/src/TensorFlowNET.Core/Protobuf/Graph.cs b/src/TensorFlowNET.Core/Protobuf/Graph.cs index 2d5613c8..fb66636b 100644 --- a/src/TensorFlowNET.Core/Protobuf/Graph.cs +++ b/src/TensorFlowNET.Core/Protobuf/Graph.cs @@ -25,18 +25,18 @@ namespace Tensorflow { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CiV0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2dyYXBoLnByb3RvEgp0ZW5z", - "b3JmbG93Gih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL25vZGVfZGVmLnBy", - "b3RvGih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2Z1bmN0aW9uLnByb3Rv", + "b3JmbG93Gih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL2Z1bmN0aW9uLnBy", + "b3RvGih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL25vZGVfZGVmLnByb3Rv", "Gih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3ZlcnNpb25zLnByb3RvIp0B", "CghHcmFwaERlZhIhCgRub2RlGAEgAygLMhMudGVuc29yZmxvdy5Ob2RlRGVm", "EigKCHZlcnNpb25zGAQgASgLMhYudGVuc29yZmxvdy5WZXJzaW9uRGVmEhMK", "B3ZlcnNpb24YAyABKAVCAhgBEi8KB2xpYnJhcnkYAiABKAsyHi50ZW5zb3Jm", - "bG93LkZ1bmN0aW9uRGVmTGlicmFyeUJrChhvcmcudGVuc29yZmxvdy5mcmFt", - "ZXdvcmtCC0dyYXBoUHJvdG9zUAFaPWdpdGh1Yi5jb20vdGVuc29yZmxvdy90", - "ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmv4AQFiBnBy", - "b3RvMw==")); + "bG93LkZ1bmN0aW9uRGVmTGlicmFyeUJ6ChhvcmcudGVuc29yZmxvdy5mcmFt", + "ZXdvcmtCC0dyYXBoUHJvdG9zUAFaTGdpdGh1Yi5jb20vdGVuc29yZmxvdy90", + "ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmsvZ3JhcGhf", + "Z29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tensorflow.NodeDefReflection.Descriptor, global::Tensorflow.FunctionReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Tensorflow.FunctionReflection.Descriptor, global::Tensorflow.NodeDefReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.GraphDef), global::Tensorflow.GraphDef.Parser, new[]{ "Node", "Versions", "Version", "Library" }, null, null, null, null) })); diff --git a/src/TensorFlowNET.Core/Protobuf/GraphTransferInfo.cs b/src/TensorFlowNET.Core/Protobuf/GraphTransferInfo.cs index da76380e..7094e625 100644 --- a/src/TensorFlowNET.Core/Protobuf/GraphTransferInfo.cs +++ b/src/TensorFlowNET.Core/Protobuf/GraphTransferInfo.cs @@ -54,10 +54,10 @@ namespace Tensorflow { "ZW5zb3JmbG93LkdyYXBoVHJhbnNmZXJHcmFwaE91dHB1dE5vZGVJbmZvEj4K", "C2Rlc3RpbmF0aW9uGAcgASgOMikudGVuc29yZmxvdy5HcmFwaFRyYW5zZmVy", "SW5mby5EZXN0aW5hdGlvbiIjCgtEZXN0aW5hdGlvbhIHCgNOT1AQABILCgdI", - "RVhBR09OEAFCdgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQhZHcmFwaFRy", - "YW5zZmVySW5mb1Byb3RvUAFaPWdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z", - "b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmv4AQFiBnByb3Rv", - "Mw==")); + "RVhBR09OEAFCkwEKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IWR3JhcGhU", + "cmFuc2ZlckluZm9Qcm90b1ABWlpnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVu", + "c29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL2dyYXBoX3Ry", + "YW5zZmVyX2luZm9fZ29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/KernelDef.cs b/src/TensorFlowNET.Core/Protobuf/KernelDef.cs index 456f76bf..b5ec6882 100644 --- a/src/TensorFlowNET.Core/Protobuf/KernelDef.cs +++ b/src/TensorFlowNET.Core/Protobuf/KernelDef.cs @@ -32,10 +32,10 @@ namespace Tensorflow { "BCADKAkSDQoFbGFiZWwYBSABKAkSEAoIcHJpb3JpdHkYBiABKAUaTQoOQXR0", "ckNvbnN0cmFpbnQSDAoEbmFtZRgBIAEoCRItCg5hbGxvd2VkX3ZhbHVlcxgC", "IAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlIjMKCktlcm5lbExpc3QSJQoG", - "a2VybmVsGAEgAygLMhUudGVuc29yZmxvdy5LZXJuZWxEZWZCbwoYb3JnLnRl", - "bnNvcmZsb3cuZnJhbWV3b3JrQg9LZXJuZWxEZWZQcm90b3NQAVo9Z2l0aHVi", - "LmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3Jl", - "L2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "a2VybmVsGAEgAygLMhUudGVuc29yZmxvdy5LZXJuZWxEZWZCgwEKGG9yZy50", + "ZW5zb3JmbG93LmZyYW1ld29ya0IPS2VybmVsRGVmUHJvdG9zUAFaUWdpdGh1", + "Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29y", + "ZS9mcmFtZXdvcmsva2VybmVsX2RlZl9nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/LogMemory.cs b/src/TensorFlowNET.Core/Protobuf/LogMemory.cs index 30137bed..eb68b53a 100644 --- a/src/TensorFlowNET.Core/Protobuf/LogMemory.cs +++ b/src/TensorFlowNET.Core/Protobuf/LogMemory.cs @@ -40,10 +40,10 @@ namespace Tensorflow { "aWQYBSABKAMSFgoOYWxsb2NhdG9yX25hbWUYBiABKAkifwoYTWVtb3J5TG9n", "UmF3RGVhbGxvY2F0aW9uEg8KB3N0ZXBfaWQYASABKAMSEQoJb3BlcmF0aW9u", "GAIgASgJEhUKDWFsbG9jYXRpb25faWQYAyABKAMSFgoOYWxsb2NhdG9yX25h", - "bWUYBCABKAkSEAoIZGVmZXJyZWQYBSABKAhCbwoYb3JnLnRlbnNvcmZsb3cu", - "ZnJhbWV3b3JrQg9Mb2dNZW1vcnlQcm90b3NQAVo9Z2l0aHViLmNvbS90ZW5z", - "b3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2ZyYW1ld29y", - "a/gBAWIGcHJvdG8z")); + "bWUYBCABKAkSEAoIZGVmZXJyZWQYBSABKAhCgwEKGG9yZy50ZW5zb3JmbG93", + "LmZyYW1ld29ya0IPTG9nTWVtb3J5UHJvdG9zUAFaUWdpdGh1Yi5jb20vdGVu", + "c29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdv", + "cmsvbG9nX21lbW9yeV9nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TensorDescriptionReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/MetaGraph.cs b/src/TensorFlowNET.Core/Protobuf/MetaGraph.cs index b5403d2e..6da24408 100644 --- a/src/TensorFlowNET.Core/Protobuf/MetaGraph.cs +++ b/src/TensorFlowNET.Core/Protobuf/MetaGraph.cs @@ -32,7 +32,7 @@ namespace Tensorflow { "ZnJhbWV3b3JrL3R5cGVzLnByb3RvGjF0ZW5zb3JmbG93L2NvcmUvcHJvdG9i", "dWYvc2F2ZWRfb2JqZWN0X2dyYXBoLnByb3RvGiR0ZW5zb3JmbG93L2NvcmUv", "cHJvdG9idWYvc2F2ZXIucHJvdG8aJXRlbnNvcmZsb3cvY29yZS9wcm90b2J1", - "Zi9zdHJ1Y3QucHJvdG8imwYKDE1ldGFHcmFwaERlZhI7Cg1tZXRhX2luZm9f", + "Zi9zdHJ1Y3QucHJvdG8iqAcKDE1ldGFHcmFwaERlZhI7Cg1tZXRhX2luZm9f", "ZGVmGAEgASgLMiQudGVuc29yZmxvdy5NZXRhR3JhcGhEZWYuTWV0YUluZm9E", "ZWYSJwoJZ3JhcGhfZGVmGAIgASgLMhQudGVuc29yZmxvdy5HcmFwaERlZhIn", "CglzYXZlcl9kZWYYAyABKAsyFC50ZW5zb3JmbG93LlNhdmVyRGVmEkMKDmNv", @@ -41,52 +41,55 @@ namespace Tensorflow { "ZW5zb3JmbG93Lk1ldGFHcmFwaERlZi5TaWduYXR1cmVEZWZFbnRyeRIwCg5h", "c3NldF9maWxlX2RlZhgGIAMoCzIYLnRlbnNvcmZsb3cuQXNzZXRGaWxlRGVm", "EjYKEG9iamVjdF9ncmFwaF9kZWYYByABKAsyHC50ZW5zb3JmbG93LlNhdmVk", - "T2JqZWN0R3JhcGga6QEKC01ldGFJbmZvRGVmEhoKEm1ldGFfZ3JhcGhfdmVy", + "T2JqZWN0R3JhcGga9gIKC01ldGFJbmZvRGVmEhoKEm1ldGFfZ3JhcGhfdmVy", "c2lvbhgBIAEoCRIsChBzdHJpcHBlZF9vcF9saXN0GAIgASgLMhIudGVuc29y", "Zmxvdy5PcExpc3QSJgoIYW55X2luZm8YAyABKAsyFC5nb29nbGUucHJvdG9i", "dWYuQW55EgwKBHRhZ3MYBCADKAkSGgoSdGVuc29yZmxvd192ZXJzaW9uGAUg", "ASgJEh4KFnRlbnNvcmZsb3dfZ2l0X3ZlcnNpb24YBiABKAkSHgoWc3RyaXBw", - "ZWRfZGVmYXVsdF9hdHRycxgHIAEoCBpPChJDb2xsZWN0aW9uRGVmRW50cnkS", - "CwoDa2V5GAEgASgJEigKBXZhbHVlGAIgASgLMhkudGVuc29yZmxvdy5Db2xs", - "ZWN0aW9uRGVmOgI4ARpNChFTaWduYXR1cmVEZWZFbnRyeRILCgNrZXkYASAB", - "KAkSJwoFdmFsdWUYAiABKAsyGC50ZW5zb3JmbG93LlNpZ25hdHVyZURlZjoC", - "OAEi3wMKDUNvbGxlY3Rpb25EZWYSNwoJbm9kZV9saXN0GAEgASgLMiIudGVu", - "c29yZmxvdy5Db2xsZWN0aW9uRGVmLk5vZGVMaXN0SAASOQoKYnl0ZXNfbGlz", - "dBgCIAEoCzIjLnRlbnNvcmZsb3cuQ29sbGVjdGlvbkRlZi5CeXRlc0xpc3RI", - "ABI5CgppbnQ2NF9saXN0GAMgASgLMiMudGVuc29yZmxvdy5Db2xsZWN0aW9u", - "RGVmLkludDY0TGlzdEgAEjkKCmZsb2F0X2xpc3QYBCABKAsyIy50ZW5zb3Jm", - "bG93LkNvbGxlY3Rpb25EZWYuRmxvYXRMaXN0SAASNQoIYW55X2xpc3QYBSAB", - "KAsyIS50ZW5zb3JmbG93LkNvbGxlY3Rpb25EZWYuQW55TGlzdEgAGhkKCE5v", - "ZGVMaXN0Eg0KBXZhbHVlGAEgAygJGhoKCUJ5dGVzTGlzdBINCgV2YWx1ZRgB", - "IAMoDBoeCglJbnQ2NExpc3QSEQoFdmFsdWUYASADKANCAhABGh4KCUZsb2F0", - "TGlzdBIRCgV2YWx1ZRgBIAMoAkICEAEaLgoHQW55TGlzdBIjCgV2YWx1ZRgB", - "IAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlCBgoEa2luZCLRAwoKVGVuc29y", - "SW5mbxIOCgRuYW1lGAEgASgJSAASNgoKY29vX3NwYXJzZRgEIAEoCzIgLnRl", - "bnNvcmZsb3cuVGVuc29ySW5mby5Db29TcGFyc2VIABJCChBjb21wb3NpdGVf", - "dGVuc29yGAUgASgLMiYudGVuc29yZmxvdy5UZW5zb3JJbmZvLkNvbXBvc2l0", - "ZVRlbnNvckgAEiMKBWR0eXBlGAIgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw", - "ZRIyCgx0ZW5zb3Jfc2hhcGUYAyABKAsyHC50ZW5zb3JmbG93LlRlbnNvclNo", - "YXBlUHJvdG8aZQoJQ29vU3BhcnNlEhoKEnZhbHVlc190ZW5zb3JfbmFtZRgB", - "IAEoCRIbChNpbmRpY2VzX3RlbnNvcl9uYW1lGAIgASgJEh8KF2RlbnNlX3No", - "YXBlX3RlbnNvcl9uYW1lGAMgASgJGmsKD0NvbXBvc2l0ZVRlbnNvchIsCgl0", - "eXBlX3NwZWMYASABKAsyGS50ZW5zb3JmbG93LlR5cGVTcGVjUHJvdG8SKgoK", - "Y29tcG9uZW50cxgCIAMoCzIWLnRlbnNvcmZsb3cuVGVuc29ySW5mb0IKCghl", - "bmNvZGluZyKgAgoMU2lnbmF0dXJlRGVmEjQKBmlucHV0cxgBIAMoCzIkLnRl", - "bnNvcmZsb3cuU2lnbmF0dXJlRGVmLklucHV0c0VudHJ5EjYKB291dHB1dHMY", - "AiADKAsyJS50ZW5zb3JmbG93LlNpZ25hdHVyZURlZi5PdXRwdXRzRW50cnkS", - "EwoLbWV0aG9kX25hbWUYAyABKAkaRQoLSW5wdXRzRW50cnkSCwoDa2V5GAEg", - "ASgJEiUKBXZhbHVlGAIgASgLMhYudGVuc29yZmxvdy5UZW5zb3JJbmZvOgI4", - "ARpGCgxPdXRwdXRzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgL", - "MhYudGVuc29yZmxvdy5UZW5zb3JJbmZvOgI4ASJNCgxBc3NldEZpbGVEZWYS", - "KwoLdGVuc29yX2luZm8YASABKAsyFi50ZW5zb3JmbG93LlRlbnNvckluZm8S", - "EAoIZmlsZW5hbWUYAiABKAlCbgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr", - "Qg9NZXRhR3JhcGhQcm90b3NQAVo8Z2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl", - "bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVm+AEBYgZwcm90", - "bzM=")); + "ZWRfZGVmYXVsdF9hdHRycxgHIAEoCBJTChBmdW5jdGlvbl9hbGlhc2VzGAgg", + "AygLMjkudGVuc29yZmxvdy5NZXRhR3JhcGhEZWYuTWV0YUluZm9EZWYuRnVu", + "Y3Rpb25BbGlhc2VzRW50cnkaNgoURnVuY3Rpb25BbGlhc2VzRW50cnkSCwoD", + "a2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARpPChJDb2xsZWN0aW9uRGVm", + "RW50cnkSCwoDa2V5GAEgASgJEigKBXZhbHVlGAIgASgLMhkudGVuc29yZmxv", + "dy5Db2xsZWN0aW9uRGVmOgI4ARpNChFTaWduYXR1cmVEZWZFbnRyeRILCgNr", + "ZXkYASABKAkSJwoFdmFsdWUYAiABKAsyGC50ZW5zb3JmbG93LlNpZ25hdHVy", + "ZURlZjoCOAEi3wMKDUNvbGxlY3Rpb25EZWYSNwoJbm9kZV9saXN0GAEgASgL", + "MiIudGVuc29yZmxvdy5Db2xsZWN0aW9uRGVmLk5vZGVMaXN0SAASOQoKYnl0", + "ZXNfbGlzdBgCIAEoCzIjLnRlbnNvcmZsb3cuQ29sbGVjdGlvbkRlZi5CeXRl", + "c0xpc3RIABI5CgppbnQ2NF9saXN0GAMgASgLMiMudGVuc29yZmxvdy5Db2xs", + "ZWN0aW9uRGVmLkludDY0TGlzdEgAEjkKCmZsb2F0X2xpc3QYBCABKAsyIy50", + "ZW5zb3JmbG93LkNvbGxlY3Rpb25EZWYuRmxvYXRMaXN0SAASNQoIYW55X2xp", + "c3QYBSABKAsyIS50ZW5zb3JmbG93LkNvbGxlY3Rpb25EZWYuQW55TGlzdEgA", + "GhkKCE5vZGVMaXN0Eg0KBXZhbHVlGAEgAygJGhoKCUJ5dGVzTGlzdBINCgV2", + "YWx1ZRgBIAMoDBoeCglJbnQ2NExpc3QSEQoFdmFsdWUYASADKANCAhABGh4K", + "CUZsb2F0TGlzdBIRCgV2YWx1ZRgBIAMoAkICEAEaLgoHQW55TGlzdBIjCgV2", + "YWx1ZRgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlCBgoEa2luZCLRAwoK", + "VGVuc29ySW5mbxIOCgRuYW1lGAEgASgJSAASNgoKY29vX3NwYXJzZRgEIAEo", + "CzIgLnRlbnNvcmZsb3cuVGVuc29ySW5mby5Db29TcGFyc2VIABJCChBjb21w", + "b3NpdGVfdGVuc29yGAUgASgLMiYudGVuc29yZmxvdy5UZW5zb3JJbmZvLkNv", + "bXBvc2l0ZVRlbnNvckgAEiMKBWR0eXBlGAIgASgOMhQudGVuc29yZmxvdy5E", + "YXRhVHlwZRIyCgx0ZW5zb3Jfc2hhcGUYAyABKAsyHC50ZW5zb3JmbG93LlRl", + "bnNvclNoYXBlUHJvdG8aZQoJQ29vU3BhcnNlEhoKEnZhbHVlc190ZW5zb3Jf", + "bmFtZRgBIAEoCRIbChNpbmRpY2VzX3RlbnNvcl9uYW1lGAIgASgJEh8KF2Rl", + "bnNlX3NoYXBlX3RlbnNvcl9uYW1lGAMgASgJGmsKD0NvbXBvc2l0ZVRlbnNv", + "chIsCgl0eXBlX3NwZWMYASABKAsyGS50ZW5zb3JmbG93LlR5cGVTcGVjUHJv", + "dG8SKgoKY29tcG9uZW50cxgCIAMoCzIWLnRlbnNvcmZsb3cuVGVuc29ySW5m", + "b0IKCghlbmNvZGluZyKgAgoMU2lnbmF0dXJlRGVmEjQKBmlucHV0cxgBIAMo", + "CzIkLnRlbnNvcmZsb3cuU2lnbmF0dXJlRGVmLklucHV0c0VudHJ5EjYKB291", + "dHB1dHMYAiADKAsyJS50ZW5zb3JmbG93LlNpZ25hdHVyZURlZi5PdXRwdXRz", + "RW50cnkSEwoLbWV0aG9kX25hbWUYAyABKAkaRQoLSW5wdXRzRW50cnkSCwoD", + "a2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYudGVuc29yZmxvdy5UZW5zb3JJ", + "bmZvOgI4ARpGCgxPdXRwdXRzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVl", + "GAIgASgLMhYudGVuc29yZmxvdy5UZW5zb3JJbmZvOgI4ASJNCgxBc3NldEZp", + "bGVEZWYSKwoLdGVuc29yX2luZm8YASABKAsyFi50ZW5zb3JmbG93LlRlbnNv", + "ckluZm8SEAoIZmlsZW5hbWUYAiABKAlCegoYb3JnLnRlbnNvcmZsb3cuZnJh", + "bWV3b3JrQg9NZXRhR3JhcGhQcm90b3NQAVpIZ2l0aHViLmNvbS90ZW5zb3Jm", + "bG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9z", + "X2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor, global::Tensorflow.GraphReflection.Descriptor, global::Tensorflow.OpDefReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.SavedObjectGraphReflection.Descriptor, global::Tensorflow.SaverReflection.Descriptor, global::Tensorflow.StructReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MetaGraphDef), global::Tensorflow.MetaGraphDef.Parser, new[]{ "MetaInfoDef", "GraphDef", "SaverDef", "CollectionDef", "SignatureDef", "AssetFileDef", "ObjectGraphDef" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MetaGraphDef.Types.MetaInfoDef), global::Tensorflow.MetaGraphDef.Types.MetaInfoDef.Parser, new[]{ "MetaGraphVersion", "StrippedOpList", "AnyInfo", "Tags", "TensorflowVersion", "TensorflowGitVersion", "StrippedDefaultAttrs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MetaGraphDef), global::Tensorflow.MetaGraphDef.Parser, new[]{ "MetaInfoDef", "GraphDef", "SaverDef", "CollectionDef", "SignatureDef", "AssetFileDef", "ObjectGraphDef" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.MetaGraphDef.Types.MetaInfoDef), global::Tensorflow.MetaGraphDef.Types.MetaInfoDef.Parser, new[]{ "MetaGraphVersion", "StrippedOpList", "AnyInfo", "Tags", "TensorflowVersion", "TensorflowGitVersion", "StrippedDefaultAttrs", "FunctionAliases" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, }), null, null, }), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CollectionDef), global::Tensorflow.CollectionDef.Parser, new[]{ "NodeList", "BytesList", "Int64List", "FloatList", "AnyList" }, new[]{ "Kind" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CollectionDef.Types.NodeList), global::Tensorflow.CollectionDef.Types.NodeList.Parser, new[]{ "Value" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CollectionDef.Types.BytesList), global::Tensorflow.CollectionDef.Types.BytesList.Parser, new[]{ "Value" }, null, null, null, null), @@ -474,6 +477,7 @@ namespace Tensorflow { tensorflowVersion_ = other.tensorflowVersion_; tensorflowGitVersion_ = other.tensorflowGitVersion_; strippedDefaultAttrs_ = other.strippedDefaultAttrs_; + functionAliases_ = other.functionAliases_.Clone(); _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -592,6 +596,19 @@ namespace Tensorflow { } } + /// Field number for the "function_aliases" field. + public const int FunctionAliasesFieldNumber = 8; + private static readonly pbc::MapField.Codec _map_functionAliases_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 66); + private readonly pbc::MapField functionAliases_ = new pbc::MapField(); + /// + /// FunctionDef name to aliases mapping. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField FunctionAliases { + get { return functionAliases_; } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as MetaInfoDef); @@ -612,6 +629,7 @@ namespace Tensorflow { if (TensorflowVersion != other.TensorflowVersion) return false; if (TensorflowGitVersion != other.TensorflowGitVersion) return false; if (StrippedDefaultAttrs != other.StrippedDefaultAttrs) return false; + if (!FunctionAliases.Equals(other.FunctionAliases)) return false; return Equals(_unknownFields, other._unknownFields); } @@ -625,6 +643,7 @@ namespace Tensorflow { if (TensorflowVersion.Length != 0) hash ^= TensorflowVersion.GetHashCode(); if (TensorflowGitVersion.Length != 0) hash ^= TensorflowGitVersion.GetHashCode(); if (StrippedDefaultAttrs != false) hash ^= StrippedDefaultAttrs.GetHashCode(); + hash ^= FunctionAliases.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -663,6 +682,7 @@ namespace Tensorflow { output.WriteRawTag(56); output.WriteBool(StrippedDefaultAttrs); } + functionAliases_.WriteTo(output, _map_functionAliases_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -690,6 +710,7 @@ namespace Tensorflow { if (StrippedDefaultAttrs != false) { size += 1 + 1; } + size += functionAliases_.CalculateSize(_map_functionAliases_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -726,6 +747,7 @@ namespace Tensorflow { if (other.StrippedDefaultAttrs != false) { StrippedDefaultAttrs = other.StrippedDefaultAttrs; } + functionAliases_.Add(other.functionAliases_); _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -771,6 +793,10 @@ namespace Tensorflow { StrippedDefaultAttrs = input.ReadBool(); break; } + case 66: { + functionAliases_.AddEntriesFrom(input, _map_functionAliases_codec); + break; + } } } } diff --git a/src/TensorFlowNET.Core/Protobuf/NodeDef.cs b/src/TensorFlowNET.Core/Protobuf/NodeDef.cs index b0fcbfe8..fd6e2579 100644 --- a/src/TensorFlowNET.Core/Protobuf/NodeDef.cs +++ b/src/TensorFlowNET.Core/Protobuf/NodeDef.cs @@ -33,10 +33,10 @@ namespace Tensorflow { "ZXJpbWVudGFsRGVidWdJbmZvGkIKCUF0dHJFbnRyeRILCgNrZXkYASABKAkS", "JAoFdmFsdWUYAiABKAsyFS50ZW5zb3JmbG93LkF0dHJWYWx1ZToCOAEaUQoV", "RXhwZXJpbWVudGFsRGVidWdJbmZvEhsKE29yaWdpbmFsX25vZGVfbmFtZXMY", - "ASADKAkSGwoTb3JpZ2luYWxfZnVuY19uYW1lcxgCIAMoCUJpChhvcmcudGVu", - "c29yZmxvdy5mcmFtZXdvcmtCCU5vZGVQcm90b1ABWj1naXRodWIuY29tL3Rl", + "ASADKAkSGwoTb3JpZ2luYWxfZnVuY19uYW1lcxgCIAMoCUJ7ChhvcmcudGVu", + "c29yZmxvdy5mcmFtZXdvcmtCCU5vZGVQcm90b1ABWk9naXRodWIuY29tL3Rl", "bnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3", - "b3Jr+AEBYgZwcm90bzM=")); + "b3JrL25vZGVfZGVmX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/OpDef.cs b/src/TensorFlowNET.Core/Protobuf/OpDef.cs index 2bb6c3e3..f42dac38 100644 --- a/src/TensorFlowNET.Core/Protobuf/OpDef.cs +++ b/src/TensorFlowNET.Core/Protobuf/OpDef.cs @@ -45,9 +45,10 @@ namespace Tensorflow { "AxItCg5hbGxvd2VkX3ZhbHVlcxgHIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZh", "bHVlIjUKDU9wRGVwcmVjYXRpb24SDwoHdmVyc2lvbhgBIAEoBRITCgtleHBs", "YW5hdGlvbhgCIAEoCSInCgZPcExpc3QSHQoCb3AYASADKAsyES50ZW5zb3Jm", - "bG93Lk9wRGVmQmsKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQ", - "cm90b3NQAVo9Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", - "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "bG93Lk9wRGVmQnsKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQ", + "cm90b3NQAVpNZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", + "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay9vcF9kZWZfZ29fcHJvdG/4AQFi", + "BnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/ResourceHandle.cs b/src/TensorFlowNET.Core/Protobuf/ResourceHandle.cs index 4aa49bad..1ca38bee 100644 --- a/src/TensorFlowNET.Core/Protobuf/ResourceHandle.cs +++ b/src/TensorFlowNET.Core/Protobuf/ResourceHandle.cs @@ -27,16 +27,17 @@ namespace Tensorflow { "Ci90ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3Jlc291cmNlX2hhbmRsZS5w", "cm90bxIKdGVuc29yZmxvdxosdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90", "ZW5zb3Jfc2hhcGUucHJvdG8aJXRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsv", - "dHlwZXMucHJvdG8inwIKE1Jlc291cmNlSGFuZGxlUHJvdG8SDgoGZGV2aWNl", + "dHlwZXMucHJvdG8ipQIKE1Jlc291cmNlSGFuZGxlUHJvdG8SDgoGZGV2aWNl", "GAEgASgJEhEKCWNvbnRhaW5lchgCIAEoCRIMCgRuYW1lGAMgASgJEhEKCWhh", "c2hfY29kZRgEIAEoBBIXCg9tYXliZV90eXBlX25hbWUYBSABKAkSSAoRZHR5", "cGVzX2FuZF9zaGFwZXMYBiADKAsyLS50ZW5zb3JmbG93LlJlc291cmNlSGFu", "ZGxlUHJvdG8uRHR5cGVBbmRTaGFwZRphCg1EdHlwZUFuZFNoYXBlEiMKBWR0", "eXBlGAEgASgOMhQudGVuc29yZmxvdy5EYXRhVHlwZRIrCgVzaGFwZRgCIAEo", - "CzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90b0JuChhvcmcudGVuc29y", - "Zmxvdy5mcmFtZXdvcmtCDlJlc291cmNlSGFuZGxlUAFaPWdpdGh1Yi5jb20v", - "dGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFt", - "ZXdvcmv4AQFiBnByb3RvMw==")); + "CzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90b0oECAcQCEKHAQoYb3Jn", + "LnRlbnNvcmZsb3cuZnJhbWV3b3JrQg5SZXNvdXJjZUhhbmRsZVABWlZnaXRo", + "dWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2Nv", + "cmUvZnJhbWV3b3JrL3Jlc291cmNlX2hhbmRsZV9nb19wcm90b/gBAWIGcHJv", + "dG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs b/src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs index 89f8fddc..f2f90a12 100644 --- a/src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs +++ b/src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs @@ -29,62 +29,65 @@ namespace Tensorflow { "dHJfdmFsdWUucHJvdG8aLnRlbnNvcmZsb3cvY29yZS9wcm90b2J1Zi92ZXJp", "Zmllcl9jb25maWcucHJvdG8iOwoTQXV0b1BhcmFsbGVsT3B0aW9ucxIOCgZl", "bmFibGUYASABKAgSFAoMbnVtX3JlcGxpY2FzGAIgASgFIisKFlNjb3BlZEFs", - "bG9jYXRvck9wdGlvbnMSEQoJZW5hYmxlX29wGAEgAygJIogQCg5SZXdyaXRl", + "bG9jYXRvck9wdGlvbnMSEQoJZW5hYmxlX29wGAEgAygJIpURCg5SZXdyaXRl", "ckNvbmZpZxI7ChBsYXlvdXRfb3B0aW1pemVyGAEgASgOMiEudGVuc29yZmxv", "dy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSOwoQY29uc3RhbnRfZm9sZGluZxgD", "IAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEj0KEnNo", "YXBlX29wdGltaXphdGlvbhgNIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJD", "b25maWcuVG9nZ2xlEjQKCXJlbWFwcGluZxgOIAEoDjIhLnRlbnNvcmZsb3cu", - "UmV3cml0ZXJDb25maWcuVG9nZ2xlEkIKF2FyaXRobWV0aWNfb3B0aW1pemF0", - "aW9uGAcgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUS", - "QgoXZGVwZW5kZW5jeV9vcHRpbWl6YXRpb24YCCABKA4yIS50ZW5zb3JmbG93", - "LlJld3JpdGVyQ29uZmlnLlRvZ2dsZRI8ChFsb29wX29wdGltaXphdGlvbhgJ", - "IAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEkAKFWZ1", - "bmN0aW9uX29wdGltaXphdGlvbhgKIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0", - "ZXJDb25maWcuVG9nZ2xlEjkKDmRlYnVnX3N0cmlwcGVyGAsgASgOMiEudGVu", - "c29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSHQoVZGlzYWJsZV9tb2Rl", - "bF9wcnVuaW5nGAIgASgIEkgKHXNjb3BlZF9hbGxvY2F0b3Jfb3B0aW1pemF0", - "aW9uGA8gASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUS", - "QwoYcGluX3RvX2hvc3Rfb3B0aW1pemF0aW9uGBIgASgOMiEudGVuc29yZmxv", - "dy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQgoXaW1wbGVtZW50YXRpb25fc2Vs", - "ZWN0b3IYFiABKA4yIS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLlRvZ2ds", - "ZRI/ChRhdXRvX21peGVkX3ByZWNpc2lvbhgXIAEoDjIhLnRlbnNvcmZsb3cu", - "UmV3cml0ZXJDb25maWcuVG9nZ2xlEh4KFmRpc2FibGVfbWV0YV9vcHRpbWl6", - "ZXIYEyABKAgSTwoZbWV0YV9vcHRpbWl6ZXJfaXRlcmF0aW9ucxgMIAEoDjIs", - "LnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuTnVtSXRlcmF0aW9uc1R5cGUS", - "FwoPbWluX2dyYXBoX25vZGVzGBEgASgFEkIKE21lbW9yeV9vcHRpbWl6YXRp", - "b24YBCABKA4yJS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLk1lbU9wdFR5", - "cGUSLwonbWVtb3J5X29wdGltaXplcl90YXJnZXRfbm9kZV9uYW1lX3Njb3Bl", - "GAYgASgJEiEKGW1ldGFfb3B0aW1pemVyX3RpbWVvdXRfbXMYFCABKAMSNgoN", - "YXV0b19wYXJhbGxlbBgFIAEoCzIfLnRlbnNvcmZsb3cuQXV0b1BhcmFsbGVs", - "T3B0aW9ucxIgChhmYWlsX29uX29wdGltaXplcl9lcnJvcnMYFSABKAgSQQoV", - "c2NvcGVkX2FsbG9jYXRvcl9vcHRzGBAgASgLMiIudGVuc29yZmxvdy5TY29w", - "ZWRBbGxvY2F0b3JPcHRpb25zEhIKCm9wdGltaXplcnMYZCADKAkSSwoRY3Vz", - "dG9tX29wdGltaXplcnMYyAEgAygLMi8udGVuc29yZmxvdy5SZXdyaXRlckNv", - "bmZpZy5DdXN0b21HcmFwaE9wdGltaXplchJECh9pbnRlcl9vcHRpbWl6ZXJf", - "dmVyaWZpZXJfY29uZmlnGKwCIAEoCzIaLnRlbnNvcmZsb3cuVmVyaWZpZXJD", - "b25maWcSRgohcG9zdF9vcHRpbWl6YXRpb25fdmVyaWZpZXJfY29uZmlnGK0C", - "IAEoCzIaLnRlbnNvcmZsb3cuVmVyaWZpZXJDb25maWcaygEKFEN1c3RvbUdy", - "YXBoT3B0aW1pemVyEgwKBG5hbWUYASABKAkSWAoNcGFyYW1ldGVyX21hcBgC", - "IAMoCzJBLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuQ3VzdG9tR3JhcGhP", - "cHRpbWl6ZXIuUGFyYW1ldGVyTWFwRW50cnkaSgoRUGFyYW1ldGVyTWFwRW50", - "cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUudGVuc29yZmxvdy5B", - "dHRyVmFsdWU6AjgBIjYKBlRvZ2dsZRILCgdERUZBVUxUEAASBgoCT04QARIH", - "CgNPRkYQAhIOCgpBR0dSRVNTSVZFEAMiPAoRTnVtSXRlcmF0aW9uc1R5cGUS", - "FQoRREVGQVVMVF9OVU1fSVRFUlMQABIHCgNPTkUQARIHCgNUV08QAiKfAQoK", - "TWVtT3B0VHlwZRITCg9ERUZBVUxUX01FTV9PUFQQABIOCgpOT19NRU1fT1BU", - "EAESCgoGTUFOVUFMEAISFwoTU1dBUFBJTkdfSEVVUklTVElDUxAEEhwKGFJF", - "Q09NUFVUQVRJT05fSEVVUklTVElDUxAFEhkKFVNDSEVEVUxJTkdfSEVVUklT", - "VElDUxAGEg4KCkhFVVJJU1RJQ1MQA0JzChhvcmcudGVuc29yZmxvdy5mcmFt", - "ZXdvcmtCFFJld3JpdGVyQ29uZmlnUHJvdG9zUAFaPGdpdGh1Yi5jb20vdGVu", - "c29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1", - "ZvgBAWIGcHJvdG8z")); + "UmV3cml0ZXJDb25maWcuVG9nZ2xlEkYKG2NvbW1vbl9zdWJncmFwaF9lbGlt", + "aW5hdGlvbhgYIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9n", + "Z2xlEkIKF2FyaXRobWV0aWNfb3B0aW1pemF0aW9uGAcgASgOMiEudGVuc29y", + "Zmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQgoXZGVwZW5kZW5jeV9vcHRp", + "bWl6YXRpb24YCCABKA4yIS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLlRv", + "Z2dsZRI8ChFsb29wX29wdGltaXphdGlvbhgJIAEoDjIhLnRlbnNvcmZsb3cu", + "UmV3cml0ZXJDb25maWcuVG9nZ2xlEkAKFWZ1bmN0aW9uX29wdGltaXphdGlv", + "bhgKIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEjkK", + "DmRlYnVnX3N0cmlwcGVyGAsgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNv", + "bmZpZy5Ub2dnbGUSHQoVZGlzYWJsZV9tb2RlbF9wcnVuaW5nGAIgASgIEkgK", + "HXNjb3BlZF9hbGxvY2F0b3Jfb3B0aW1pemF0aW9uGA8gASgOMiEudGVuc29y", + "Zmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQwoYcGluX3RvX2hvc3Rfb3B0", + "aW1pemF0aW9uGBIgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5U", + "b2dnbGUSQgoXaW1wbGVtZW50YXRpb25fc2VsZWN0b3IYFiABKA4yIS50ZW5z", + "b3JmbG93LlJld3JpdGVyQ29uZmlnLlRvZ2dsZRI/ChRhdXRvX21peGVkX3By", + "ZWNpc2lvbhgXIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9n", + "Z2xlEkMKGGF1dG9fbWl4ZWRfcHJlY2lzaW9uX21rbBgZIAEoDjIhLnRlbnNv", + "cmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEh4KFmRpc2FibGVfbWV0YV9v", + "cHRpbWl6ZXIYEyABKAgSTwoZbWV0YV9vcHRpbWl6ZXJfaXRlcmF0aW9ucxgM", + "IAEoDjIsLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuTnVtSXRlcmF0aW9u", + "c1R5cGUSFwoPbWluX2dyYXBoX25vZGVzGBEgASgFEkIKE21lbW9yeV9vcHRp", + "bWl6YXRpb24YBCABKA4yJS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLk1l", + "bU9wdFR5cGUSLwonbWVtb3J5X29wdGltaXplcl90YXJnZXRfbm9kZV9uYW1l", + "X3Njb3BlGAYgASgJEiEKGW1ldGFfb3B0aW1pemVyX3RpbWVvdXRfbXMYFCAB", + "KAMSNgoNYXV0b19wYXJhbGxlbBgFIAEoCzIfLnRlbnNvcmZsb3cuQXV0b1Bh", + "cmFsbGVsT3B0aW9ucxIgChhmYWlsX29uX29wdGltaXplcl9lcnJvcnMYFSAB", + "KAgSQQoVc2NvcGVkX2FsbG9jYXRvcl9vcHRzGBAgASgLMiIudGVuc29yZmxv", + "dy5TY29wZWRBbGxvY2F0b3JPcHRpb25zEhIKCm9wdGltaXplcnMYZCADKAkS", + "SwoRY3VzdG9tX29wdGltaXplcnMYyAEgAygLMi8udGVuc29yZmxvdy5SZXdy", + "aXRlckNvbmZpZy5DdXN0b21HcmFwaE9wdGltaXplchJECh9pbnRlcl9vcHRp", + "bWl6ZXJfdmVyaWZpZXJfY29uZmlnGKwCIAEoCzIaLnRlbnNvcmZsb3cuVmVy", + "aWZpZXJDb25maWcSRgohcG9zdF9vcHRpbWl6YXRpb25fdmVyaWZpZXJfY29u", + "ZmlnGK0CIAEoCzIaLnRlbnNvcmZsb3cuVmVyaWZpZXJDb25maWcaygEKFEN1", + "c3RvbUdyYXBoT3B0aW1pemVyEgwKBG5hbWUYASABKAkSWAoNcGFyYW1ldGVy", + "X21hcBgCIAMoCzJBLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuQ3VzdG9t", + "R3JhcGhPcHRpbWl6ZXIuUGFyYW1ldGVyTWFwRW50cnkaSgoRUGFyYW1ldGVy", + "TWFwRW50cnkSCwoDa2V5GAEgASgJEiQKBXZhbHVlGAIgASgLMhUudGVuc29y", + "Zmxvdy5BdHRyVmFsdWU6AjgBIjYKBlRvZ2dsZRILCgdERUZBVUxUEAASBgoC", + "T04QARIHCgNPRkYQAhIOCgpBR0dSRVNTSVZFEAMiPAoRTnVtSXRlcmF0aW9u", + "c1R5cGUSFQoRREVGQVVMVF9OVU1fSVRFUlMQABIHCgNPTkUQARIHCgNUV08Q", + "AiKfAQoKTWVtT3B0VHlwZRITCg9ERUZBVUxUX01FTV9PUFQQABIOCgpOT19N", + "RU1fT1BUEAESCgoGTUFOVUFMEAISFwoTU1dBUFBJTkdfSEVVUklTVElDUxAE", + "EhwKGFJFQ09NUFVUQVRJT05fSEVVUklTVElDUxAFEhkKFVNDSEVEVUxJTkdf", + "SEVVUklTVElDUxAGEg4KCkhFVVJJU1RJQ1MQA0J/ChhvcmcudGVuc29yZmxv", + "dy5mcmFtZXdvcmtCFFJld3JpdGVyQ29uZmlnUHJvdG9zUAFaSGdpdGh1Yi5j", + "b20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9j", + "b3JlX3Byb3Rvc19nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.VerifierConfigReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.AutoParallelOptions), global::Tensorflow.AutoParallelOptions.Parser, new[]{ "Enable", "NumReplicas" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ScopedAllocatorOptions), global::Tensorflow.ScopedAllocatorOptions.Parser, new[]{ "EnableOp" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RewriterConfig), global::Tensorflow.RewriterConfig.Parser, new[]{ "LayoutOptimizer", "ConstantFolding", "ShapeOptimization", "Remapping", "ArithmeticOptimization", "DependencyOptimization", "LoopOptimization", "FunctionOptimization", "DebugStripper", "DisableModelPruning", "ScopedAllocatorOptimization", "PinToHostOptimization", "ImplementationSelector", "AutoMixedPrecision", "DisableMetaOptimizer", "MetaOptimizerIterations", "MinGraphNodes", "MemoryOptimization", "MemoryOptimizerTargetNodeNameScope", "MetaOptimizerTimeoutMs", "AutoParallel", "FailOnOptimizerErrors", "ScopedAllocatorOpts", "Optimizers", "CustomOptimizers", "InterOptimizerVerifierConfig", "PostOptimizationVerifierConfig" }, null, new[]{ typeof(global::Tensorflow.RewriterConfig.Types.Toggle), typeof(global::Tensorflow.RewriterConfig.Types.NumIterationsType), typeof(global::Tensorflow.RewriterConfig.Types.MemOptType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RewriterConfig.Types.CustomGraphOptimizer), global::Tensorflow.RewriterConfig.Types.CustomGraphOptimizer.Parser, new[]{ "Name", "ParameterMap" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}) + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RewriterConfig), global::Tensorflow.RewriterConfig.Parser, new[]{ "LayoutOptimizer", "ConstantFolding", "ShapeOptimization", "Remapping", "CommonSubgraphElimination", "ArithmeticOptimization", "DependencyOptimization", "LoopOptimization", "FunctionOptimization", "DebugStripper", "DisableModelPruning", "ScopedAllocatorOptimization", "PinToHostOptimization", "ImplementationSelector", "AutoMixedPrecision", "AutoMixedPrecisionMkl", "DisableMetaOptimizer", "MetaOptimizerIterations", "MinGraphNodes", "MemoryOptimization", "MemoryOptimizerTargetNodeNameScope", "MetaOptimizerTimeoutMs", "AutoParallel", "FailOnOptimizerErrors", "ScopedAllocatorOpts", "Optimizers", "CustomOptimizers", "InterOptimizerVerifierConfig", "PostOptimizationVerifierConfig" }, null, new[]{ typeof(global::Tensorflow.RewriterConfig.Types.Toggle), typeof(global::Tensorflow.RewriterConfig.Types.NumIterationsType), typeof(global::Tensorflow.RewriterConfig.Types.MemOptType) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RewriterConfig.Types.CustomGraphOptimizer), global::Tensorflow.RewriterConfig.Types.CustomGraphOptimizer.Parser, new[]{ "Name", "ParameterMap" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, })}) })); } #endregion @@ -405,6 +408,7 @@ namespace Tensorflow { constantFolding_ = other.constantFolding_; shapeOptimization_ = other.shapeOptimization_; remapping_ = other.remapping_; + commonSubgraphElimination_ = other.commonSubgraphElimination_; arithmeticOptimization_ = other.arithmeticOptimization_; dependencyOptimization_ = other.dependencyOptimization_; loopOptimization_ = other.loopOptimization_; @@ -415,6 +419,7 @@ namespace Tensorflow { pinToHostOptimization_ = other.pinToHostOptimization_; implementationSelector_ = other.implementationSelector_; autoMixedPrecision_ = other.autoMixedPrecision_; + autoMixedPrecisionMkl_ = other.autoMixedPrecisionMkl_; disableMetaOptimizer_ = other.disableMetaOptimizer_; metaOptimizerIterations_ = other.metaOptimizerIterations_; minGraphNodes_ = other.minGraphNodes_; @@ -497,6 +502,21 @@ namespace Tensorflow { } } + /// Field number for the "common_subgraph_elimination" field. + public const int CommonSubgraphEliminationFieldNumber = 24; + private global::Tensorflow.RewriterConfig.Types.Toggle commonSubgraphElimination_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default; + /// + /// Common subgraph elimination (default is ON) + /// e.g. Simplify arithmetic ops; merge ops with same value (like constants). + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.RewriterConfig.Types.Toggle CommonSubgraphElimination { + get { return commonSubgraphElimination_; } + set { + commonSubgraphElimination_ = value; + } + } + /// Field number for the "arithmetic_optimization" field. public const int ArithmeticOptimizationFieldNumber = 7; private global::Tensorflow.RewriterConfig.Types.Toggle arithmeticOptimization_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default; @@ -631,8 +651,8 @@ namespace Tensorflow { public const int AutoMixedPrecisionFieldNumber = 23; private global::Tensorflow.RewriterConfig.Types.Toggle autoMixedPrecision_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default; /// - /// Optimize data types (default is OFF). - /// e.g., This will try to use float16 on GPU which is faster. + /// Optimize data types for CUDA (default is OFF). + /// This will try to use float16 on GPU which is faster. /// Note that this can change the numerical stability of the graph and may /// require the use of loss scaling to maintain model convergence. /// @@ -644,6 +664,22 @@ namespace Tensorflow { } } + /// Field number for the "auto_mixed_precision_mkl" field. + public const int AutoMixedPrecisionMklFieldNumber = 25; + private global::Tensorflow.RewriterConfig.Types.Toggle autoMixedPrecisionMkl_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default; + /// + /// Optimize data types for MKL (default is OFF). + /// This will try to use bfloat16 on CPUs, which is faster. + /// Note that this can change the numerical stability of the graph. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.RewriterConfig.Types.Toggle AutoMixedPrecisionMkl { + get { return autoMixedPrecisionMkl_; } + set { + autoMixedPrecisionMkl_ = value; + } + } + /// Field number for the "disable_meta_optimizer" field. public const int DisableMetaOptimizerFieldNumber = 19; private bool disableMetaOptimizer_; @@ -710,7 +746,7 @@ namespace Tensorflow { public const int MemoryOptimizerTargetNodeNameScopeFieldNumber = 6; private string memoryOptimizerTargetNodeNameScope_ = ""; /// - /// A node name scope for node names which are valid outputs of recompuations. + /// A node name scope for node names which are valid outputs of recomputations. /// Inputs to nodes that match this scope may be recomputed (subject either to /// manual annotation of those input nodes or to manual annotation and /// heuristics depending on memory_optimization), but the nodes themselves will @@ -868,6 +904,7 @@ namespace Tensorflow { if (ConstantFolding != other.ConstantFolding) return false; if (ShapeOptimization != other.ShapeOptimization) return false; if (Remapping != other.Remapping) return false; + if (CommonSubgraphElimination != other.CommonSubgraphElimination) return false; if (ArithmeticOptimization != other.ArithmeticOptimization) return false; if (DependencyOptimization != other.DependencyOptimization) return false; if (LoopOptimization != other.LoopOptimization) return false; @@ -878,6 +915,7 @@ namespace Tensorflow { if (PinToHostOptimization != other.PinToHostOptimization) return false; if (ImplementationSelector != other.ImplementationSelector) return false; if (AutoMixedPrecision != other.AutoMixedPrecision) return false; + if (AutoMixedPrecisionMkl != other.AutoMixedPrecisionMkl) return false; if (DisableMetaOptimizer != other.DisableMetaOptimizer) return false; if (MetaOptimizerIterations != other.MetaOptimizerIterations) return false; if (MinGraphNodes != other.MinGraphNodes) return false; @@ -901,6 +939,7 @@ namespace Tensorflow { if (ConstantFolding != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ConstantFolding.GetHashCode(); if (ShapeOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ShapeOptimization.GetHashCode(); if (Remapping != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= Remapping.GetHashCode(); + if (CommonSubgraphElimination != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= CommonSubgraphElimination.GetHashCode(); if (ArithmeticOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ArithmeticOptimization.GetHashCode(); if (DependencyOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= DependencyOptimization.GetHashCode(); if (LoopOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= LoopOptimization.GetHashCode(); @@ -911,6 +950,7 @@ namespace Tensorflow { if (PinToHostOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= PinToHostOptimization.GetHashCode(); if (ImplementationSelector != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ImplementationSelector.GetHashCode(); if (AutoMixedPrecision != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= AutoMixedPrecision.GetHashCode(); + if (AutoMixedPrecisionMkl != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= AutoMixedPrecisionMkl.GetHashCode(); if (DisableMetaOptimizer != false) hash ^= DisableMetaOptimizer.GetHashCode(); if (MetaOptimizerIterations != global::Tensorflow.RewriterConfig.Types.NumIterationsType.DefaultNumIters) hash ^= MetaOptimizerIterations.GetHashCode(); if (MinGraphNodes != 0) hash ^= MinGraphNodes.GetHashCode(); @@ -1029,6 +1069,14 @@ namespace Tensorflow { output.WriteRawTag(184, 1); output.WriteEnum((int) AutoMixedPrecision); } + if (CommonSubgraphElimination != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + output.WriteRawTag(192, 1); + output.WriteEnum((int) CommonSubgraphElimination); + } + if (AutoMixedPrecisionMkl != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + output.WriteRawTag(200, 1); + output.WriteEnum((int) AutoMixedPrecisionMkl); + } optimizers_.WriteTo(output, _repeated_optimizers_codec); customOptimizers_.WriteTo(output, _repeated_customOptimizers_codec); if (interOptimizerVerifierConfig_ != null) { @@ -1059,6 +1107,9 @@ namespace Tensorflow { if (Remapping != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Remapping); } + if (CommonSubgraphElimination != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) CommonSubgraphElimination); + } if (ArithmeticOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) ArithmeticOptimization); } @@ -1089,6 +1140,9 @@ namespace Tensorflow { if (AutoMixedPrecision != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) AutoMixedPrecision); } + if (AutoMixedPrecisionMkl != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) AutoMixedPrecisionMkl); + } if (DisableMetaOptimizer != false) { size += 2 + 1; } @@ -1147,6 +1201,9 @@ namespace Tensorflow { if (other.Remapping != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { Remapping = other.Remapping; } + if (other.CommonSubgraphElimination != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + CommonSubgraphElimination = other.CommonSubgraphElimination; + } if (other.ArithmeticOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { ArithmeticOptimization = other.ArithmeticOptimization; } @@ -1177,6 +1234,9 @@ namespace Tensorflow { if (other.AutoMixedPrecision != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { AutoMixedPrecision = other.AutoMixedPrecision; } + if (other.AutoMixedPrecisionMkl != global::Tensorflow.RewriterConfig.Types.Toggle.Default) { + AutoMixedPrecisionMkl = other.AutoMixedPrecisionMkl; + } if (other.DisableMetaOptimizer != false) { DisableMetaOptimizer = other.DisableMetaOptimizer; } @@ -1333,6 +1393,14 @@ namespace Tensorflow { AutoMixedPrecision = (global::Tensorflow.RewriterConfig.Types.Toggle) input.ReadEnum(); break; } + case 192: { + CommonSubgraphElimination = (global::Tensorflow.RewriterConfig.Types.Toggle) input.ReadEnum(); + break; + } + case 200: { + AutoMixedPrecisionMkl = (global::Tensorflow.RewriterConfig.Types.Toggle) input.ReadEnum(); + break; + } case 802: { optimizers_.AddEntriesFrom(input, _repeated_optimizers_codec); break; diff --git a/src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs b/src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs index 9150764b..b8d9a0db 100644 --- a/src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs +++ b/src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs @@ -25,18 +25,18 @@ namespace Tensorflow { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CjF0ZW5zb3JmbG93L2NvcmUvcHJvdG9idWYvc2F2ZWRfb2JqZWN0X2dyYXBo", - "LnByb3RvEgp0ZW5zb3JmbG93GjV0ZW5zb3JmbG93L2NvcmUvcHJvdG9idWYv", - "dHJhY2thYmxlX29iamVjdF9ncmFwaC5wcm90bxoldGVuc29yZmxvdy9jb3Jl", - "L3Byb3RvYnVmL3N0cnVjdC5wcm90bxosdGVuc29yZmxvdy9jb3JlL2ZyYW1l", - "d29yay90ZW5zb3Jfc2hhcGUucHJvdG8aJXRlbnNvcmZsb3cvY29yZS9mcmFt", - "ZXdvcmsvdHlwZXMucHJvdG8aKHRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsv", - "dmVyc2lvbnMucHJvdG8aKHRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvdmFy", - "aWFibGUucHJvdG8i6AEKEFNhdmVkT2JqZWN0R3JhcGgSJgoFbm9kZXMYASAD", + "LnByb3RvEgp0ZW5zb3JmbG93Gix0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3Jr", + "L3RlbnNvcl9zaGFwZS5wcm90bxoldGVuc29yZmxvdy9jb3JlL2ZyYW1ld29y", + "ay90eXBlcy5wcm90bxoodGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay92YXJp", + "YWJsZS5wcm90bxoodGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay92ZXJzaW9u", + "cy5wcm90bxoldGVuc29yZmxvdy9jb3JlL3Byb3RvYnVmL3N0cnVjdC5wcm90", + "bxo1dGVuc29yZmxvdy9jb3JlL3Byb3RvYnVmL3RyYWNrYWJsZV9vYmplY3Rf", + "Z3JhcGgucHJvdG8i6AEKEFNhdmVkT2JqZWN0R3JhcGgSJgoFbm9kZXMYASAD", "KAsyFy50ZW5zb3JmbG93LlNhdmVkT2JqZWN0Ek8KEmNvbmNyZXRlX2Z1bmN0", "aW9ucxgCIAMoCzIzLnRlbnNvcmZsb3cuU2F2ZWRPYmplY3RHcmFwaC5Db25j", "cmV0ZUZ1bmN0aW9uc0VudHJ5GlsKFkNvbmNyZXRlRnVuY3Rpb25zRW50cnkS", "CwoDa2V5GAEgASgJEjAKBXZhbHVlGAIgASgLMiEudGVuc29yZmxvdy5TYXZl", - "ZENvbmNyZXRlRnVuY3Rpb246AjgBIr0ECgtTYXZlZE9iamVjdBJSCghjaGls", + "ZENvbmNyZXRlRnVuY3Rpb246AjgBItkFCgtTYXZlZE9iamVjdBJSCghjaGls", "ZHJlbhgBIAMoCzJALnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", "VHJhY2thYmxlT2JqZWN0Lk9iamVjdFJlZmVyZW5jZRJeCg5zbG90X3Zhcmlh", "YmxlcxgDIAMoCzJGLnRlbnNvcmZsb3cuVHJhY2thYmxlT2JqZWN0R3JhcGgu", @@ -48,35 +48,42 @@ namespace Tensorflow { "RwoWYmFyZV9jb25jcmV0ZV9mdW5jdGlvbhgIIAEoCzIlLnRlbnNvcmZsb3cu", "U2F2ZWRCYXJlQ29uY3JldGVGdW5jdGlvbkgAEi0KCGNvbnN0YW50GAkgASgL", "MhkudGVuc29yZmxvdy5TYXZlZENvbnN0YW50SAASLQoIcmVzb3VyY2UYCiAB", - "KAsyGS50ZW5zb3JmbG93LlNhdmVkUmVzb3VyY2VIAEIGCgRraW5kSgQIAhAD", - "UgphdHRyaWJ1dGVzImAKD1NhdmVkVXNlck9iamVjdBISCgppZGVudGlmaWVy", - "GAEgASgJEicKB3ZlcnNpb24YAiABKAsyFi50ZW5zb3JmbG93LlZlcnNpb25E", - "ZWYSEAoIbWV0YWRhdGEYAyABKAkiKgoKU2F2ZWRBc3NldBIcChRhc3NldF9m", - "aWxlX2RlZl9pbmRleBgBIAEoBSJcCg1TYXZlZEZ1bmN0aW9uEhoKEmNvbmNy", - "ZXRlX2Z1bmN0aW9ucxgBIAMoCRIvCg1mdW5jdGlvbl9zcGVjGAIgASgLMhgu", - "dGVuc29yZmxvdy5GdW5jdGlvblNwZWMiqAEKFVNhdmVkQ29uY3JldGVGdW5j", - "dGlvbhIUCgxib3VuZF9pbnB1dHMYAiADKAUSQgodY2Fub25pY2FsaXplZF9p", - "bnB1dF9zaWduYXR1cmUYAyABKAsyGy50ZW5zb3JmbG93LlN0cnVjdHVyZWRW", - "YWx1ZRI1ChBvdXRwdXRfc2lnbmF0dXJlGAQgASgLMhsudGVuc29yZmxvdy5T", - "dHJ1Y3R1cmVkVmFsdWUifAoZU2F2ZWRCYXJlQ29uY3JldGVGdW5jdGlvbhIe", - "ChZjb25jcmV0ZV9mdW5jdGlvbl9uYW1lGAEgASgJEhkKEWFyZ3VtZW50X2tl", - "eXdvcmRzGAIgAygJEiQKHGFsbG93ZWRfcG9zaXRpb25hbF9hcmd1bWVudHMY", - "AyABKAMiIgoNU2F2ZWRDb25zdGFudBIRCglvcGVyYXRpb24YASABKAki9gEK", - "DVNhdmVkVmFyaWFibGUSIwoFZHR5cGUYASABKA4yFC50ZW5zb3JmbG93LkRh", - "dGFUeXBlEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFw", - "ZVByb3RvEhEKCXRyYWluYWJsZRgDIAEoCBI8Cg9zeW5jaHJvbml6YXRpb24Y", - "BCABKA4yIy50ZW5zb3JmbG93LlZhcmlhYmxlU3luY2hyb25pemF0aW9uEjQK", - "C2FnZ3JlZ2F0aW9uGAUgASgOMh8udGVuc29yZmxvdy5WYXJpYWJsZUFnZ3Jl", - "Z2F0aW9uEgwKBG5hbWUYBiABKAkilQEKDEZ1bmN0aW9uU3BlYxIwCgtmdWxs", - "YXJnc3BlYxgBIAEoCzIbLnRlbnNvcmZsb3cuU3RydWN0dXJlZFZhbHVlEhEK", - "CWlzX21ldGhvZBgCIAEoCBI0Cg9pbnB1dF9zaWduYXR1cmUYBSABKAsyGy50", - "ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZUoECAMQBEoECAQQBSIfCg1TYXZl", - "ZFJlc291cmNlEg4KBmRldmljZRgBIAEoCUID+AEBYgZwcm90bzM=")); + "KAsyGS50ZW5zb3JmbG93LlNhdmVkUmVzb3VyY2VIABJGChBzYXZlYWJsZV9v", + "YmplY3RzGAsgAygLMiwudGVuc29yZmxvdy5TYXZlZE9iamVjdC5TYXZlYWJs", + "ZU9iamVjdHNFbnRyeRpSChRTYXZlYWJsZU9iamVjdHNFbnRyeRILCgNrZXkY", + "ASABKAkSKQoFdmFsdWUYAiABKAsyGi50ZW5zb3JmbG93LlNhdmVhYmxlT2Jq", + "ZWN0OgI4AUIGCgRraW5kSgQIAhADUgphdHRyaWJ1dGVzImAKD1NhdmVkVXNl", + "ck9iamVjdBISCgppZGVudGlmaWVyGAEgASgJEicKB3ZlcnNpb24YAiABKAsy", + "Fi50ZW5zb3JmbG93LlZlcnNpb25EZWYSEAoIbWV0YWRhdGEYAyABKAkiKgoK", + "U2F2ZWRBc3NldBIcChRhc3NldF9maWxlX2RlZl9pbmRleBgBIAEoBSJcCg1T", + "YXZlZEZ1bmN0aW9uEhoKEmNvbmNyZXRlX2Z1bmN0aW9ucxgBIAMoCRIvCg1m", + "dW5jdGlvbl9zcGVjGAIgASgLMhgudGVuc29yZmxvdy5GdW5jdGlvblNwZWMi", + "qAEKFVNhdmVkQ29uY3JldGVGdW5jdGlvbhIUCgxib3VuZF9pbnB1dHMYAiAD", + "KAUSQgodY2Fub25pY2FsaXplZF9pbnB1dF9zaWduYXR1cmUYAyABKAsyGy50", + "ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZRI1ChBvdXRwdXRfc2lnbmF0dXJl", + "GAQgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUifAoZU2F2ZWRC", + "YXJlQ29uY3JldGVGdW5jdGlvbhIeChZjb25jcmV0ZV9mdW5jdGlvbl9uYW1l", + "GAEgASgJEhkKEWFyZ3VtZW50X2tleXdvcmRzGAIgAygJEiQKHGFsbG93ZWRf", + "cG9zaXRpb25hbF9hcmd1bWVudHMYAyABKAMiIgoNU2F2ZWRDb25zdGFudBIR", + "CglvcGVyYXRpb24YASABKAki9gEKDVNhdmVkVmFyaWFibGUSIwoFZHR5cGUY", + "ASABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBlEisKBXNoYXBlGAIgASgLMhwu", + "dGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3RvEhEKCXRyYWluYWJsZRgDIAEo", + "CBI8Cg9zeW5jaHJvbml6YXRpb24YBCABKA4yIy50ZW5zb3JmbG93LlZhcmlh", + "YmxlU3luY2hyb25pemF0aW9uEjQKC2FnZ3JlZ2F0aW9uGAUgASgOMh8udGVu", + "c29yZmxvdy5WYXJpYWJsZUFnZ3JlZ2F0aW9uEgwKBG5hbWUYBiABKAkilQEK", + "DEZ1bmN0aW9uU3BlYxIwCgtmdWxsYXJnc3BlYxgBIAEoCzIbLnRlbnNvcmZs", + "b3cuU3RydWN0dXJlZFZhbHVlEhEKCWlzX21ldGhvZBgCIAEoCBI0Cg9pbnB1", + "dF9zaWduYXR1cmUYBSABKAsyGy50ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1", + "ZUoECAMQBEoECAQQBSIfCg1TYXZlZFJlc291cmNlEg4KBmRldmljZRgBIAEo", + "CSJBCg5TYXZlYWJsZU9iamVjdBIVCg1zYXZlX2Z1bmN0aW9uGAIgASgFEhgK", + "EHJlc3RvcmVfZnVuY3Rpb24YAyABKAVCTVpIZ2l0aHViLmNvbS90ZW5zb3Jm", + "bG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9z", + "X2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tensorflow.TrackableObjectGraphReflection.Descriptor, global::Tensorflow.StructReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, global::Tensorflow.VariableReflection.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(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" }, new[]{ "Kind" }, null, null, 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.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.SavedFunction), global::Tensorflow.SavedFunction.Parser, new[]{ "ConcreteFunctions", "FunctionSpec" }, null, null, null, null), @@ -85,7 +92,8 @@ namespace Tensorflow { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConstant), global::Tensorflow.SavedConstant.Parser, new[]{ "Operation" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedVariable), global::Tensorflow.SavedVariable.Parser, new[]{ "Dtype", "Shape", "Trainable", "Synchronization", "Aggregation", "Name" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionSpec), global::Tensorflow.FunctionSpec.Parser, new[]{ "Fullargspec", "IsMethod", "InputSignature" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedResource), global::Tensorflow.SavedResource.Parser, new[]{ "Device" }, null, null, null, null) + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedResource), global::Tensorflow.SavedResource.Parser, new[]{ "Device" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SaveableObject), global::Tensorflow.SaveableObject.Parser, new[]{ "SaveFunction", "RestoreFunction" }, null, null, null, null) })); } #endregion @@ -270,6 +278,7 @@ namespace Tensorflow { public SavedObject(SavedObject other) : this() { children_ = other.children_.Clone(); slotVariables_ = other.slotVariables_.Clone(); + saveableObjects_ = other.saveableObjects_.Clone(); switch (other.KindCase) { case KindOneofCase.UserObject: UserObject = other.UserObject.Clone(); @@ -412,6 +421,16 @@ namespace Tensorflow { } } + /// Field number for the "saveable_objects" field. + public const int SaveableObjectsFieldNumber = 11; + private static readonly pbc::MapField.Codec _map_saveableObjects_codec + = new pbc::MapField.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Tensorflow.SaveableObject.Parser), 90); + private readonly pbc::MapField saveableObjects_ = new pbc::MapField(); + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::MapField SaveableObjects { + get { return saveableObjects_; } + } + private object kind_; /// Enum of possible cases for the "kind" oneof. public enum KindOneofCase { @@ -458,6 +477,7 @@ namespace Tensorflow { if (!object.Equals(BareConcreteFunction, other.BareConcreteFunction)) return false; if (!object.Equals(Constant, other.Constant)) return false; if (!object.Equals(Resource, other.Resource)) return false; + if (!SaveableObjects.Equals(other.SaveableObjects)) return false; if (KindCase != other.KindCase) return false; return Equals(_unknownFields, other._unknownFields); } @@ -474,6 +494,7 @@ namespace Tensorflow { if (kindCase_ == KindOneofCase.BareConcreteFunction) hash ^= BareConcreteFunction.GetHashCode(); if (kindCase_ == KindOneofCase.Constant) hash ^= Constant.GetHashCode(); if (kindCase_ == KindOneofCase.Resource) hash ^= Resource.GetHashCode(); + hash ^= SaveableObjects.GetHashCode(); hash ^= (int) kindCase_; if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); @@ -518,6 +539,7 @@ namespace Tensorflow { output.WriteRawTag(82); output.WriteMessage(Resource); } + saveableObjects_.WriteTo(output, _map_saveableObjects_codec); if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -549,6 +571,7 @@ namespace Tensorflow { if (kindCase_ == KindOneofCase.Resource) { size += 1 + pb::CodedOutputStream.ComputeMessageSize(Resource); } + size += saveableObjects_.CalculateSize(_map_saveableObjects_codec); if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -562,6 +585,7 @@ namespace Tensorflow { } children_.Add(other.children_); slotVariables_.Add(other.slotVariables_); + saveableObjects_.Add(other.saveableObjects_); switch (other.KindCase) { case KindOneofCase.UserObject: if (UserObject == null) { @@ -689,6 +713,10 @@ namespace Tensorflow { Resource = subBuilder; break; } + case 90: { + saveableObjects_.AddEntriesFrom(input, _map_saveableObjects_codec); + break; + } } } } @@ -2358,6 +2386,166 @@ namespace Tensorflow { } + public sealed partial class SaveableObject : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new SaveableObject()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tensorflow.SavedObjectGraphReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SaveableObject() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SaveableObject(SaveableObject other) : this() { + saveFunction_ = other.saveFunction_; + restoreFunction_ = other.restoreFunction_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public SaveableObject Clone() { + return new SaveableObject(this); + } + + /// Field number for the "save_function" field. + public const int SaveFunctionFieldNumber = 2; + private int saveFunction_; + /// + /// Node ids of concrete functions for saving and loading from a checkpoint. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int SaveFunction { + get { return saveFunction_; } + set { + saveFunction_ = value; + } + } + + /// Field number for the "restore_function" field. + public const int RestoreFunctionFieldNumber = 3; + private int restoreFunction_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int RestoreFunction { + get { return restoreFunction_; } + set { + restoreFunction_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as SaveableObject); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(SaveableObject other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (SaveFunction != other.SaveFunction) return false; + if (RestoreFunction != other.RestoreFunction) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (SaveFunction != 0) hash ^= SaveFunction.GetHashCode(); + if (RestoreFunction != 0) hash ^= RestoreFunction.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 (SaveFunction != 0) { + output.WriteRawTag(16); + output.WriteInt32(SaveFunction); + } + if (RestoreFunction != 0) { + output.WriteRawTag(24); + output.WriteInt32(RestoreFunction); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (SaveFunction != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(SaveFunction); + } + if (RestoreFunction != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(RestoreFunction); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(SaveableObject other) { + if (other == null) { + return; + } + if (other.SaveFunction != 0) { + SaveFunction = other.SaveFunction; + } + if (other.RestoreFunction != 0) { + RestoreFunction = other.RestoreFunction; + } + _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 16: { + SaveFunction = input.ReadInt32(); + break; + } + case 24: { + RestoreFunction = input.ReadInt32(); + break; + } + } + } + } + + } + #endregion } diff --git a/src/TensorFlowNET.Core/Protobuf/Saver.cs b/src/TensorFlowNET.Core/Protobuf/Saver.cs index 1394ea91..78b6cd88 100644 --- a/src/TensorFlowNET.Core/Protobuf/Saver.cs +++ b/src/TensorFlowNET.Core/Protobuf/Saver.cs @@ -31,9 +31,10 @@ namespace Tensorflow { "KAgSJQoda2VlcF9jaGVja3BvaW50X2V2ZXJ5X25faG91cnMYBiABKAISPQoH", "dmVyc2lvbhgHIAEoDjIsLnRlbnNvcmZsb3cuU2F2ZXJEZWYuQ2hlY2twb2lu", "dEZvcm1hdFZlcnNpb24iNQoXQ2hlY2twb2ludEZvcm1hdFZlcnNpb24SCgoG", - "TEVHQUNZEAASBgoCVjEQARIGCgJWMhACQmUKE29yZy50ZW5zb3JmbG93LnV0", - "aWxCC1NhdmVyUHJvdG9zUAFaPGdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z", - "b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1ZvgBAWIGcHJvdG8z")); + "TEVHQUNZEAASBgoCVjEQARIGCgJWMhACQnEKE29yZy50ZW5zb3JmbG93LnV0", + "aWxCC1NhdmVyUHJvdG9zUAFaSGdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z", + "b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9jb3JlX3Byb3Rvc19nb19wcm90", + "b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/StepStats.cs b/src/TensorFlowNET.Core/Protobuf/StepStats.cs index 6cb12f01..bff1645d 100644 --- a/src/TensorFlowNET.Core/Protobuf/StepStats.cs +++ b/src/TensorFlowNET.Core/Protobuf/StepStats.cs @@ -58,10 +58,10 @@ namespace Tensorflow { "cxgDIAMoCzIsLnRlbnNvcmZsb3cuRGV2aWNlU3RlcFN0YXRzLlRocmVhZE5h", "bWVzRW50cnkaMgoQVGhyZWFkTmFtZXNFbnRyeRILCgNrZXkYASABKA0SDQoF", "dmFsdWUYAiABKAk6AjgBIjsKCVN0ZXBTdGF0cxIuCglkZXZfc3RhdHMYASAD", - "KAsyGy50ZW5zb3JmbG93LkRldmljZVN0ZXBTdGF0c0JvChhvcmcudGVuc29y", - "Zmxvdy5mcmFtZXdvcmtCD1N0ZXBTdGF0c1Byb3Rvc1ABWj1naXRodWIuY29t", - "L3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJh", - "bWV3b3Jr+AEBYgZwcm90bzM=")); + "KAsyGy50ZW5zb3JmbG93LkRldmljZVN0ZXBTdGF0c0KDAQoYb3JnLnRlbnNv", + "cmZsb3cuZnJhbWV3b3JrQg9TdGVwU3RhdHNQcm90b3NQAVpRZ2l0aHViLmNv", + "bS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2Zy", + "YW1ld29yay9zdGVwX3N0YXRzX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.AllocationDescriptionReflection.Descriptor, global::Tensorflow.TensorDescriptionReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Struct.cs b/src/TensorFlowNET.Core/Protobuf/Struct.cs index 803bc864..7641547a 100644 --- a/src/TensorFlowNET.Core/Protobuf/Struct.cs +++ b/src/TensorFlowNET.Core/Protobuf/Struct.cs @@ -25,46 +25,56 @@ namespace Tensorflow { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CiV0ZW5zb3JmbG93L2NvcmUvcHJvdG9idWYvc3RydWN0LnByb3RvEgp0ZW5z", - "b3JmbG93Gix0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3RlbnNvcl9zaGFw", - "ZS5wcm90bxoldGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90eXBlcy5wcm90", - "byLHBAoPU3RydWN0dXJlZFZhbHVlEisKCm5vbmVfdmFsdWUYASABKAsyFS50", - "ZW5zb3JmbG93Lk5vbmVWYWx1ZUgAEhcKDWZsb2F0NjRfdmFsdWUYCyABKAFI", - "ABIVCgtpbnQ2NF92YWx1ZRgMIAEoEkgAEhYKDHN0cmluZ192YWx1ZRgNIAEo", - "CUgAEhQKCmJvb2xfdmFsdWUYDiABKAhIABI6ChJ0ZW5zb3Jfc2hhcGVfdmFs", - "dWUYHyABKAsyHC50ZW5zb3JmbG93LlRlbnNvclNoYXBlUHJvdG9IABIyChJ0", - "ZW5zb3JfZHR5cGVfdmFsdWUYICABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBl", - "SAASOAoRdGVuc29yX3NwZWNfdmFsdWUYISABKAsyGy50ZW5zb3JmbG93LlRl", - "bnNvclNwZWNQcm90b0gAEjQKD3R5cGVfc3BlY192YWx1ZRgiIAEoCzIZLnRl", - "bnNvcmZsb3cuVHlwZVNwZWNQcm90b0gAEisKCmxpc3RfdmFsdWUYMyABKAsy", - "FS50ZW5zb3JmbG93Lkxpc3RWYWx1ZUgAEi0KC3R1cGxlX3ZhbHVlGDQgASgL", - "MhYudGVuc29yZmxvdy5UdXBsZVZhbHVlSAASKwoKZGljdF92YWx1ZRg1IAEo", - "CzIVLnRlbnNvcmZsb3cuRGljdFZhbHVlSAASOAoRbmFtZWRfdHVwbGVfdmFs", - "dWUYNiABKAsyGy50ZW5zb3JmbG93Lk5hbWVkVHVwbGVWYWx1ZUgAQgYKBGtp", - "bmQiCwoJTm9uZVZhbHVlIjgKCUxpc3RWYWx1ZRIrCgZ2YWx1ZXMYASADKAsy", - "Gy50ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZSI5CgpUdXBsZVZhbHVlEisK", - "BnZhbHVlcxgBIAMoCzIbLnRlbnNvcmZsb3cuU3RydWN0dXJlZFZhbHVlIooB", - "CglEaWN0VmFsdWUSMQoGZmllbGRzGAEgAygLMiEudGVuc29yZmxvdy5EaWN0", - "VmFsdWUuRmllbGRzRW50cnkaSgoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJ", - "EioKBXZhbHVlGAIgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWU6", - "AjgBIkQKCVBhaXJWYWx1ZRILCgNrZXkYASABKAkSKgoFdmFsdWUYAiABKAsy", - "Gy50ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZSJGCg9OYW1lZFR1cGxlVmFs", - "dWUSDAoEbmFtZRgBIAEoCRIlCgZ2YWx1ZXMYAiADKAsyFS50ZW5zb3JmbG93", - "LlBhaXJWYWx1ZSJxCg9UZW5zb3JTcGVjUHJvdG8SDAoEbmFtZRgBIAEoCRIr", - "CgVzaGFwZRgCIAEoCzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90bxIj", - "CgVkdHlwZRgDIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUiigMKDVR5cGVT", - "cGVjUHJvdG8SQAoPdHlwZV9zcGVjX2NsYXNzGAEgASgOMicudGVuc29yZmxv", - "dy5UeXBlU3BlY1Byb3RvLlR5cGVTcGVjQ2xhc3MSLwoKdHlwZV9zdGF0ZRgC", - "IAEoCzIbLnRlbnNvcmZsb3cuU3RydWN0dXJlZFZhbHVlEhwKFHR5cGVfc3Bl", - "Y19jbGFzc19uYW1lGAMgASgJIucBCg1UeXBlU3BlY0NsYXNzEgsKB1VOS05P", - "V04QABIWChJTUEFSU0VfVEVOU09SX1NQRUMQARIXChNJTkRFWEVEX1NMSUNF", - "U19TUEVDEAISFgoSUkFHR0VEX1RFTlNPUl9TUEVDEAMSFQoRVEVOU09SX0FS", - "UkFZX1NQRUMQBBIVChFEQVRBX0RBVEFTRVRfU1BFQxAFEhYKEkRBVEFfSVRF", - "UkFUT1JfU1BFQxAGEhEKDU9QVElPTkFMX1NQRUMQBxIUChBQRVJfUkVQTElD", - "QV9TUEVDEAgSEQoNVkFSSUFCTEVfU1BFQxAJYgZwcm90bzM=")); + "b3JmbG93GiZ0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3RlbnNvci5wcm90", + "bxosdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90ZW5zb3Jfc2hhcGUucHJv", + "dG8aJXRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvdHlwZXMucHJvdG8ikAUK", + "D1N0cnVjdHVyZWRWYWx1ZRIrCgpub25lX3ZhbHVlGAEgASgLMhUudGVuc29y", + "Zmxvdy5Ob25lVmFsdWVIABIXCg1mbG9hdDY0X3ZhbHVlGAsgASgBSAASFQoL", + "aW50NjRfdmFsdWUYDCABKBJIABIWCgxzdHJpbmdfdmFsdWUYDSABKAlIABIU", + "Cgpib29sX3ZhbHVlGA4gASgISAASOgoSdGVuc29yX3NoYXBlX3ZhbHVlGB8g", + "ASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3RvSAASMgoSdGVuc29y", + "X2R0eXBlX3ZhbHVlGCAgASgOMhQudGVuc29yZmxvdy5EYXRhVHlwZUgAEjgK", + "EXRlbnNvcl9zcGVjX3ZhbHVlGCEgASgLMhsudGVuc29yZmxvdy5UZW5zb3JT", + "cGVjUHJvdG9IABI0Cg90eXBlX3NwZWNfdmFsdWUYIiABKAsyGS50ZW5zb3Jm", + "bG93LlR5cGVTcGVjUHJvdG9IABJHChlib3VuZGVkX3RlbnNvcl9zcGVjX3Zh", + "bHVlGCMgASgLMiIudGVuc29yZmxvdy5Cb3VuZGVkVGVuc29yU3BlY1Byb3Rv", + "SAASKwoKbGlzdF92YWx1ZRgzIAEoCzIVLnRlbnNvcmZsb3cuTGlzdFZhbHVl", + "SAASLQoLdHVwbGVfdmFsdWUYNCABKAsyFi50ZW5zb3JmbG93LlR1cGxlVmFs", + "dWVIABIrCgpkaWN0X3ZhbHVlGDUgASgLMhUudGVuc29yZmxvdy5EaWN0VmFs", + "dWVIABI4ChFuYW1lZF90dXBsZV92YWx1ZRg2IAEoCzIbLnRlbnNvcmZsb3cu", + "TmFtZWRUdXBsZVZhbHVlSABCBgoEa2luZCILCglOb25lVmFsdWUiOAoJTGlz", + "dFZhbHVlEisKBnZhbHVlcxgBIAMoCzIbLnRlbnNvcmZsb3cuU3RydWN0dXJl", + "ZFZhbHVlIjkKClR1cGxlVmFsdWUSKwoGdmFsdWVzGAEgAygLMhsudGVuc29y", + "Zmxvdy5TdHJ1Y3R1cmVkVmFsdWUiigEKCURpY3RWYWx1ZRIxCgZmaWVsZHMY", + "ASADKAsyIS50ZW5zb3JmbG93LkRpY3RWYWx1ZS5GaWVsZHNFbnRyeRpKCgtG", + "aWVsZHNFbnRyeRILCgNrZXkYASABKAkSKgoFdmFsdWUYAiABKAsyGy50ZW5z", + "b3JmbG93LlN0cnVjdHVyZWRWYWx1ZToCOAEiRAoJUGFpclZhbHVlEgsKA2tl", + "eRgBIAEoCRIqCgV2YWx1ZRgCIAEoCzIbLnRlbnNvcmZsb3cuU3RydWN0dXJl", + "ZFZhbHVlIkYKD05hbWVkVHVwbGVWYWx1ZRIMCgRuYW1lGAEgASgJEiUKBnZh", + "bHVlcxgCIAMoCzIVLnRlbnNvcmZsb3cuUGFpclZhbHVlInEKD1RlbnNvclNw", + "ZWNQcm90bxIMCgRuYW1lGAEgASgJEisKBXNoYXBlGAIgASgLMhwudGVuc29y", + "Zmxvdy5UZW5zb3JTaGFwZVByb3RvEiMKBWR0eXBlGAMgASgOMhQudGVuc29y", + "Zmxvdy5EYXRhVHlwZSLMAQoWQm91bmRlZFRlbnNvclNwZWNQcm90bxIMCgRu", + "YW1lGAEgASgJEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JT", + "aGFwZVByb3RvEiMKBWR0eXBlGAMgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw", + "ZRIoCgdtaW5pbXVtGAQgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90bxIo", + "CgdtYXhpbXVtGAUgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90byKiAwoN", + "VHlwZVNwZWNQcm90bxJACg90eXBlX3NwZWNfY2xhc3MYASABKA4yJy50ZW5z", + "b3JmbG93LlR5cGVTcGVjUHJvdG8uVHlwZVNwZWNDbGFzcxIvCgp0eXBlX3N0", + "YXRlGAIgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUSHAoUdHlw", + "ZV9zcGVjX2NsYXNzX25hbWUYAyABKAki/wEKDVR5cGVTcGVjQ2xhc3MSCwoH", + "VU5LTk9XThAAEhYKElNQQVJTRV9URU5TT1JfU1BFQxABEhcKE0lOREVYRURf", + "U0xJQ0VTX1NQRUMQAhIWChJSQUdHRURfVEVOU09SX1NQRUMQAxIVChFURU5T", + "T1JfQVJSQVlfU1BFQxAEEhUKEURBVEFfREFUQVNFVF9TUEVDEAUSFgoSREFU", + "QV9JVEVSQVRPUl9TUEVDEAYSEQoNT1BUSU9OQUxfU1BFQxAHEhQKEFBFUl9S", + "RVBMSUNBX1NQRUMQCBIRCg1WQVJJQUJMRV9TUEVDEAkSFgoSUk9XX1BBUlRJ", + "VElPTl9TUEVDEApCSlpIZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZs", + "b3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9zX2dvX3Byb3RvYgZw", + "cm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { 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(typeof(global::Tensorflow.StructuredValue), global::Tensorflow.StructuredValue.Parser, new[]{ "NoneValue", "Float64Value", "Int64Value", "StringValue", "BoolValue", "TensorShapeValue", "TensorDtypeValue", "TensorSpecValue", "TypeSpecValue", "ListValue", "TupleValue", "DictValue", "NamedTupleValue" }, new[]{ "Kind" }, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.StructuredValue), global::Tensorflow.StructuredValue.Parser, new[]{ "NoneValue", "Float64Value", "Int64Value", "StringValue", "BoolValue", "TensorShapeValue", "TensorDtypeValue", "TensorSpecValue", "TypeSpecValue", "BoundedTensorSpecValue", "ListValue", "TupleValue", "DictValue", "NamedTupleValue" }, new[]{ "Kind" }, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.NoneValue), global::Tensorflow.NoneValue.Parser, null, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ListValue), global::Tensorflow.ListValue.Parser, new[]{ "Values" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TupleValue), global::Tensorflow.TupleValue.Parser, new[]{ "Values" }, null, null, null, null), @@ -72,6 +82,7 @@ namespace Tensorflow { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.PairValue), global::Tensorflow.PairValue.Parser, new[]{ "Key", "Value" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.NamedTupleValue), global::Tensorflow.NamedTupleValue.Parser, new[]{ "Name", "Values" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TensorSpecProto), global::Tensorflow.TensorSpecProto.Parser, new[]{ "Name", "Shape", "Dtype" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.BoundedTensorSpecProto), global::Tensorflow.BoundedTensorSpecProto.Parser, new[]{ "Name", "Shape", "Dtype", "Minimum", "Maximum" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TypeSpecProto), global::Tensorflow.TypeSpecProto.Parser, new[]{ "TypeSpecClass", "TypeState", "TypeSpecClassName" }, null, new[]{ typeof(global::Tensorflow.TypeSpecProto.Types.TypeSpecClass) }, null, null) })); } @@ -158,6 +169,9 @@ namespace Tensorflow { case KindOneofCase.TypeSpecValue: TypeSpecValue = other.TypeSpecValue.Clone(); break; + case KindOneofCase.BoundedTensorSpecValue: + BoundedTensorSpecValue = other.BoundedTensorSpecValue.Clone(); + break; case KindOneofCase.ListValue: ListValue = other.ListValue.Clone(); break; @@ -312,6 +326,20 @@ namespace Tensorflow { } } + /// Field number for the "bounded_tensor_spec_value" field. + public const int BoundedTensorSpecValueFieldNumber = 35; + /// + /// Represents a value for tf.BoundedTensorSpec. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.BoundedTensorSpecProto BoundedTensorSpecValue { + get { return kindCase_ == KindOneofCase.BoundedTensorSpecValue ? (global::Tensorflow.BoundedTensorSpecProto) kind_ : null; } + set { + kind_ = value; + kindCase_ = value == null ? KindOneofCase.None : KindOneofCase.BoundedTensorSpecValue; + } + } + /// Field number for the "list_value" field. public const int ListValueFieldNumber = 51; /// @@ -381,6 +409,7 @@ namespace Tensorflow { TensorDtypeValue = 32, TensorSpecValue = 33, TypeSpecValue = 34, + BoundedTensorSpecValue = 35, ListValue = 51, TupleValue = 52, DictValue = 53, @@ -420,6 +449,7 @@ namespace Tensorflow { if (TensorDtypeValue != other.TensorDtypeValue) return false; if (!object.Equals(TensorSpecValue, other.TensorSpecValue)) return false; if (!object.Equals(TypeSpecValue, other.TypeSpecValue)) return false; + if (!object.Equals(BoundedTensorSpecValue, other.BoundedTensorSpecValue)) return false; if (!object.Equals(ListValue, other.ListValue)) return false; if (!object.Equals(TupleValue, other.TupleValue)) return false; if (!object.Equals(DictValue, other.DictValue)) return false; @@ -440,6 +470,7 @@ namespace Tensorflow { if (kindCase_ == KindOneofCase.TensorDtypeValue) hash ^= TensorDtypeValue.GetHashCode(); if (kindCase_ == KindOneofCase.TensorSpecValue) hash ^= TensorSpecValue.GetHashCode(); if (kindCase_ == KindOneofCase.TypeSpecValue) hash ^= TypeSpecValue.GetHashCode(); + if (kindCase_ == KindOneofCase.BoundedTensorSpecValue) hash ^= BoundedTensorSpecValue.GetHashCode(); if (kindCase_ == KindOneofCase.ListValue) hash ^= ListValue.GetHashCode(); if (kindCase_ == KindOneofCase.TupleValue) hash ^= TupleValue.GetHashCode(); if (kindCase_ == KindOneofCase.DictValue) hash ^= DictValue.GetHashCode(); @@ -494,6 +525,10 @@ namespace Tensorflow { output.WriteRawTag(146, 2); output.WriteMessage(TypeSpecValue); } + if (kindCase_ == KindOneofCase.BoundedTensorSpecValue) { + output.WriteRawTag(154, 2); + output.WriteMessage(BoundedTensorSpecValue); + } if (kindCase_ == KindOneofCase.ListValue) { output.WriteRawTag(154, 3); output.WriteMessage(ListValue); @@ -545,6 +580,9 @@ namespace Tensorflow { if (kindCase_ == KindOneofCase.TypeSpecValue) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(TypeSpecValue); } + if (kindCase_ == KindOneofCase.BoundedTensorSpecValue) { + size += 2 + pb::CodedOutputStream.ComputeMessageSize(BoundedTensorSpecValue); + } if (kindCase_ == KindOneofCase.ListValue) { size += 2 + pb::CodedOutputStream.ComputeMessageSize(ListValue); } @@ -608,6 +646,12 @@ namespace Tensorflow { } TypeSpecValue.MergeFrom(other.TypeSpecValue); break; + case KindOneofCase.BoundedTensorSpecValue: + if (BoundedTensorSpecValue == null) { + BoundedTensorSpecValue = new global::Tensorflow.BoundedTensorSpecProto(); + } + BoundedTensorSpecValue.MergeFrom(other.BoundedTensorSpecValue); + break; case KindOneofCase.ListValue: if (ListValue == null) { ListValue = new global::Tensorflow.ListValue(); @@ -702,6 +746,15 @@ namespace Tensorflow { TypeSpecValue = subBuilder; break; } + case 282: { + global::Tensorflow.BoundedTensorSpecProto subBuilder = new global::Tensorflow.BoundedTensorSpecProto(); + if (kindCase_ == KindOneofCase.BoundedTensorSpecValue) { + subBuilder.MergeFrom(BoundedTensorSpecValue); + } + input.ReadMessage(subBuilder); + BoundedTensorSpecValue = subBuilder; + break; + } case 410: { global::Tensorflow.ListValue subBuilder = new global::Tensorflow.ListValue(); if (kindCase_ == KindOneofCase.ListValue) { @@ -1540,7 +1593,7 @@ namespace Tensorflow { } /// - /// A protobuf to tf.TensorSpec. + /// A protobuf to represent tf.TensorSpec. /// public sealed partial class TensorSpecProto : pb::IMessage { private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TensorSpecProto()); @@ -1733,6 +1786,268 @@ namespace Tensorflow { } + /// + /// A protobuf to represent tf.BoundedTensorSpec. + /// + public sealed partial class BoundedTensorSpecProto : pb::IMessage { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new BoundedTensorSpecProto()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::Tensorflow.StructReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public BoundedTensorSpecProto() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public BoundedTensorSpecProto(BoundedTensorSpecProto other) : this() { + name_ = other.name_; + shape_ = other.shape_ != null ? other.shape_.Clone() : null; + dtype_ = other.dtype_; + minimum_ = other.minimum_ != null ? other.minimum_.Clone() : null; + maximum_ = other.maximum_ != null ? other.maximum_.Clone() : null; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public BoundedTensorSpecProto Clone() { + return new BoundedTensorSpecProto(this); + } + + /// Field number for the "name" field. + public const int NameFieldNumber = 1; + private string name_ = ""; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Name { + get { return name_; } + set { + name_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "shape" field. + public const int ShapeFieldNumber = 2; + private global::Tensorflow.TensorShapeProto shape_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.TensorShapeProto Shape { + get { return shape_; } + set { + shape_ = value; + } + } + + /// Field number for the "dtype" field. + public const int DtypeFieldNumber = 3; + private global::Tensorflow.DataType dtype_ = global::Tensorflow.DataType.DtInvalid; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.DataType Dtype { + get { return dtype_; } + set { + dtype_ = value; + } + } + + /// Field number for the "minimum" field. + public const int MinimumFieldNumber = 4; + private global::Tensorflow.TensorProto minimum_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.TensorProto Minimum { + get { return minimum_; } + set { + minimum_ = value; + } + } + + /// Field number for the "maximum" field. + public const int MaximumFieldNumber = 5; + private global::Tensorflow.TensorProto maximum_; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.TensorProto Maximum { + get { return maximum_; } + set { + maximum_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as BoundedTensorSpecProto); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(BoundedTensorSpecProto other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Name != other.Name) return false; + if (!object.Equals(Shape, other.Shape)) return false; + if (Dtype != other.Dtype) return false; + if (!object.Equals(Minimum, other.Minimum)) return false; + if (!object.Equals(Maximum, other.Maximum)) 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 (shape_ != null) hash ^= Shape.GetHashCode(); + if (Dtype != global::Tensorflow.DataType.DtInvalid) hash ^= Dtype.GetHashCode(); + if (minimum_ != null) hash ^= Minimum.GetHashCode(); + if (maximum_ != null) hash ^= Maximum.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 (shape_ != null) { + output.WriteRawTag(18); + output.WriteMessage(Shape); + } + if (Dtype != global::Tensorflow.DataType.DtInvalid) { + output.WriteRawTag(24); + output.WriteEnum((int) Dtype); + } + if (minimum_ != null) { + output.WriteRawTag(34); + output.WriteMessage(Minimum); + } + if (maximum_ != null) { + output.WriteRawTag(42); + output.WriteMessage(Maximum); + } + 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 (shape_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Shape); + } + if (Dtype != global::Tensorflow.DataType.DtInvalid) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype); + } + if (minimum_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Minimum); + } + if (maximum_ != null) { + size += 1 + pb::CodedOutputStream.ComputeMessageSize(Maximum); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(BoundedTensorSpecProto other) { + if (other == null) { + return; + } + if (other.Name.Length != 0) { + Name = other.Name; + } + if (other.shape_ != null) { + if (shape_ == null) { + Shape = new global::Tensorflow.TensorShapeProto(); + } + Shape.MergeFrom(other.Shape); + } + if (other.Dtype != global::Tensorflow.DataType.DtInvalid) { + Dtype = other.Dtype; + } + if (other.minimum_ != null) { + if (minimum_ == null) { + Minimum = new global::Tensorflow.TensorProto(); + } + Minimum.MergeFrom(other.Minimum); + } + if (other.maximum_ != null) { + if (maximum_ == null) { + Maximum = new global::Tensorflow.TensorProto(); + } + Maximum.MergeFrom(other.Maximum); + } + _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: { + if (shape_ == null) { + Shape = new global::Tensorflow.TensorShapeProto(); + } + input.ReadMessage(Shape); + break; + } + case 24: { + Dtype = (global::Tensorflow.DataType) input.ReadEnum(); + break; + } + case 34: { + if (minimum_ == null) { + Minimum = new global::Tensorflow.TensorProto(); + } + input.ReadMessage(Minimum); + break; + } + case 42: { + if (maximum_ == null) { + Maximum = new global::Tensorflow.TensorProto(); + } + input.ReadMessage(Maximum); + break; + } + } + } + } + + } + /// /// Represents a tf.TypeSpec /// @@ -1744,7 +2059,7 @@ namespace Tensorflow { [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public static pbr::MessageDescriptor Descriptor { - get { return global::Tensorflow.StructReflection.Descriptor.MessageTypes[8]; } + get { return global::Tensorflow.StructReflection.Descriptor.MessageTypes[9]; } } [global::System.Diagnostics.DebuggerNonUserCodeAttribute] @@ -1976,6 +2291,10 @@ namespace Tensorflow { /// tf.VariableSpec /// [pbr::OriginalName("VARIABLE_SPEC")] VariableSpec = 9, + /// + /// RowPartitionSpec from ragged/row_partition.py + /// + [pbr::OriginalName("ROW_PARTITION_SPEC")] RowPartitionSpec = 10, } } diff --git a/src/TensorFlowNET.Core/Protobuf/Summary.cs b/src/TensorFlowNET.Core/Protobuf/Summary.cs index 4a7248c9..27d87a58 100644 --- a/src/TensorFlowNET.Core/Protobuf/Summary.cs +++ b/src/TensorFlowNET.Core/Protobuf/Summary.cs @@ -30,33 +30,37 @@ namespace Tensorflow { "hwEKDkhpc3RvZ3JhbVByb3RvEgsKA21pbhgBIAEoARILCgNtYXgYAiABKAES", "CwoDbnVtGAMgASgBEgsKA3N1bRgEIAEoARITCgtzdW1fc3F1YXJlcxgFIAEo", "ARIYCgxidWNrZXRfbGltaXQYBiADKAFCAhABEhIKBmJ1Y2tldBgHIAMoAUIC", - "EAEitQEKD1N1bW1hcnlNZXRhZGF0YRI7CgtwbHVnaW5fZGF0YRgBIAEoCzIm", + "EAEi4AEKD1N1bW1hcnlNZXRhZGF0YRI7CgtwbHVnaW5fZGF0YRgBIAEoCzIm", "LnRlbnNvcmZsb3cuU3VtbWFyeU1ldGFkYXRhLlBsdWdpbkRhdGESFAoMZGlz", - "cGxheV9uYW1lGAIgASgJEhsKE3N1bW1hcnlfZGVzY3JpcHRpb24YAyABKAka", - "MgoKUGx1Z2luRGF0YRITCgtwbHVnaW5fbmFtZRgBIAEoCRIPCgdjb250ZW50", - "GAIgASgMIt4ECgdTdW1tYXJ5EigKBXZhbHVlGAEgAygLMhkudGVuc29yZmxv", - "dy5TdW1tYXJ5LlZhbHVlGlgKBUltYWdlEg4KBmhlaWdodBgBIAEoBRINCgV3", - "aWR0aBgCIAEoBRISCgpjb2xvcnNwYWNlGAMgASgFEhwKFGVuY29kZWRfaW1h", - "Z2Vfc3RyaW5nGAQgASgMGn0KBUF1ZGlvEhMKC3NhbXBsZV9yYXRlGAEgASgC", - "EhQKDG51bV9jaGFubmVscxgCIAEoAxIVCg1sZW5ndGhfZnJhbWVzGAMgASgD", - "EhwKFGVuY29kZWRfYXVkaW9fc3RyaW5nGAQgASgMEhQKDGNvbnRlbnRfdHlw", - "ZRgFIAEoCRrPAgoFVmFsdWUSEQoJbm9kZV9uYW1lGAcgASgJEgsKA3RhZxgB", - "IAEoCRItCghtZXRhZGF0YRgJIAEoCzIbLnRlbnNvcmZsb3cuU3VtbWFyeU1l", - "dGFkYXRhEhYKDHNpbXBsZV92YWx1ZRgCIAEoAkgAEiYKHG9ic29sZXRlX29s", - "ZF9zdHlsZV9oaXN0b2dyYW0YAyABKAxIABIqCgVpbWFnZRgEIAEoCzIZLnRl", - "bnNvcmZsb3cuU3VtbWFyeS5JbWFnZUgAEisKBWhpc3RvGAUgASgLMhoudGVu", - "c29yZmxvdy5IaXN0b2dyYW1Qcm90b0gAEioKBWF1ZGlvGAYgASgLMhkudGVu", - "c29yZmxvdy5TdW1tYXJ5LkF1ZGlvSAASKQoGdGVuc29yGAggASgLMhcudGVu", - "c29yZmxvdy5UZW5zb3JQcm90b0gAQgcKBXZhbHVlQm0KGG9yZy50ZW5zb3Jm", - "bG93LmZyYW1ld29ya0INU3VtbWFyeVByb3Rvc1ABWj1naXRodWIuY29tL3Rl", - "bnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3", - "b3Jr+AEBYgZwcm90bzM=")); + "cGxheV9uYW1lGAIgASgJEhsKE3N1bW1hcnlfZGVzY3JpcHRpb24YAyABKAkS", + "KQoKZGF0YV9jbGFzcxgEIAEoDjIVLnRlbnNvcmZsb3cuRGF0YUNsYXNzGjIK", + "ClBsdWdpbkRhdGESEwoLcGx1Z2luX25hbWUYASABKAkSDwoHY29udGVudBgC", + "IAEoDCLeBAoHU3VtbWFyeRIoCgV2YWx1ZRgBIAMoCzIZLnRlbnNvcmZsb3cu", + "U3VtbWFyeS5WYWx1ZRpYCgVJbWFnZRIOCgZoZWlnaHQYASABKAUSDQoFd2lk", + "dGgYAiABKAUSEgoKY29sb3JzcGFjZRgDIAEoBRIcChRlbmNvZGVkX2ltYWdl", + "X3N0cmluZxgEIAEoDBp9CgVBdWRpbxITCgtzYW1wbGVfcmF0ZRgBIAEoAhIU", + "CgxudW1fY2hhbm5lbHMYAiABKAMSFQoNbGVuZ3RoX2ZyYW1lcxgDIAEoAxIc", + "ChRlbmNvZGVkX2F1ZGlvX3N0cmluZxgEIAEoDBIUCgxjb250ZW50X3R5cGUY", + "BSABKAkazwIKBVZhbHVlEhEKCW5vZGVfbmFtZRgHIAEoCRILCgN0YWcYASAB", + "KAkSLQoIbWV0YWRhdGEYCSABKAsyGy50ZW5zb3JmbG93LlN1bW1hcnlNZXRh", + "ZGF0YRIWCgxzaW1wbGVfdmFsdWUYAiABKAJIABImChxvYnNvbGV0ZV9vbGRf", + "c3R5bGVfaGlzdG9ncmFtGAMgASgMSAASKgoFaW1hZ2UYBCABKAsyGS50ZW5z", + "b3JmbG93LlN1bW1hcnkuSW1hZ2VIABIrCgVoaXN0bxgFIAEoCzIaLnRlbnNv", + "cmZsb3cuSGlzdG9ncmFtUHJvdG9IABIqCgVhdWRpbxgGIAEoCzIZLnRlbnNv", + "cmZsb3cuU3VtbWFyeS5BdWRpb0gAEikKBnRlbnNvchgIIAEoCzIXLnRlbnNv", + "cmZsb3cuVGVuc29yUHJvdG9IAEIHCgV2YWx1ZSpvCglEYXRhQ2xhc3MSFgoS", + "REFUQV9DTEFTU19VTktOT1dOEAASFQoRREFUQV9DTEFTU19TQ0FMQVIQARIV", + "ChFEQVRBX0NMQVNTX1RFTlNPUhACEhwKGERBVEFfQ0xBU1NfQkxPQl9TRVFV", + "RU5DRRADQn4KGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0INU3VtbWFyeVBy", + "b3Rvc1ABWk5naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5z", + "b3JmbG93L2dvL2NvcmUvZnJhbWV3b3JrL3N1bW1hcnlfZ29fcHJvdG/4AQFi", + "BnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.TensorReflection.Descriptor, }, - new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataClass), }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SummaryDescription), global::Tensorflow.SummaryDescription.Parser, new[]{ "TypeHint" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.HistogramProto), global::Tensorflow.HistogramProto.Parser, new[]{ "Min", "Max", "Num", "Sum", "SumSquares", "BucketLimit", "Bucket" }, null, null, null, null), - new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SummaryMetadata), global::Tensorflow.SummaryMetadata.Parser, new[]{ "PluginData", "DisplayName", "SummaryDescription" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SummaryMetadata.Types.PluginData), global::Tensorflow.SummaryMetadata.Types.PluginData.Parser, new[]{ "PluginName", "Content" }, null, null, null, null)}), + new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SummaryMetadata), global::Tensorflow.SummaryMetadata.Parser, new[]{ "PluginData", "DisplayName", "SummaryDescription", "DataClass" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SummaryMetadata.Types.PluginData), global::Tensorflow.SummaryMetadata.Types.PluginData.Parser, new[]{ "PluginName", "Content" }, null, null, null, null)}), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Summary), global::Tensorflow.Summary.Parser, new[]{ "Value" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Summary.Types.Image), global::Tensorflow.Summary.Types.Image.Parser, new[]{ "Height", "Width", "Colorspace", "EncodedImageString" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Summary.Types.Audio), global::Tensorflow.Summary.Types.Audio.Parser, new[]{ "SampleRate", "NumChannels", "LengthFrames", "EncodedAudioString", "ContentType" }, null, null, null, null), new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.Summary.Types.Value), global::Tensorflow.Summary.Types.Value.Parser, new[]{ "NodeName", "Tag", "Metadata", "SimpleValue", "ObsoleteOldStyleHistogram", "Image", "Histo", "Audio", "Tensor" }, new[]{ "Value" }, null, null, null)}) @@ -65,6 +69,35 @@ namespace Tensorflow { #endregion } + #region Enums + public enum DataClass { + /// + /// Unknown data class, used (implicitly) for legacy data. Will not be + /// processed by data ingestion pipelines. + /// + [pbr::OriginalName("DATA_CLASS_UNKNOWN")] Unknown = 0, + /// + /// Scalar time series. Each `Value` for the corresponding tag must have + /// `tensor` set to a rank-0 tensor of floating-point dtype, which will be + /// converted to float64. + /// + [pbr::OriginalName("DATA_CLASS_SCALAR")] Scalar = 1, + /// + /// Tensor time series. Each `Value` for the corresponding tag must have + /// `tensor` set. The tensor value is arbitrary, but should be small to + /// accommodate direct storage in database backends: an upper bound of a few + /// kilobytes is a reasonable rule of thumb. + /// + [pbr::OriginalName("DATA_CLASS_TENSOR")] Tensor = 2, + /// + /// Blob sequence time series. Each `Value` for the corresponding tag must + /// have `tensor` set to a rank-1 tensor of bytestring dtype. + /// + [pbr::OriginalName("DATA_CLASS_BLOB_SEQUENCE")] BlobSequence = 3, + } + + #endregion + #region Messages /// /// Metadata associated with a series of Summary data @@ -528,6 +561,7 @@ namespace Tensorflow { pluginData_ = other.pluginData_ != null ? other.pluginData_.Clone() : null; displayName_ = other.displayName_; summaryDescription_ = other.summaryDescription_; + dataClass_ = other.dataClass_; _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); } @@ -578,6 +612,23 @@ namespace Tensorflow { } } + /// Field number for the "data_class" field. + public const int DataClassFieldNumber = 4; + private global::Tensorflow.DataClass dataClass_ = global::Tensorflow.DataClass.Unknown; + /// + /// Class of data stored in this time series. Required for compatibility with + /// TensorBoard's generic data facilities (`DataProvider`, et al.). This value + /// imposes constraints on the dtype and shape of the corresponding tensor + /// values. See `DataClass` docs for details. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::Tensorflow.DataClass DataClass { + get { return dataClass_; } + set { + dataClass_ = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] public override bool Equals(object other) { return Equals(other as SummaryMetadata); @@ -594,6 +645,7 @@ namespace Tensorflow { if (!object.Equals(PluginData, other.PluginData)) return false; if (DisplayName != other.DisplayName) return false; if (SummaryDescription != other.SummaryDescription) return false; + if (DataClass != other.DataClass) return false; return Equals(_unknownFields, other._unknownFields); } @@ -603,6 +655,7 @@ namespace Tensorflow { if (pluginData_ != null) hash ^= PluginData.GetHashCode(); if (DisplayName.Length != 0) hash ^= DisplayName.GetHashCode(); if (SummaryDescription.Length != 0) hash ^= SummaryDescription.GetHashCode(); + if (DataClass != global::Tensorflow.DataClass.Unknown) hash ^= DataClass.GetHashCode(); if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } @@ -628,6 +681,10 @@ namespace Tensorflow { output.WriteRawTag(26); output.WriteString(SummaryDescription); } + if (DataClass != global::Tensorflow.DataClass.Unknown) { + output.WriteRawTag(32); + output.WriteEnum((int) DataClass); + } if (_unknownFields != null) { _unknownFields.WriteTo(output); } @@ -645,6 +702,9 @@ namespace Tensorflow { if (SummaryDescription.Length != 0) { size += 1 + pb::CodedOutputStream.ComputeStringSize(SummaryDescription); } + if (DataClass != global::Tensorflow.DataClass.Unknown) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DataClass); + } if (_unknownFields != null) { size += _unknownFields.CalculateSize(); } @@ -668,6 +728,9 @@ namespace Tensorflow { if (other.SummaryDescription.Length != 0) { SummaryDescription = other.SummaryDescription; } + if (other.DataClass != global::Tensorflow.DataClass.Unknown) { + DataClass = other.DataClass; + } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); } @@ -694,6 +757,10 @@ namespace Tensorflow { SummaryDescription = input.ReadString(); break; } + case 32: { + DataClass = (global::Tensorflow.DataClass) input.ReadEnum(); + break; + } } } } diff --git a/src/TensorFlowNET.Core/Protobuf/Tensor.cs b/src/TensorFlowNET.Core/Protobuf/Tensor.cs index d8a3d297..f7db83e1 100644 --- a/src/TensorFlowNET.Core/Protobuf/Tensor.cs +++ b/src/TensorFlowNET.Core/Protobuf/Tensor.cs @@ -42,9 +42,10 @@ namespace Tensorflow { "X3ZhbBgQIAMoDUICEAESFgoKdWludDY0X3ZhbBgRIAMoBEICEAEiZwoWVmFy", "aWFudFRlbnNvckRhdGFQcm90bxIRCgl0eXBlX25hbWUYASABKAkSEAoIbWV0", "YWRhdGEYAiABKAwSKAoHdGVuc29ycxgDIAMoCzIXLnRlbnNvcmZsb3cuVGVu", - "c29yUHJvdG9CbAoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQgxUZW5zb3JQ", - "cm90b3NQAVo9Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", - "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "c29yUHJvdG9CfAoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQgxUZW5zb3JQ", + "cm90b3NQAVpNZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", + "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay90ZW5zb3JfZ29fcHJvdG/4AQFi", + "BnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { global::Tensorflow.ResourceHandleReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/TensorDescription.cs b/src/TensorFlowNET.Core/Protobuf/TensorDescription.cs index ffe2e511..0af19768 100644 --- a/src/TensorFlowNET.Core/Protobuf/TensorDescription.cs +++ b/src/TensorFlowNET.Core/Protobuf/TensorDescription.cs @@ -25,19 +25,19 @@ namespace Tensorflow { byte[] descriptorData = global::System.Convert.FromBase64String( string.Concat( "CjJ0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3RlbnNvcl9kZXNjcmlwdGlv", - "bi5wcm90bxIKdGVuc29yZmxvdxoldGVuc29yZmxvdy9jb3JlL2ZyYW1ld29y", - "ay90eXBlcy5wcm90bxosdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90ZW5z", - "b3Jfc2hhcGUucHJvdG8aNnRlbnNvcmZsb3cvY29yZS9mcmFtZXdvcmsvYWxs", - "b2NhdGlvbl9kZXNjcmlwdGlvbi5wcm90byKoAQoRVGVuc29yRGVzY3JpcHRp", + "bi5wcm90bxIKdGVuc29yZmxvdxo2dGVuc29yZmxvdy9jb3JlL2ZyYW1ld29y", + "ay9hbGxvY2F0aW9uX2Rlc2NyaXB0aW9uLnByb3RvGix0ZW5zb3JmbG93L2Nv", + "cmUvZnJhbWV3b3JrL3RlbnNvcl9zaGFwZS5wcm90bxoldGVuc29yZmxvdy9j", + "b3JlL2ZyYW1ld29yay90eXBlcy5wcm90byKoAQoRVGVuc29yRGVzY3JpcHRp", "b24SIwoFZHR5cGUYASABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBlEisKBXNo", "YXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3RvEkEKFmFs", "bG9jYXRpb25fZGVzY3JpcHRpb24YBCABKAsyIS50ZW5zb3JmbG93LkFsbG9j", - "YXRpb25EZXNjcmlwdGlvbkJ3ChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtC", - "F1RlbnNvckRlc2NyaXB0aW9uUHJvdG9zUAFaPWdpdGh1Yi5jb20vdGVuc29y", - "Zmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmv4", - "AQFiBnByb3RvMw==")); + "YXRpb25EZXNjcmlwdGlvbkKTAQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr", + "QhdUZW5zb3JEZXNjcmlwdGlvblByb3Rvc1ABWllnaXRodWIuY29tL3RlbnNv", + "cmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr", + "L3RlbnNvcl9kZXNjcmlwdGlvbl9nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, - new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.AllocationDescriptionReflection.Descriptor, }, + new pbr::FileDescriptor[] { global::Tensorflow.AllocationDescriptionReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.TensorDescription), global::Tensorflow.TensorDescription.Parser, new[]{ "Dtype", "Shape", "AllocationDescription" }, null, null, null, null) })); diff --git a/src/TensorFlowNET.Core/Protobuf/TensorShape.cs b/src/TensorFlowNET.Core/Protobuf/TensorShape.cs index fb275568..dec408f5 100644 --- a/src/TensorFlowNET.Core/Protobuf/TensorShape.cs +++ b/src/TensorFlowNET.Core/Protobuf/TensorShape.cs @@ -28,9 +28,10 @@ namespace Tensorflow { "bxIKdGVuc29yZmxvdyJ6ChBUZW5zb3JTaGFwZVByb3RvEi0KA2RpbRgCIAMo", "CzIgLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90by5EaW0SFAoMdW5rbm93", "bl9yYW5rGAMgASgIGiEKA0RpbRIMCgRzaXplGAEgASgDEgwKBG5hbWUYAiAB", - "KAlCcQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQhFUZW5zb3JTaGFwZVBy", - "b3Rvc1ABWj1naXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5z", - "b3JmbG93L2dvL2NvcmUvZnJhbWV3b3Jr+AEBYgZwcm90bzM=")); + "KAlChwEKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IRVGVuc29yU2hhcGVQ", + "cm90b3NQAVpTZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", + "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay90ZW5zb3Jfc2hhcGVfZ29fcHJv", + "dG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/TensorSlice.cs b/src/TensorFlowNET.Core/Protobuf/TensorSlice.cs index 06b2e12a..fe505f71 100644 --- a/src/TensorFlowNET.Core/Protobuf/TensorSlice.cs +++ b/src/TensorFlowNET.Core/Protobuf/TensorSlice.cs @@ -28,9 +28,10 @@ namespace Tensorflow { "bxIKdGVuc29yZmxvdyKAAQoQVGVuc29yU2xpY2VQcm90bxIzCgZleHRlbnQY", "ASADKAsyIy50ZW5zb3JmbG93LlRlbnNvclNsaWNlUHJvdG8uRXh0ZW50GjcK", "BkV4dGVudBINCgVzdGFydBgBIAEoAxIQCgZsZW5ndGgYAiABKANIAEIMCgpo", - "YXNfbGVuZ3RoQnEKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IRVGVuc29y", - "U2xpY2VQcm90b3NQAVo9Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZs", - "b3cvdGVuc29yZmxvdy9nby9jb3JlL2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "YXNfbGVuZ3RoQocBChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCEVRlbnNv", + "clNsaWNlUHJvdG9zUAFaU2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3Jm", + "bG93L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmsvdGVuc29yX3NsaWNl", + "X2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs b/src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs index 97cd0027..036f8275 100644 --- a/src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs +++ b/src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs @@ -39,8 +39,9 @@ namespace Tensorflow { "bGxfbmFtZRgCIAEoCRIWCg5jaGVja3BvaW50X2tleRgDIAEoCRIYChBvcHRp", "b25hbF9yZXN0b3JlGAQgASgIGmwKFVNsb3RWYXJpYWJsZVJlZmVyZW5jZRIh", "ChlvcmlnaW5hbF92YXJpYWJsZV9ub2RlX2lkGAEgASgFEhEKCXNsb3RfbmFt", - "ZRgCIAEoCRIdChVzbG90X3ZhcmlhYmxlX25vZGVfaWQYAyABKAVCA/gBAWIG", - "cHJvdG8z")); + "ZRgCIAEoCRIdChVzbG90X3ZhcmlhYmxlX25vZGVfaWQYAyABKAVCTVpIZ2l0", + "aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9j", + "b3JlL2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM=")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Types.cs b/src/TensorFlowNET.Core/Protobuf/Types.cs index e21e4614..6483cddf 100644 --- a/src/TensorFlowNET.Core/Protobuf/Types.cs +++ b/src/TensorFlowNET.Core/Protobuf/Types.cs @@ -43,9 +43,10 @@ namespace Tensorflow { "X1JFRhB0EhEKDURUX1VJTlQxNl9SRUYQdRIVChFEVF9DT01QTEVYMTI4X1JF", "RhB2Eg8KC0RUX0hBTEZfUkVGEHcSEwoPRFRfUkVTT1VSQ0VfUkVGEHgSEgoO", "RFRfVkFSSUFOVF9SRUYQeRIRCg1EVF9VSU5UMzJfUkVGEHoSEQoNRFRfVUlO", - "VDY0X1JFRhB7QmsKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQ", - "cm90b3NQAVo9Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", - "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "VDY0X1JFRhB7QnoKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQ", + "cm90b3NQAVpMZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu", + "c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay90eXBlc19nb19wcm90b/gBAWIG", + "cHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataType), }, null, null)); diff --git a/src/TensorFlowNET.Core/Protobuf/Variable.cs b/src/TensorFlowNET.Core/Protobuf/Variable.cs index b6548acb..145c3625 100644 --- a/src/TensorFlowNET.Core/Protobuf/Variable.cs +++ b/src/TensorFlowNET.Core/Protobuf/Variable.cs @@ -42,9 +42,10 @@ namespace Tensorflow { "ZWdhdGlvbhIdChlWQVJJQUJMRV9BR0dSRUdBVElPTl9OT05FEAASHAoYVkFS", "SUFCTEVfQUdHUkVHQVRJT05fU1VNEAESHQoZVkFSSUFCTEVfQUdHUkVHQVRJ", "T05fTUVBThACEisKJ1ZBUklBQkxFX0FHR1JFR0FUSU9OX09OTFlfRklSU1Rf", - "UkVQTElDQRADQm4KGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IOVmFyaWFi", - "bGVQcm90b3NQAVo9Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cv", - "dGVuc29yZmxvdy9nby9jb3JlL2ZyYW1ld29ya/gBAWIGcHJvdG8z")); + "UkVQTElDQRADQoABChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCDlZhcmlh", + "YmxlUHJvdG9zUAFaT2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93", + "L3RlbnNvcmZsb3cvZ28vY29yZS9mcmFtZXdvcmsvdmFyaWFibGVfZ29fcHJv", + "dG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.VariableSynchronization), typeof(global::Tensorflow.VariableAggregation), }, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs b/src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs index 738fc147..07431234 100644 --- a/src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs +++ b/src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs @@ -28,10 +28,10 @@ namespace Tensorflow { "b3RvEgp0ZW5zb3JmbG93IpsBCg5WZXJpZmllckNvbmZpZxIiChp2ZXJpZmlj", "YXRpb25fdGltZW91dF9pbl9tcxgBIAEoAxI9ChJzdHJ1Y3R1cmVfdmVyaWZp", "ZXIYAiABKA4yIS50ZW5zb3JmbG93LlZlcmlmaWVyQ29uZmlnLlRvZ2dsZSIm", - "CgZUb2dnbGUSCwoHREVGQVVMVBAAEgYKAk9OEAESBwoDT0ZGEAJCcwoYb3Jn", + "CgZUb2dnbGUSCwoHREVGQVVMVBAAEgYKAk9OEAESBwoDT0ZGEAJCfwoYb3Jn", "LnRlbnNvcmZsb3cuZnJhbWV3b3JrQhRWZXJpZmllckNvbmZpZ1Byb3Rvc1AB", - "WjxnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93", - "L2dvL2NvcmUvcHJvdG9idWb4AQFiBnByb3RvMw==")); + "WkhnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93", + "L2dvL2NvcmUvY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw==")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] { diff --git a/src/TensorFlowNET.Core/Protobuf/Versions.cs b/src/TensorFlowNET.Core/Protobuf/Versions.cs index d98b4e12..3cd00765 100644 --- a/src/TensorFlowNET.Core/Protobuf/Versions.cs +++ b/src/TensorFlowNET.Core/Protobuf/Versions.cs @@ -26,10 +26,10 @@ namespace Tensorflow { string.Concat( "Cih0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3ZlcnNpb25zLnByb3RvEgp0", "ZW5zb3JmbG93IksKClZlcnNpb25EZWYSEAoIcHJvZHVjZXIYASABKAUSFAoM", - "bWluX2NvbnN1bWVyGAIgASgFEhUKDWJhZF9jb25zdW1lcnMYAyADKAVCbgoY", - "b3JnLnRlbnNvcmZsb3cuZnJhbWV3b3JrQg5WZXJzaW9uc1Byb3Rvc1ABWj1n", - "aXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dv", - "L2NvcmUvZnJhbWV3b3Jr+AEBYgZwcm90bzM=")); + "bWluX2NvbnN1bWVyGAIgASgFEhUKDWJhZF9jb25zdW1lcnMYAyADKAVCgAEK", + "GG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IOVmVyc2lvbnNQcm90b3NQAVpP", + "Z2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9n", + "by9jb3JlL2ZyYW1ld29yay92ZXJzaW9uc19nb19wcm90b/gBAWIGcHJvdG8z")); descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, new pbr::FileDescriptor[] { }, new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {