Browse Source

Update protobuf align with tf 2.5.0.

tags/v0.60-tf.numpy
Oceania2018 4 years ago
parent
commit
07c7835a03
22 changed files with 2114 additions and 232 deletions
  1. +5
    -4
      src/TensorFlowNET.Core/Protobuf/Cluster.cs
  2. +161
    -43
      src/TensorFlowNET.Core/Protobuf/Config.cs
  3. +4
    -4
      src/TensorFlowNET.Core/Protobuf/ControlFlow.cs
  4. +47
    -11
      src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs
  5. +4
    -4
      src/TensorFlowNET.Core/Protobuf/Debug.cs
  6. +40
    -32
      src/TensorFlowNET.Core/Protobuf/Event.cs
  7. +4
    -0
      src/TensorFlowNET.Core/Protobuf/Gen.bat
  8. +0
    -2
      src/TensorFlowNET.Core/Protobuf/Graph.cs
  9. +7
    -7
      src/TensorFlowNET.Core/Protobuf/MetaGraph.cs
  10. +49
    -24
      src/TensorFlowNET.Core/Protobuf/OpDef.cs
  11. +200
    -53
      src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs
  12. +4
    -4
      src/TensorFlowNET.Core/Protobuf/SavedModel.cs
  13. +180
    -22
      src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs
  14. +4
    -4
      src/TensorFlowNET.Core/Protobuf/Saver.cs
  15. +5
    -5
      src/TensorFlowNET.Core/Protobuf/Struct.cs
  16. +1
    -2
      src/TensorFlowNET.Core/Protobuf/Summary.cs
  17. +3
    -2
      src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs
  18. +27
    -5
      src/TensorFlowNET.Core/Protobuf/Types.cs
  19. +5
    -4
      src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs
  20. +669
    -0
      src/TensorFlowNET.Keras/Protobuf/ProjectorConfig.cs
  21. +447
    -0
      src/TensorFlowNET.Keras/Protobuf/SavedMetadata.cs
  22. +248
    -0
      src/TensorFlowNET.Keras/Protobuf/Versions.cs

+ 5
- 4
src/TensorFlowNET.Core/Protobuf/Cluster.cs View File

@@ -28,10 +28,11 @@ namespace Tensorflow {
"c29yZmxvdyJyCgZKb2JEZWYSDAoEbmFtZRgBIAEoCRIsCgV0YXNrcxgCIAMo",
"CzIdLnRlbnNvcmZsb3cuSm9iRGVmLlRhc2tzRW50cnkaLAoKVGFza3NFbnRy",
"eRILCgNrZXkYASABKAUSDQoFdmFsdWUYAiABKAk6AjgBIi0KCkNsdXN0ZXJE",
"ZWYSHwoDam9iGAEgAygLMhIudGVuc29yZmxvdy5Kb2JEZWZCegoab3JnLnRl",
"bnNvcmZsb3cuZGlzdHJ1bnRpbWVCDUNsdXN0ZXJQcm90b3NQAVpIZ2l0aHVi",
"LmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3Jl",
"L2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM="));
"ZWYSHwoDam9iGAEgAygLMhIudGVuc29yZmxvdy5Kb2JEZWZChwEKGm9yZy50",
"ZW5zb3JmbG93LmRpc3RydW50aW1lQg1DbHVzdGVyUHJvdG9zUAFaVWdpdGh1",
"Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29y",
"ZS9wcm90b2J1Zi9mb3JfY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3Rv",
"Mw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 161
- 43
src/TensorFlowNET.Core/Protobuf/Config.cs View File

@@ -70,7 +70,7 @@ namespace Tensorflow {
"EWNvbXByZXNzaW9uX2xldmVsGAMgASgFEhoKEmNhY2hlX3JwY19yZXNwb25z",
"ZRgEIAEoCBIqCiJkaXNhYmxlX3Nlc3Npb25fY29ubmVjdGlvbl9zaGFyaW5n",
"GAUgASgIIjAKD1Nlc3Npb25NZXRhZGF0YRIMCgRuYW1lGAEgASgJEg8KB3Zl",
"cnNpb24YAiABKAMiyAoKC0NvbmZpZ1Byb3RvEj4KDGRldmljZV9jb3VudBgB",
"cnNpb24YAiABKAMijA0KC0NvbmZpZ1Byb3RvEj4KDGRldmljZV9jb3VudBgB",
"IAMoCzIoLnRlbnNvcmZsb3cuQ29uZmlnUHJvdG8uRGV2aWNlQ291bnRFbnRy",
"eRIkChxpbnRyYV9vcF9wYXJhbGxlbGlzbV90aHJlYWRzGAIgASgFEiQKHGlu",
"dGVyX29wX3BhcmFsbGVsaXNtX3RocmVhZHMYBSABKAUSHwoXdXNlX3Blcl9z",
@@ -87,7 +87,7 @@ namespace Tensorflow {
"CBIoCiBzaGFyZV9jbHVzdGVyX2RldmljZXNfaW5fc2Vzc2lvbhgRIAEoCBI6",
"CgxleHBlcmltZW50YWwYECABKAsyJC50ZW5zb3JmbG93LkNvbmZpZ1Byb3Rv",
"LkV4cGVyaW1lbnRhbBoyChBEZXZpY2VDb3VudEVudHJ5EgsKA2tleRgBIAEo",
"CRINCgV2YWx1ZRgCIAEoBToCOAEawgQKDEV4cGVyaW1lbnRhbBIfChdjb2xs",
"CRINCgV2YWx1ZRgCIAEoBToCOAEahgcKDEV4cGVyaW1lbnRhbBIfChdjb2xs",
"ZWN0aXZlX2dyb3VwX2xlYWRlchgBIAEoCRIVCg1leGVjdXRvcl90eXBlGAMg",
"ASgJEhoKEnJlY3ZfYnVmX21heF9jaHVuaxgEIAEoBRIZChF1c2VfbnVtYV9h",
"ZmZpbml0eRgFIAEoCBI1Ci1jb2xsZWN0aXZlX2RldGVybWluaXN0aWNfc2Vx",
@@ -97,46 +97,54 @@ namespace Tensorflow {
"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="));
"GgoSZW5hYmxlX21saXJfYnJpZGdlGA0gASgIElMKE21saXJfYnJpZGdlX3Jv",
"bGxvdXQYESABKA4yNi50ZW5zb3JmbG93LkNvbmZpZ1Byb3RvLkV4cGVyaW1l",
"bnRhbC5NbGlyQnJpZGdlUm9sbG91dBImCh5lbmFibGVfbWxpcl9ncmFwaF9v",
"cHRpbWl6YXRpb24YECABKAgSJwofZGlzYWJsZV9vdXRwdXRfcGFydGl0aW9u",
"X2dyYXBocxgOIAEoCBIjCht4bGFfZnVzaW9uX2F1dG90dW5lcl90aHJlc2gY",
"DyABKAMSEAoIdXNlX3RmcnQYEiABKAgi2gEKEU1saXJCcmlkZ2VSb2xsb3V0",
"EiMKH01MSVJfQlJJREdFX1JPTExPVVRfVU5TUEVDSUZJRUQQABIfChtNTElS",
"X0JSSURHRV9ST0xMT1VUX0VOQUJMRUQQARIgChxNTElSX0JSSURHRV9ST0xM",
"T1VUX0RJU0FCTEVEEAISKQolTUxJUl9CUklER0VfUk9MTE9VVF9TQUZFX01P",
"REVfRU5BQkxFRBADEjIKLk1MSVJfQlJJREdFX1JPTExPVVRfU0FGRV9NT0RF",
"X0ZBTExCQUNLX0VOQUJMRUQQBEoECAIQAyLhBAoKUnVuT3B0aW9ucxI2Cgt0",
"cmFjZV9sZXZlbBgBIAEoDjIhLnRlbnNvcmZsb3cuUnVuT3B0aW9ucy5UcmFj",
"ZUxldmVsEhUKDXRpbWVvdXRfaW5fbXMYAiABKAMSHAoUaW50ZXJfb3BfdGhy",
"ZWFkX3Bvb2wYAyABKAUSHwoXb3V0cHV0X3BhcnRpdGlvbl9ncmFwaHMYBSAB",
"KAgSLwoNZGVidWdfb3B0aW9ucxgGIAEoCzIYLnRlbnNvcmZsb3cuRGVidWdP",
"cHRpb25zEioKInJlcG9ydF90ZW5zb3JfYWxsb2NhdGlvbnNfdXBvbl9vb20Y",
"ByABKAgSOQoMZXhwZXJpbWVudGFsGAggASgLMiMudGVuc29yZmxvdy5SdW5P",
"cHRpb25zLkV4cGVyaW1lbnRhbBrSAQoMRXhwZXJpbWVudGFsEhwKFGNvbGxl",
"Y3RpdmVfZ3JhcGhfa2V5GAEgASgDEhwKFHVzZV9ydW5faGFuZGxlcl9wb29s",
"GAIgASgIElsKGHJ1bl9oYW5kbGVyX3Bvb2xfb3B0aW9ucxgDIAEoCzI5LnRl",
"bnNvcmZsb3cuUnVuT3B0aW9ucy5FeHBlcmltZW50YWwuUnVuSGFuZGxlclBv",
"b2xPcHRpb25zGikKFVJ1bkhhbmRsZXJQb29sT3B0aW9ucxIQCghwcmlvcml0",
"eRgBIAEoAyJSCgpUcmFjZUxldmVsEgwKCE5PX1RSQUNFEAASEgoOU09GVFdB",
"UkVfVFJBQ0UQARISCg5IQVJEV0FSRV9UUkFDRRACEg4KCkZVTExfVFJBQ0UQ",
"A0oECAQQBSKHAwoLUnVuTWV0YWRhdGESKQoKc3RlcF9zdGF0cxgBIAEoCzIV",
"LnRlbnNvcmZsb3cuU3RlcFN0YXRzEiwKCmNvc3RfZ3JhcGgYAiABKAsyGC50",
"ZW5zb3JmbG93LkNvc3RHcmFwaERlZhIuChBwYXJ0aXRpb25fZ3JhcGhzGAMg",
"AygLMhQudGVuc29yZmxvdy5HcmFwaERlZhI/Cg9mdW5jdGlvbl9ncmFwaHMY",
"BCADKAsyJi50ZW5zb3JmbG93LlJ1bk1ldGFkYXRhLkZ1bmN0aW9uR3JhcGhz",
"Gq0BCg5GdW5jdGlvbkdyYXBocxIuChBwYXJ0aXRpb25fZ3JhcGhzGAEgAygL",
"MhQudGVuc29yZmxvdy5HcmFwaERlZhI0ChZwcmVfb3B0aW1pemF0aW9uX2dy",
"YXBoGAIgASgLMhQudGVuc29yZmxvdy5HcmFwaERlZhI1Chdwb3N0X29wdGlt",
"aXphdGlvbl9ncmFwaBgDIAEoCzIULnRlbnNvcmZsb3cuR3JhcGhEZWYiOgoQ",
"VGVuc29yQ29ubmVjdGlvbhITCgtmcm9tX3RlbnNvchgBIAEoCRIRCgl0b190",
"ZW5zb3IYAiABKAkisAMKD0NhbGxhYmxlT3B0aW9ucxIMCgRmZWVkGAEgAygJ",
"Eg0KBWZldGNoGAIgAygJEg4KBnRhcmdldBgDIAMoCRIrCgtydW5fb3B0aW9u",
"cxgEIAEoCzIWLnRlbnNvcmZsb3cuUnVuT3B0aW9ucxI3ChF0ZW5zb3JfY29u",
"bmVjdGlvbhgFIAMoCzIcLnRlbnNvcmZsb3cuVGVuc29yQ29ubmVjdGlvbhJC",
"CgxmZWVkX2RldmljZXMYBiADKAsyLC50ZW5zb3JmbG93LkNhbGxhYmxlT3B0",
"aW9ucy5GZWVkRGV2aWNlc0VudHJ5EkQKDWZldGNoX2RldmljZXMYByADKAsy",
"LS50ZW5zb3JmbG93LkNhbGxhYmxlT3B0aW9ucy5GZXRjaERldmljZXNFbnRy",
"eRIXCg9mZXRjaF9za2lwX3N5bmMYCCABKAgaMgoQRmVlZERldmljZXNFbnRy",
"eRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjMKEUZldGNoRGV2",
"aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFChAEK",
"GG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0IMQ29uZmlnUHJvdG9zUAFaVWdp",
"dGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28v",
"Y29yZS9wcm90b2J1Zi9mb3JfY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnBy",
"b3RvMw=="));
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[] {
@@ -146,7 +154,7 @@ namespace Tensorflow {
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", "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.ConfigProto), global::Tensorflow.ConfigProto.Parser, new[]{ "DeviceCount", "IntraOpParallelismThreads", "InterOpParallelismThreads", "UsePerSessionThreads", "SessionInterOpThreadPool", "PlacementPeriod", "DeviceFilters", "GpuOptions", "AllowSoftPlacement", "LogDevicePlacement", "GraphOptions", "OperationTimeoutInMs", "RpcOptions", "ClusterDef", "IsolateSessionState", "ShareClusterDevicesInSession", "Experimental" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { null, new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.ConfigProto.Types.Experimental), global::Tensorflow.ConfigProto.Types.Experimental.Parser, new[]{ "CollectiveGroupLeader", "ExecutorType", "RecvBufMaxChunk", "UseNumaAffinity", "CollectiveDeterministicSequentialExecution", "CollectiveNccl", "ShareSessionStateInClusterspecPropagation", "DisableThreadSpinning", "ShareClusterDevicesInSession", "SessionMetadata", "OptimizeForStaticGraph", "EnableMlirBridge", "MlirBridgeRollout", "EnableMlirGraphOptimization", "DisableOutputPartitionGraphs", "XlaFusionAutotunerThresh", "UseTfrt" }, null, new[]{ typeof(global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout) }, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.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),
@@ -3279,9 +3287,11 @@ namespace Tensorflow {
sessionMetadata_ = other.sessionMetadata_ != null ? other.sessionMetadata_.Clone() : null;
optimizeForStaticGraph_ = other.optimizeForStaticGraph_;
enableMlirBridge_ = other.enableMlirBridge_;
mlirBridgeRollout_ = other.mlirBridgeRollout_;
enableMlirGraphOptimization_ = other.enableMlirGraphOptimization_;
disableOutputPartitionGraphs_ = other.disableOutputPartitionGraphs_;
xlaFusionAutotunerThresh_ = other.xlaFusionAutotunerThresh_;
useTfrt_ = other.useTfrt_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

@@ -3488,6 +3498,9 @@ namespace Tensorflow {
public const int EnableMlirBridgeFieldNumber = 13;
private bool enableMlirBridge_;
/// <summary>
/// This field will eventually be deprecated and replaced by
/// mlir_bridge_rollout (b/166038521).
///
/// Whether to enable the MLIR-based TF->XLA bridge.
///
/// This is a replacement to the existing bridge, and not ready for
@@ -3508,6 +3521,23 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "mlir_bridge_rollout" field.</summary>
public const int MlirBridgeRolloutFieldNumber = 17;
private global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout mlirBridgeRollout_ = global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout.Unspecified;
/// <summary>
/// This field is underdevelopment, for now use enable_mlir_bridge
/// (b/166038521).
///
/// Whether to enable the MLIR-based TF->XLA bridge.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout MlirBridgeRollout {
get { return mlirBridgeRollout_; }
set {
mlirBridgeRollout_ = value;
}
}

/// <summary>Field number for the "enable_mlir_graph_optimization" field.</summary>
public const int EnableMlirGraphOptimizationFieldNumber = 16;
private bool enableMlirGraphOptimization_;
@@ -3562,6 +3592,20 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "use_tfrt" field.</summary>
public const int UseTfrtFieldNumber = 18;
private bool useTfrt_;
/// <summary>
/// Whether runtime execution uses TFRT.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool UseTfrt {
get { return useTfrt_; }
set {
useTfrt_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Experimental);
@@ -3587,9 +3631,11 @@ namespace Tensorflow {
if (!object.Equals(SessionMetadata, other.SessionMetadata)) return false;
if (OptimizeForStaticGraph != other.OptimizeForStaticGraph) return false;
if (EnableMlirBridge != other.EnableMlirBridge) return false;
if (MlirBridgeRollout != other.MlirBridgeRollout) return false;
if (EnableMlirGraphOptimization != other.EnableMlirGraphOptimization) return false;
if (DisableOutputPartitionGraphs != other.DisableOutputPartitionGraphs) return false;
if (XlaFusionAutotunerThresh != other.XlaFusionAutotunerThresh) return false;
if (UseTfrt != other.UseTfrt) return false;
return Equals(_unknownFields, other._unknownFields);
}

@@ -3608,9 +3654,11 @@ namespace Tensorflow {
if (sessionMetadata_ != null) hash ^= SessionMetadata.GetHashCode();
if (OptimizeForStaticGraph != false) hash ^= OptimizeForStaticGraph.GetHashCode();
if (EnableMlirBridge != false) hash ^= EnableMlirBridge.GetHashCode();
if (MlirBridgeRollout != global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout.Unspecified) hash ^= MlirBridgeRollout.GetHashCode();
if (EnableMlirGraphOptimization != false) hash ^= EnableMlirGraphOptimization.GetHashCode();
if (DisableOutputPartitionGraphs != false) hash ^= DisableOutputPartitionGraphs.GetHashCode();
if (XlaFusionAutotunerThresh != 0L) hash ^= XlaFusionAutotunerThresh.GetHashCode();
if (UseTfrt != false) hash ^= UseTfrt.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -3684,6 +3732,14 @@ namespace Tensorflow {
output.WriteRawTag(128, 1);
output.WriteBool(EnableMlirGraphOptimization);
}
if (MlirBridgeRollout != global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout.Unspecified) {
output.WriteRawTag(136, 1);
output.WriteEnum((int) MlirBridgeRollout);
}
if (UseTfrt != false) {
output.WriteRawTag(144, 1);
output.WriteBool(UseTfrt);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -3728,6 +3784,9 @@ namespace Tensorflow {
if (EnableMlirBridge != false) {
size += 1 + 1;
}
if (MlirBridgeRollout != global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout.Unspecified) {
size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) MlirBridgeRollout);
}
if (EnableMlirGraphOptimization != false) {
size += 2 + 1;
}
@@ -3737,6 +3796,9 @@ namespace Tensorflow {
if (XlaFusionAutotunerThresh != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(XlaFusionAutotunerThresh);
}
if (UseTfrt != false) {
size += 2 + 1;
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -3787,6 +3849,9 @@ namespace Tensorflow {
if (other.EnableMlirBridge != false) {
EnableMlirBridge = other.EnableMlirBridge;
}
if (other.MlirBridgeRollout != global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout.Unspecified) {
MlirBridgeRollout = other.MlirBridgeRollout;
}
if (other.EnableMlirGraphOptimization != false) {
EnableMlirGraphOptimization = other.EnableMlirGraphOptimization;
}
@@ -3796,6 +3861,9 @@ namespace Tensorflow {
if (other.XlaFusionAutotunerThresh != 0L) {
XlaFusionAutotunerThresh = other.XlaFusionAutotunerThresh;
}
if (other.UseTfrt != false) {
UseTfrt = other.UseTfrt;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

@@ -3870,10 +3938,60 @@ namespace Tensorflow {
EnableMlirGraphOptimization = input.ReadBool();
break;
}
case 136: {
MlirBridgeRollout = (global::Tensorflow.ConfigProto.Types.Experimental.Types.MlirBridgeRollout) input.ReadEnum();
break;
}
case 144: {
UseTfrt = input.ReadBool();
break;
}
}
}
}

#region Nested types
/// <summary>Container for nested types declared in the Experimental message type.</summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static partial class Types {
/// <summary>
/// An enum that describes the state of the MLIR bridge rollout.
/// </summary>
public enum MlirBridgeRollout {
/// <summary>
/// If this field is left unspecified, the MLIR bridge may be selectively
/// enabled on a per graph basis.
/// </summary>
[pbr::OriginalName("MLIR_BRIDGE_ROLLOUT_UNSPECIFIED")] Unspecified = 0,
/// <summary>
/// Enabling the MLIR bridge enables it for all graphs in this session.
/// </summary>
[pbr::OriginalName("MLIR_BRIDGE_ROLLOUT_ENABLED")] Enabled = 1,
/// <summary>
/// Disabling the MLIR bridge disables it for all graphs in this session.
/// </summary>
[pbr::OriginalName("MLIR_BRIDGE_ROLLOUT_DISABLED")] Disabled = 2,
/// <summary>
/// Enable the MLIR bridge on a per graph basis based on an analysis of
/// the features used in the graph. If the features used by the graph are
/// supported by the MLIR bridge, the MLIR bridge will be used to run the
/// graph.
/// </summary>
[pbr::OriginalName("MLIR_BRIDGE_ROLLOUT_SAFE_MODE_ENABLED")] SafeModeEnabled = 3,
/// <summary>
/// Enable the MLIR bridge in a fallback mode on a per graph basis based
/// on an analysis of the features used in the graph.
/// Running the MLIR bridge in the fallback mode means that it is
/// executed and it commits all the changes to the TF graph in case
/// of success. And it does not in case of failures and let the old bridge
/// to process the TF graph.
/// </summary>
[pbr::OriginalName("MLIR_BRIDGE_ROLLOUT_SAFE_MODE_FALLBACK_ENABLED")] SafeModeFallbackEnabled = 4,
}

}
#endregion

}

}


+ 4
- 4
src/TensorFlowNET.Core/Protobuf/ControlFlow.cs View File

@@ -44,10 +44,10 @@ namespace Tensorflow {
"X2VudGVyX25hbWVzGAogAygJEikKCnZhbHVlc19kZWYYCSABKAsyFS50ZW5z",
"b3JmbG93LlZhbHVlc0RlZhIfChdtYXhpbXVtX2l0ZXJhdGlvbnNfbmFtZRgL",
"IAEoCRI6Cg9uZXN0ZWRfY29udGV4dHMYDCADKAsyIS50ZW5zb3JmbG93LkNv",
"bnRyb2xGbG93Q29udGV4dERlZkJ8ChhvcmcudGVuc29yZmxvdy5mcmFtZXdv",
"cmtCEUNvbnRyb2xGbG93UHJvdG9zUAFaSGdpdGh1Yi5jb20vdGVuc29yZmxv",
"dy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9jb3JlX3Byb3Rvc19n",
"b19wcm90b/gBAWIGcHJvdG8z"));
"bnRyb2xGbG93Q29udGV4dERlZkKJAQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3",
"b3JrQhFDb250cm9sRmxvd1Byb3Rvc1ABWlVnaXRodWIuY29tL3RlbnNvcmZs",
"b3cvdGVuc29yZmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvcHJvdG9idWYvZm9y",
"X2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 47
- 11
src/TensorFlowNET.Core/Protobuf/CppShapeInference.cs View File

@@ -27,22 +27,25 @@ namespace Tensorflow {
"CjV0ZW5zb3JmbG93L3B5dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVy",
"ZW5jZS5wcm90bxIKdGVuc29yZmxvdxoldGVuc29yZmxvdy9jb3JlL2ZyYW1l",
"d29yay90eXBlcy5wcm90bxosdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay90",
"ZW5zb3Jfc2hhcGUucHJvdG8i7QIKF0NwcFNoYXBlSW5mZXJlbmNlUmVzdWx0",
"ZW5zb3Jfc2hhcGUucHJvdG8ipQMKF0NwcFNoYXBlSW5mZXJlbmNlUmVzdWx0",
"EisKBXNoYXBlGAEgASgLMhwudGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3Rv",
"EkMKC2hhbmRsZV9kYXRhGAQgASgLMi4udGVuc29yZmxvdy5DcHBTaGFwZUlu",
"ZmVyZW5jZVJlc3VsdC5IYW5kbGVEYXRhGmYKEkhhbmRsZVNoYXBlQW5kVHlw",
"ZRIrCgVzaGFwZRgBIAEoCzIcLnRlbnNvcmZsb3cuVGVuc29yU2hhcGVQcm90",
"bxIjCgVkdHlwZRgCIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUabAoKSGFu",
"ZGxlRGF0YRIOCgZpc19zZXQYASABKAgSTgoOc2hhcGVfYW5kX3R5cGUYAiAD",
"KAsyNi50ZW5zb3JmbG93LkNwcFNoYXBlSW5mZXJlbmNlUmVzdWx0LkhhbmRs",
"ZVNoYXBlQW5kVHlwZUoECAIQA0oECAMQBCJlCh1DcHBTaGFwZUluZmVyZW5j",
"ZUlucHV0c05lZWRlZBIcChRpbnB1dF90ZW5zb3JzX25lZWRlZBgBIAMoBRIm",
"Ch5pbnB1dF90ZW5zb3JzX2FzX3NoYXBlc19uZWVkZWQYAiADKAVCA/gBAWIG",
"cHJvdG8z"));
"ZmVyZW5jZVJlc3VsdC5IYW5kbGVEYXRhGp0BChJIYW5kbGVTaGFwZUFuZFR5",
"cGUSKwoFc2hhcGUYASABKAsyHC50ZW5zb3JmbG93LlRlbnNvclNoYXBlUHJv",
"dG8SIwoFZHR5cGUYAiABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBlEjUKEHNw",
"ZWNpYWxpemVkX3R5cGUYAyABKA4yGy50ZW5zb3JmbG93LlNwZWNpYWxpemVk",
"VHlwZRpsCgpIYW5kbGVEYXRhEg4KBmlzX3NldBgBIAEoCBJOCg5zaGFwZV9h",
"bmRfdHlwZRgCIAMoCzI2LnRlbnNvcmZsb3cuQ3BwU2hhcGVJbmZlcmVuY2VS",
"ZXN1bHQuSGFuZGxlU2hhcGVBbmRUeXBlSgQIAhADSgQIAxAEImUKHUNwcFNo",
"YXBlSW5mZXJlbmNlSW5wdXRzTmVlZGVkEhwKFGlucHV0X3RlbnNvcnNfbmVl",
"ZGVkGAEgAygFEiYKHmlucHV0X3RlbnNvcnNfYXNfc2hhcGVzX25lZWRlZBgC",
"IAMoBUJhWlxnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5z",
"b3JmbG93L2dvL3B5dGhvbi9mcmFtZXdvcmsvY3BwX3NoYXBlX2luZmVyZW5j",
"ZV9nb19wcm90b/gBAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.TensorShapeReflection.Descriptor, },
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), global::Tensorflow.CppShapeInferenceResult.Parser, new[]{ "Shape", "HandleData" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType), global::Tensorflow.CppShapeInferenceResult.Types.HandleShapeAndType.Parser, new[]{ "Shape", "Dtype", "SpecializedType" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.CppShapeInferenceResult.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)
}));
@@ -249,6 +252,7 @@ namespace Tensorflow {
public HandleShapeAndType(HandleShapeAndType other) : this() {
shape_ = other.shape_ != null ? other.shape_.Clone() : null;
dtype_ = other.dtype_;
specializedType_ = other.specializedType_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

@@ -279,6 +283,22 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "specialized_type" field.</summary>
public const int SpecializedTypeFieldNumber = 3;
private global::Tensorflow.SpecializedType specializedType_ = global::Tensorflow.SpecializedType.StInvalid;
/// <summary>
/// For dtype==DT_VARIANT, specialized_type may indicate a more specific
/// type. For other dtypes or when the information is unavailable it is set
/// to ST_INVALID.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.SpecializedType SpecializedType {
get { return specializedType_; }
set {
specializedType_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as HandleShapeAndType);
@@ -294,6 +314,7 @@ namespace Tensorflow {
}
if (!object.Equals(Shape, other.Shape)) return false;
if (Dtype != other.Dtype) return false;
if (SpecializedType != other.SpecializedType) return false;
return Equals(_unknownFields, other._unknownFields);
}

@@ -302,6 +323,7 @@ namespace Tensorflow {
int hash = 1;
if (shape_ != null) hash ^= Shape.GetHashCode();
if (Dtype != global::Tensorflow.DataType.DtInvalid) hash ^= Dtype.GetHashCode();
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) hash ^= SpecializedType.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -323,6 +345,10 @@ namespace Tensorflow {
output.WriteRawTag(16);
output.WriteEnum((int) Dtype);
}
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) {
output.WriteRawTag(24);
output.WriteEnum((int) SpecializedType);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -337,6 +363,9 @@ namespace Tensorflow {
if (Dtype != global::Tensorflow.DataType.DtInvalid) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Dtype);
}
if (SpecializedType != global::Tensorflow.SpecializedType.StInvalid) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) SpecializedType);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -357,6 +386,9 @@ namespace Tensorflow {
if (other.Dtype != global::Tensorflow.DataType.DtInvalid) {
Dtype = other.Dtype;
}
if (other.SpecializedType != global::Tensorflow.SpecializedType.StInvalid) {
SpecializedType = other.SpecializedType;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

@@ -379,6 +411,10 @@ namespace Tensorflow {
Dtype = (global::Tensorflow.DataType) input.ReadEnum();
break;
}
case 24: {
SpecializedType = (global::Tensorflow.SpecializedType) input.ReadEnum();
break;
}
}
}
}


+ 4
- 4
src/TensorFlowNET.Core/Protobuf/Debug.cs View File

@@ -35,10 +35,10 @@ namespace Tensorflow {
"ASgJEhEKCWZpbGVfcGF0aBgCIAEoCRIVCg1sYXN0X21vZGlmaWVkGAMgASgD",
"Eg0KBWJ5dGVzGAQgASgDEg0KBWxpbmVzGAUgAygJIksKE0RlYnVnZ2VkU291",
"cmNlRmlsZXMSNAoMc291cmNlX2ZpbGVzGAEgAygLMh4udGVuc29yZmxvdy5E",
"ZWJ1Z2dlZFNvdXJjZUZpbGVCdgoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr",
"QgtEZWJ1Z1Byb3Rvc1ABWkhnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29y",
"Zmxvdy90ZW5zb3JmbG93L2dvL2NvcmUvY29yZV9wcm90b3NfZ29fcHJvdG/4",
"AQFiBnByb3RvMw=="));
"ZWJ1Z2dlZFNvdXJjZUZpbGVCgwEKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29y",
"a0ILRGVidWdQcm90b3NQAVpVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNv",
"cmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3JlX3By",
"b3Rvc19nb19wcm90b/gBAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 40
- 32
src/TensorFlowNET.Core/Protobuf/Event.cs View File

@@ -25,38 +25,40 @@ namespace Tensorflow {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CiB0ZW5zb3JmbG93L2NvcmUvdXRpbC9ldmVudC5wcm90bxIKdGVuc29yZmxv",
"dxondGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9zdW1tYXJ5LnByb3RvIrsC",
"dxondGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9zdW1tYXJ5LnByb3RvIr8C",
"CgVFdmVudBIRCgl3YWxsX3RpbWUYASABKAESDAoEc3RlcBgCIAEoAxIWCgxm",
"aWxlX3ZlcnNpb24YAyABKAlIABITCglncmFwaF9kZWYYBCABKAxIABImCgdz",
"dW1tYXJ5GAUgASgLMhMudGVuc29yZmxvdy5TdW1tYXJ5SAASLQoLbG9nX21l",
"c3NhZ2UYBiABKAsyFi50ZW5zb3JmbG93LkxvZ01lc3NhZ2VIABItCgtzZXNz",
"aW9uX2xvZxgHIAEoCzIWLnRlbnNvcmZsb3cuU2Vzc2lvbkxvZ0gAEjwKE3Rh",
"Z2dlZF9ydW5fbWV0YWRhdGEYCCABKAsyHS50ZW5zb3JmbG93LlRhZ2dlZFJ1",
"bk1ldGFkYXRhSAASGAoObWV0YV9ncmFwaF9kZWYYCSABKAxIAEIGCgR3aGF0",
"IpkBCgpMb2dNZXNzYWdlEisKBWxldmVsGAEgASgOMhwudGVuc29yZmxvdy5M",
"b2dNZXNzYWdlLkxldmVsEg8KB21lc3NhZ2UYAiABKAkiTQoFTGV2ZWwSCwoH",
"VU5LTk9XThAAEg0KCURFQlVHR0lORxAKEggKBElORk8QFBIICgRXQVJOEB4S",
"CQoFRVJST1IQKBIJCgVGQVRBTBAyIrYBCgpTZXNzaW9uTG9nEjQKBnN0YXR1",
"cxgBIAEoDjIkLnRlbnNvcmZsb3cuU2Vzc2lvbkxvZy5TZXNzaW9uU3RhdHVz",
"EhcKD2NoZWNrcG9pbnRfcGF0aBgCIAEoCRILCgNtc2cYAyABKAkiTAoNU2Vz",
"c2lvblN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABIJCgVTVEFSVBAB",
"EggKBFNUT1AQAhIOCgpDSEVDS1BPSU5UEAMiNgoRVGFnZ2VkUnVuTWV0YWRh",
"dGESCwoDdGFnGAEgASgJEhQKDHJ1bl9tZXRhZGF0YRgCIAEoDCIkCg5XYXRj",
"aGRvZ0NvbmZpZxISCgp0aW1lb3V0X21zGAEgASgDIiYKEVJlcXVlc3RlZEV4",
"aXRDb2RlEhEKCWV4aXRfY29kZRgBIAEoBSK2AQoWV29ya2VySGVhcnRiZWF0",
"UmVxdWVzdBI1Cg1zaHV0ZG93bl9tb2RlGAEgASgOMh4udGVuc29yZmxvdy5X",
"b3JrZXJTaHV0ZG93bk1vZGUSMwoPd2F0Y2hkb2dfY29uZmlnGAIgASgLMhou",
"dGVuc29yZmxvdy5XYXRjaGRvZ0NvbmZpZxIwCglleGl0X2NvZGUYAyABKAsy",
"HS50ZW5zb3JmbG93LlJlcXVlc3RlZEV4aXRDb2RlIoMBChdXb3JrZXJIZWFy",
"dGJlYXRSZXNwb25zZRIvCg1oZWFsdGhfc3RhdHVzGAEgASgOMhgudGVuc29y",
"Zmxvdy5Xb3JrZXJIZWFsdGgSJQoKd29ya2VyX2xvZxgCIAMoCzIRLnRlbnNv",
"cmZsb3cuRXZlbnQSEAoIaG9zdG5hbWUYAyABKAkqWwoMV29ya2VySGVhbHRo",
"EgYKAk9LEAASHAoYUkVDRUlWRURfU0hVVERPV05fU0lHTkFMEAESEgoOSU5U",
"RVJOQUxfRVJST1IQAhIRCg1TSFVUVElOR19ET1dOEAMqawoSV29ya2VyU2h1",
"dGRvd25Nb2RlEgsKB0RFRkFVTFQQABISCg5OT1RfQ09ORklHVVJFRBABEhgK",
"FFdBSVRfRk9SX0NPT1JESU5BVE9SEAISGgoWU0hVVERPV05fQUZURVJfVElN",
"RU9VVBADQicKE29yZy50ZW5zb3JmbG93LnV0aWxCC0V2ZW50UHJvdG9zUAH4",
"AQFiBnByb3RvMw=="));
"dW1tYXJ5GAUgASgLMhMudGVuc29yZmxvdy5TdW1tYXJ5SAASMQoLbG9nX21l",
"c3NhZ2UYBiABKAsyFi50ZW5zb3JmbG93LkxvZ01lc3NhZ2VCAhgBSAASLQoL",
"c2Vzc2lvbl9sb2cYByABKAsyFi50ZW5zb3JmbG93LlNlc3Npb25Mb2dIABI8",
"ChN0YWdnZWRfcnVuX21ldGFkYXRhGAggASgLMh0udGVuc29yZmxvdy5UYWdn",
"ZWRSdW5NZXRhZGF0YUgAEhgKDm1ldGFfZ3JhcGhfZGVmGAkgASgMSABCBgoE",
"d2hhdCKhAQoKTG9nTWVzc2FnZRIrCgVsZXZlbBgBIAEoDjIcLnRlbnNvcmZs",
"b3cuTG9nTWVzc2FnZS5MZXZlbBIPCgdtZXNzYWdlGAIgASgJIlEKBUxldmVs",
"EgsKB1VOS05PV04QABINCglERUJVR0dJTkcQChIICgRJTkZPEBQSCAoEV0FS",
"ThAeEgkKBUVSUk9SECgSCQoFRkFUQUwQMhoCGAE6AhgBIrYBCgpTZXNzaW9u",
"TG9nEjQKBnN0YXR1cxgBIAEoDjIkLnRlbnNvcmZsb3cuU2Vzc2lvbkxvZy5T",
"ZXNzaW9uU3RhdHVzEhcKD2NoZWNrcG9pbnRfcGF0aBgCIAEoCRILCgNtc2cY",
"AyABKAkiTAoNU2Vzc2lvblN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQ",
"ABIJCgVTVEFSVBABEggKBFNUT1AQAhIOCgpDSEVDS1BPSU5UEAMiNgoRVGFn",
"Z2VkUnVuTWV0YWRhdGESCwoDdGFnGAEgASgJEhQKDHJ1bl9tZXRhZGF0YRgC",
"IAEoDCIkCg5XYXRjaGRvZ0NvbmZpZxISCgp0aW1lb3V0X21zGAEgASgDIiYK",
"EVJlcXVlc3RlZEV4aXRDb2RlEhEKCWV4aXRfY29kZRgBIAEoBSK2AQoWV29y",
"a2VySGVhcnRiZWF0UmVxdWVzdBI1Cg1zaHV0ZG93bl9tb2RlGAEgASgOMh4u",
"dGVuc29yZmxvdy5Xb3JrZXJTaHV0ZG93bk1vZGUSMwoPd2F0Y2hkb2dfY29u",
"ZmlnGAIgASgLMhoudGVuc29yZmxvdy5XYXRjaGRvZ0NvbmZpZxIwCglleGl0",
"X2NvZGUYAyABKAsyHS50ZW5zb3JmbG93LlJlcXVlc3RlZEV4aXRDb2RlIoMB",
"ChdXb3JrZXJIZWFydGJlYXRSZXNwb25zZRIvCg1oZWFsdGhfc3RhdHVzGAEg",
"ASgOMhgudGVuc29yZmxvdy5Xb3JrZXJIZWFsdGgSJQoKd29ya2VyX2xvZxgC",
"IAMoCzIRLnRlbnNvcmZsb3cuRXZlbnQSEAoIaG9zdG5hbWUYAyABKAkqWwoM",
"V29ya2VySGVhbHRoEgYKAk9LEAASHAoYUkVDRUlWRURfU0hVVERPV05fU0lH",
"TkFMEAESEgoOSU5URVJOQUxfRVJST1IQAhIRCg1TSFVUVElOR19ET1dOEAMq",
"awoSV29ya2VyU2h1dGRvd25Nb2RlEgsKB0RFRkFVTFQQABISCg5OT1RfQ09O",
"RklHVVJFRBABEhgKFFdBSVRfRk9SX0NPT1JESU5BVE9SEAISGgoWU0hVVERP",
"V05fQUZURVJfVElNRU9VVBADQnAKE29yZy50ZW5zb3JmbG93LnV0aWxCC0V2",
"ZW50UHJvdG9zUAFaR2dpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93",
"L3RlbnNvcmZsb3cvZ28vY29yZS91dGlsL2V2ZW50X2dvX3Byb3Rv+AEBYgZw",
"cm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tensorflow.SummaryReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.WorkerHealth), typeof(global::Tensorflow.WorkerShutdownMode), }, null, new pbr::GeneratedClrTypeInfo[] {
@@ -243,9 +245,11 @@ namespace Tensorflow {
/// <summary>Field number for the "log_message" field.</summary>
public const int LogMessageFieldNumber = 6;
/// <summary>
/// The user output a log message. Not all messages are logged, only ones
/// generated via the Python tensorboard_logging module.
/// The user output a log message. This was theoretically used by the defunct
/// tensorboard_logging module, which has since been removed; this field is
/// now deprecated and should not be used.
/// </summary>
[global::System.ObsoleteAttribute]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.LogMessage LogMessage {
get { return whatCase_ == WhatOneofCase.LogMessage ? (global::Tensorflow.LogMessage) what_ : null; }
@@ -572,7 +576,11 @@ namespace Tensorflow {

/// <summary>
/// Protocol buffer used for logging messages to the events file.
///
/// This was theoretically used by the defunct tensorboard_logging module, which
/// has been removed; this message is now deprecated and should not be used.
/// </summary>
[global::System.ObsoleteAttribute]
public sealed partial class LogMessage : pb::IMessage<LogMessage> {
private static readonly pb::MessageParser<LogMessage> _parser = new pb::MessageParser<LogMessage>(() => new LogMessage());
private pb::UnknownFieldSet _unknownFields;


+ 4
- 0
src/TensorFlowNET.Core/Protobuf/Gen.bat View File

@@ -42,4 +42,8 @@ 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

ECHO protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/keras/protobuf/projector_config.proto
ECHO protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/keras/protobuf/versions.proto
ECHO protoc -I=%SRC_DIR% --csharp_out=%DST_DIR% tensorflow/python/keras/protobuf/saved_metadata.proto

PAUSE

+ 0
- 2
src/TensorFlowNET.Core/Protobuf/Graph.cs View File

@@ -132,8 +132,6 @@ namespace Tensorflow {
public const int LibraryFieldNumber = 2;
private global::Tensorflow.FunctionDefLibrary library_;
/// <summary>
/// EXPERIMENTAL. DO NOT USE OR DEPEND ON THIS YET.
///
/// "library" provides user-defined functions.
///
/// Naming:


+ 7
- 7
src/TensorFlowNET.Core/Protobuf/MetaGraph.cs View File

@@ -82,10 +82,10 @@ namespace Tensorflow {
"bmZvOgI4ARpGCgxPdXRwdXRzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVl",
"GAIgASgLMhYudGVuc29yZmxvdy5UZW5zb3JJbmZvOgI4ASJNCgxBc3NldEZp",
"bGVEZWYSKwoLdGVuc29yX2luZm8YASABKAsyFi50ZW5zb3JmbG93LlRlbnNv",
"ckluZm8SEAoIZmlsZW5hbWUYAiABKAlCegoYb3JnLnRlbnNvcmZsb3cuZnJh",
"bWV3b3JrQg9NZXRhR3JhcGhQcm90b3NQAVpIZ2l0aHViLmNvbS90ZW5zb3Jm",
"bG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9z",
"X2dvX3Byb3Rv+AEBYgZwcm90bzM="));
"ckluZm8SEAoIZmlsZW5hbWUYAiABKAlChwEKGG9yZy50ZW5zb3JmbG93LmZy",
"YW1ld29ya0IPTWV0YUdyYXBoUHJvdG9zUAFaVWdpdGh1Yi5jb20vdGVuc29y",
"Zmxvdy90ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1Zi9m",
"b3JfY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw=="));
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[] {
@@ -2536,7 +2536,7 @@ namespace Tensorflow {
/// graph.
///
/// For example, a model with two loss computations, sharing a single input,
/// might have the following signature_def map.
/// might have the following signature_def map, in a MetaGraphDef message.
///
/// Note that across the two SignatureDefs "loss_A" and "loss_B", the input key,
/// output key, and method_name are identical, and will be used by system(s) that
@@ -2562,9 +2562,9 @@ namespace Tensorflow {
/// tensor_shape: ...
/// }
/// }
/// method_name: "some/package/compute_loss"
/// }
/// ...
/// method_name: "some/package/compute_loss"
/// }
/// signature_def {
/// key: "loss_B"
@@ -2585,9 +2585,9 @@ namespace Tensorflow {
/// tensor_shape: ...
/// }
/// }
/// method_name: "some/package/compute_loss"
/// }
/// ...
/// method_name: "some/package/compute_loss"
/// }
/// </summary>
public sealed partial class SignatureDef : pb::IMessage<SignatureDef> {


+ 49
- 24
src/TensorFlowNET.Core/Protobuf/OpDef.cs View File

@@ -27,32 +27,34 @@ namespace Tensorflow {
"CiZ0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL29wX2RlZi5wcm90bxIKdGVu",
"c29yZmxvdxoqdGVuc29yZmxvdy9jb3JlL2ZyYW1ld29yay9hdHRyX3ZhbHVl",
"LnByb3RvGiV0ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3R5cGVzLnByb3Rv",
"ItAFCgVPcERlZhIMCgRuYW1lGAEgASgJEisKCWlucHV0X2FyZxgCIAMoCzIY",
"LnRlbnNvcmZsb3cuT3BEZWYuQXJnRGVmEiwKCm91dHB1dF9hcmcYAyADKAsy",
"GC50ZW5zb3JmbG93Lk9wRGVmLkFyZ0RlZhIWCg5jb250cm9sX291dHB1dBgU",
"IAMoCRInCgRhdHRyGAQgAygLMhkudGVuc29yZmxvdy5PcERlZi5BdHRyRGVm",
"Ei4KC2RlcHJlY2F0aW9uGAggASgLMhkudGVuc29yZmxvdy5PcERlcHJlY2F0",
"aW9uEg8KB3N1bW1hcnkYBSABKAkSEwoLZGVzY3JpcHRpb24YBiABKAkSFgoO",
"aXNfY29tbXV0YXRpdmUYEiABKAgSFAoMaXNfYWdncmVnYXRlGBAgASgIEhMK",
"C2lzX3N0YXRlZnVsGBEgASgIEiIKGmFsbG93c191bmluaXRpYWxpemVkX2lu",
"cHV0GBMgASgIGp8BCgZBcmdEZWYSDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlw",
"dGlvbhgCIAEoCRIiCgR0eXBlGAMgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw",
"ZRIRCgl0eXBlX2F0dHIYBCABKAkSEwoLbnVtYmVyX2F0dHIYBSABKAkSFgoO",
"dHlwZV9saXN0X2F0dHIYBiABKAkSDgoGaXNfcmVmGBAgASgIGr0BCgdBdHRy",
"RGVmEgwKBG5hbWUYASABKAkSDAoEdHlwZRgCIAEoCRIsCg1kZWZhdWx0X3Zh",
"bHVlGAMgASgLMhUudGVuc29yZmxvdy5BdHRyVmFsdWUSEwoLZGVzY3JpcHRp",
"b24YBCABKAkSEwoLaGFzX21pbmltdW0YBSABKAgSDwoHbWluaW11bRgGIAEo",
"AxItCg5hbGxvd2VkX3ZhbHVlcxgHIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZh",
"bHVlIjUKDU9wRGVwcmVjYXRpb24SDwoHdmVyc2lvbhgBIAEoBRITCgtleHBs",
"YW5hdGlvbhgCIAEoCSInCgZPcExpc3QSHQoCb3AYASADKAsyES50ZW5zb3Jm",
"bG93Lk9wRGVmQnsKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQ",
"cm90b3NQAVpNZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu",
"c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay9vcF9kZWZfZ29fcHJvdG/4AQFi",
"BnByb3RvMw=="));
"Gi90ZW5zb3JmbG93L2NvcmUvZnJhbWV3b3JrL3Jlc291cmNlX2hhbmRsZS5w",
"cm90byKUBgoFT3BEZWYSDAoEbmFtZRgBIAEoCRIrCglpbnB1dF9hcmcYAiAD",
"KAsyGC50ZW5zb3JmbG93Lk9wRGVmLkFyZ0RlZhIsCgpvdXRwdXRfYXJnGAMg",
"AygLMhgudGVuc29yZmxvdy5PcERlZi5BcmdEZWYSFgoOY29udHJvbF9vdXRw",
"dXQYFCADKAkSJwoEYXR0chgEIAMoCzIZLnRlbnNvcmZsb3cuT3BEZWYuQXR0",
"ckRlZhIuCgtkZXByZWNhdGlvbhgIIAEoCzIZLnRlbnNvcmZsb3cuT3BEZXBy",
"ZWNhdGlvbhIPCgdzdW1tYXJ5GAUgASgJEhMKC2Rlc2NyaXB0aW9uGAYgASgJ",
"EhYKDmlzX2NvbW11dGF0aXZlGBIgASgIEhQKDGlzX2FnZ3JlZ2F0ZRgQIAEo",
"CBITCgtpc19zdGF0ZWZ1bBgRIAEoCBIiChphbGxvd3NfdW5pbml0aWFsaXpl",
"ZF9pbnB1dBgTIAEoCBrjAQoGQXJnRGVmEgwKBG5hbWUYASABKAkSEwoLZGVz",
"Y3JpcHRpb24YAiABKAkSIgoEdHlwZRgDIAEoDjIULnRlbnNvcmZsb3cuRGF0",
"YVR5cGUSEQoJdHlwZV9hdHRyGAQgASgJEhMKC251bWJlcl9hdHRyGAUgASgJ",
"EhYKDnR5cGVfbGlzdF9hdHRyGAYgASgJEkIKC2hhbmRsZV9kYXRhGAcgAygL",
"Mi0udGVuc29yZmxvdy5SZXNvdXJjZUhhbmRsZVByb3RvLkR0eXBlQW5kU2hh",
"cGUSDgoGaXNfcmVmGBAgASgIGr0BCgdBdHRyRGVmEgwKBG5hbWUYASABKAkS",
"DAoEdHlwZRgCIAEoCRIsCg1kZWZhdWx0X3ZhbHVlGAMgASgLMhUudGVuc29y",
"Zmxvdy5BdHRyVmFsdWUSEwoLZGVzY3JpcHRpb24YBCABKAkSEwoLaGFzX21p",
"bmltdW0YBSABKAgSDwoHbWluaW11bRgGIAEoAxItCg5hbGxvd2VkX3ZhbHVl",
"cxgHIAEoCzIVLnRlbnNvcmZsb3cuQXR0clZhbHVlIjUKDU9wRGVwcmVjYXRp",
"b24SDwoHdmVyc2lvbhgBIAEoBRITCgtleHBsYW5hdGlvbhgCIAEoCSInCgZP",
"cExpc3QSHQoCb3AYASADKAsyES50ZW5zb3JmbG93Lk9wRGVmQnsKGG9yZy50",
"ZW5zb3JmbG93LmZyYW1ld29ya0ILT3BEZWZQcm90b3NQAVpNZ2l0aHViLmNv",
"bS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2Zy",
"YW1ld29yay9vcF9kZWZfZ29fcHJvdG/4AQFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, },
new pbr::FileDescriptor[] { global::Tensorflow.AttrValueReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.ResourceHandleReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef), global::Tensorflow.OpDef.Parser, new[]{ "Name", "InputArg", "OutputArg", "ControlOutput", "Attr", "Deprecation", "Summary", "Description", "IsCommutative", "IsAggregate", "IsStateful", "AllowsUninitializedInput" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.ArgDef), global::Tensorflow.OpDef.Types.ArgDef.Parser, new[]{ "Name", "Description", "Type", "TypeAttr", "NumberAttr", "TypeListAttr", "IsRef" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef), global::Tensorflow.OpDef.Parser, new[]{ "Name", "InputArg", "OutputArg", "ControlOutput", "Attr", "Deprecation", "Summary", "Description", "IsCommutative", "IsAggregate", "IsStateful", "AllowsUninitializedInput" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.ArgDef), global::Tensorflow.OpDef.Types.ArgDef.Parser, new[]{ "Name", "Description", "Type", "TypeAttr", "NumberAttr", "TypeListAttr", "HandleData", "IsRef" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDef.Types.AttrDef), global::Tensorflow.OpDef.Types.AttrDef.Parser, new[]{ "Name", "Type", "DefaultValue", "Description", "HasMinimum", "Minimum", "AllowedValues" }, null, null, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpDeprecation), global::Tensorflow.OpDeprecation.Parser, new[]{ "Version", "Explanation" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.OpList), global::Tensorflow.OpList.Parser, new[]{ "Op" }, null, null, null, null)
@@ -569,6 +571,7 @@ namespace Tensorflow {
typeAttr_ = other.typeAttr_;
numberAttr_ = other.numberAttr_;
typeListAttr_ = other.typeListAttr_;
handleData_ = other.handleData_.Clone();
isRef_ = other.isRef_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -672,6 +675,19 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "handle_data" field.</summary>
public const int HandleDataFieldNumber = 7;
private static readonly pb::FieldCodec<global::Tensorflow.ResourceHandleProto.Types.DtypeAndShape> _repeated_handleData_codec
= pb::FieldCodec.ForMessage(58, global::Tensorflow.ResourceHandleProto.Types.DtypeAndShape.Parser);
private readonly pbc::RepeatedField<global::Tensorflow.ResourceHandleProto.Types.DtypeAndShape> handleData_ = new pbc::RepeatedField<global::Tensorflow.ResourceHandleProto.Types.DtypeAndShape>();
/// <summary>
/// The handle data for resource inputs.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Tensorflow.ResourceHandleProto.Types.DtypeAndShape> HandleData {
get { return handleData_; }
}

/// <summary>Field number for the "is_ref" field.</summary>
public const int IsRefFieldNumber = 16;
private bool isRef_;
@@ -707,6 +723,7 @@ namespace Tensorflow {
if (TypeAttr != other.TypeAttr) return false;
if (NumberAttr != other.NumberAttr) return false;
if (TypeListAttr != other.TypeListAttr) return false;
if(!handleData_.Equals(other.handleData_)) return false;
if (IsRef != other.IsRef) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -720,6 +737,7 @@ namespace Tensorflow {
if (TypeAttr.Length != 0) hash ^= TypeAttr.GetHashCode();
if (NumberAttr.Length != 0) hash ^= NumberAttr.GetHashCode();
if (TypeListAttr.Length != 0) hash ^= TypeListAttr.GetHashCode();
hash ^= handleData_.GetHashCode();
if (IsRef != false) hash ^= IsRef.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
@@ -758,6 +776,7 @@ namespace Tensorflow {
output.WriteRawTag(50);
output.WriteString(TypeListAttr);
}
handleData_.WriteTo(output, _repeated_handleData_codec);
if (IsRef != false) {
output.WriteRawTag(128, 1);
output.WriteBool(IsRef);
@@ -788,6 +807,7 @@ namespace Tensorflow {
if (TypeListAttr.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeListAttr);
}
size += handleData_.CalculateSize(_repeated_handleData_codec);
if (IsRef != false) {
size += 2 + 1;
}
@@ -820,6 +840,7 @@ namespace Tensorflow {
if (other.TypeListAttr.Length != 0) {
TypeListAttr = other.TypeListAttr;
}
handleData_.Add(other.handleData_);
if (other.IsRef != false) {
IsRef = other.IsRef;
}
@@ -858,6 +879,10 @@ namespace Tensorflow {
TypeListAttr = input.ReadString();
break;
}
case 58: {
handleData_.AddEntriesFrom(input, _repeated_handleData_codec);
break;
}
case 128: {
IsRef = input.ReadBool();
break;


+ 200
- 53
src/TensorFlowNET.Core/Protobuf/RewriterConfig.cs View File

@@ -29,65 +29,73 @@ namespace Tensorflow {
"dHJfdmFsdWUucHJvdG8aLnRlbnNvcmZsb3cvY29yZS9wcm90b2J1Zi92ZXJp",
"Zmllcl9jb25maWcucHJvdG8iOwoTQXV0b1BhcmFsbGVsT3B0aW9ucxIOCgZl",
"bmFibGUYASABKAgSFAoMbnVtX3JlcGxpY2FzGAIgASgFIisKFlNjb3BlZEFs",
"bG9jYXRvck9wdGlvbnMSEQoJZW5hYmxlX29wGAEgAygJIpURCg5SZXdyaXRl",
"ckNvbmZpZxI7ChBsYXlvdXRfb3B0aW1pemVyGAEgASgOMiEudGVuc29yZmxv",
"dy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSOwoQY29uc3RhbnRfZm9sZGluZxgD",
"IAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEj0KEnNo",
"YXBlX29wdGltaXphdGlvbhgNIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJD",
"b25maWcuVG9nZ2xlEjQKCXJlbWFwcGluZxgOIAEoDjIhLnRlbnNvcmZsb3cu",
"UmV3cml0ZXJDb25maWcuVG9nZ2xlEkYKG2NvbW1vbl9zdWJncmFwaF9lbGlt",
"aW5hdGlvbhgYIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9n",
"Z2xlEkIKF2FyaXRobWV0aWNfb3B0aW1pemF0aW9uGAcgASgOMiEudGVuc29y",
"Zmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQgoXZGVwZW5kZW5jeV9vcHRp",
"bWl6YXRpb24YCCABKA4yIS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLlRv",
"Z2dsZRI8ChFsb29wX29wdGltaXphdGlvbhgJIAEoDjIhLnRlbnNvcmZsb3cu",
"UmV3cml0ZXJDb25maWcuVG9nZ2xlEkAKFWZ1bmN0aW9uX29wdGltaXphdGlv",
"bhgKIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEjkK",
"DmRlYnVnX3N0cmlwcGVyGAsgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNv",
"bmZpZy5Ub2dnbGUSHQoVZGlzYWJsZV9tb2RlbF9wcnVuaW5nGAIgASgIEkgK",
"HXNjb3BlZF9hbGxvY2F0b3Jfb3B0aW1pemF0aW9uGA8gASgOMiEudGVuc29y",
"Zmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQwoYcGluX3RvX2hvc3Rfb3B0",
"aW1pemF0aW9uGBIgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5U",
"b2dnbGUSQgoXaW1wbGVtZW50YXRpb25fc2VsZWN0b3IYFiABKA4yIS50ZW5z",
"b3JmbG93LlJld3JpdGVyQ29uZmlnLlRvZ2dsZRI/ChRhdXRvX21peGVkX3By",
"ZWNpc2lvbhgXIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9n",
"Z2xlEkMKGGF1dG9fbWl4ZWRfcHJlY2lzaW9uX21rbBgZIAEoDjIhLnRlbnNv",
"cmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEh4KFmRpc2FibGVfbWV0YV9v",
"cHRpbWl6ZXIYEyABKAgSTwoZbWV0YV9vcHRpbWl6ZXJfaXRlcmF0aW9ucxgM",
"bG9jYXRvck9wdGlvbnMSEQoJZW5hYmxlX29wGAEgAygJIuETCg5SZXdyaXRl",
"ckNvbmZpZxJDChVjcHVfbGF5b3V0X2NvbnZlcnNpb24YMiABKA4yJC50ZW5z",
"b3JmbG93LlJld3JpdGVyQ29uZmlnLkNwdUxheW91dBI7ChBsYXlvdXRfb3B0",
"aW1pemVyGAEgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dn",
"bGUSOwoQY29uc3RhbnRfZm9sZGluZxgDIAEoDjIhLnRlbnNvcmZsb3cuUmV3",
"cml0ZXJDb25maWcuVG9nZ2xlEj0KEnNoYXBlX29wdGltaXphdGlvbhgNIAEo",
"DjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEjQKCXJlbWFw",
"cGluZxgOIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xl",
"EkYKG2NvbW1vbl9zdWJncmFwaF9lbGltaW5hdGlvbhgYIAEoDjIhLnRlbnNv",
"cmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEkIKF2FyaXRobWV0aWNfb3B0",
"aW1pemF0aW9uGAcgASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5U",
"b2dnbGUSQgoXZGVwZW5kZW5jeV9vcHRpbWl6YXRpb24YCCABKA4yIS50ZW5z",
"b3JmbG93LlJld3JpdGVyQ29uZmlnLlRvZ2dsZRI8ChFsb29wX29wdGltaXph",
"dGlvbhgJIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xl",
"EkAKFWZ1bmN0aW9uX29wdGltaXphdGlvbhgKIAEoDjIhLnRlbnNvcmZsb3cu",
"UmV3cml0ZXJDb25maWcuVG9nZ2xlEjkKDmRlYnVnX3N0cmlwcGVyGAsgASgO",
"MiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSHQoVZGlzYWJs",
"ZV9tb2RlbF9wcnVuaW5nGAIgASgIEkgKHXNjb3BlZF9hbGxvY2F0b3Jfb3B0",
"aW1pemF0aW9uGA8gASgOMiEudGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5U",
"b2dnbGUSQwoYcGluX3RvX2hvc3Rfb3B0aW1pemF0aW9uGBIgASgOMiEudGVu",
"c29yZmxvdy5SZXdyaXRlckNvbmZpZy5Ub2dnbGUSQgoXaW1wbGVtZW50YXRp",
"b25fc2VsZWN0b3IYFiABKA4yIS50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmln",
"LlRvZ2dsZRI/ChRhdXRvX21peGVkX3ByZWNpc2lvbhgXIAEoDjIhLnRlbnNv",
"cmZsb3cuUmV3cml0ZXJDb25maWcuVG9nZ2xlEkMKGGF1dG9fbWl4ZWRfcHJl",
"Y2lzaW9uX21rbBgZIAEoDjIhLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcu",
"VG9nZ2xlEh4KFmRpc2FibGVfbWV0YV9vcHRpbWl6ZXIYEyABKAgSQAoVdXNl",
"X3BsdWdpbl9vcHRpbWl6ZXJzGBwgASgOMiEudGVuc29yZmxvdy5SZXdyaXRl",
"ckNvbmZpZy5Ub2dnbGUSTwoZbWV0YV9vcHRpbWl6ZXJfaXRlcmF0aW9ucxgM",
"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"));
"c1R5cGUSFwoPbWluX2dyYXBoX25vZGVzGBEgASgFEjsKM2V4cGVyaW1lbnRh",
"bF9kaXNhYmxlX2NvbXByZXNzZWRfdGVuc29yX29wdGltaXphdGlvbhgaIAEo",
"CBI7CjNleHBlcmltZW50YWxfZGlzYWJsZV9mb2xkaW5nX3F1YW50aXphdGlv",
"bl9lbXVsYXRpb24YGyABKAgSQgoTbWVtb3J5X29wdGltaXphdGlvbhgEIAEo",
"DjIlLnRlbnNvcmZsb3cuUmV3cml0ZXJDb25maWcuTWVtT3B0VHlwZRIvCidt",
"ZW1vcnlfb3B0aW1pemVyX3RhcmdldF9ub2RlX25hbWVfc2NvcGUYBiABKAkS",
"IQoZbWV0YV9vcHRpbWl6ZXJfdGltZW91dF9tcxgUIAEoAxI2Cg1hdXRvX3Bh",
"cmFsbGVsGAUgASgLMh8udGVuc29yZmxvdy5BdXRvUGFyYWxsZWxPcHRpb25z",
"EiAKGGZhaWxfb25fb3B0aW1pemVyX2Vycm9ycxgVIAEoCBJBChVzY29wZWRf",
"YWxsb2NhdG9yX29wdHMYECABKAsyIi50ZW5zb3JmbG93LlNjb3BlZEFsbG9j",
"YXRvck9wdGlvbnMSEgoKb3B0aW1pemVycxhkIAMoCRJLChFjdXN0b21fb3B0",
"aW1pemVycxjIASADKAsyLy50ZW5zb3JmbG93LlJld3JpdGVyQ29uZmlnLkN1",
"c3RvbUdyYXBoT3B0aW1pemVyEkQKH2ludGVyX29wdGltaXplcl92ZXJpZmll",
"cl9jb25maWcYrAIgASgLMhoudGVuc29yZmxvdy5WZXJpZmllckNvbmZpZxJG",
"CiFwb3N0X29wdGltaXphdGlvbl92ZXJpZmllcl9jb25maWcYrQIgASgLMhou",
"dGVuc29yZmxvdy5WZXJpZmllckNvbmZpZxrKAQoUQ3VzdG9tR3JhcGhPcHRp",
"bWl6ZXISDAoEbmFtZRgBIAEoCRJYCg1wYXJhbWV0ZXJfbWFwGAIgAygLMkEu",
"dGVuc29yZmxvdy5SZXdyaXRlckNvbmZpZy5DdXN0b21HcmFwaE9wdGltaXpl",
"ci5QYXJhbWV0ZXJNYXBFbnRyeRpKChFQYXJhbWV0ZXJNYXBFbnRyeRILCgNr",
"ZXkYASABKAkSJAoFdmFsdWUYAiABKAsyFS50ZW5zb3JmbG93LkF0dHJWYWx1",
"ZToCOAEiNgoGVG9nZ2xlEgsKB0RFRkFVTFQQABIGCgJPThABEgcKA09GRhAC",
"Eg4KCkFHR1JFU1NJVkUQAyJJCglDcHVMYXlvdXQSGAoUTk9fQ09OVkVSU0lP",
"Tl9PTl9DUFUQABIQCgxOQ0hXX1RPX05IV0MQARIQCgxOSFdDX1RPX05DSFcQ",
"AiI8ChFOdW1JdGVyYXRpb25zVHlwZRIVChFERUZBVUxUX05VTV9JVEVSUxAA",
"EgcKA09ORRABEgcKA1RXTxACIp8BCgpNZW1PcHRUeXBlEhMKD0RFRkFVTFRf",
"TUVNX09QVBAAEg4KCk5PX01FTV9PUFQQARIKCgZNQU5VQUwQAhIXChNTV0FQ",
"UElOR19IRVVSSVNUSUNTEAQSHAoYUkVDT01QVVRBVElPTl9IRVVSSVNUSUNT",
"EAUSGQoVU0NIRURVTElOR19IRVVSSVNUSUNTEAYSDgoKSEVVUklTVElDUxAD",
"QowBChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtCFFJld3JpdGVyQ29uZmln",
"UHJvdG9zUAFaVWdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5zb3JmbG93L3Rl",
"bnNvcmZsb3cvZ28vY29yZS9wcm90b2J1Zi9mb3JfY29yZV9wcm90b3NfZ29f",
"cHJvdG/4AQFiBnByb3RvMw=="));
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", "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, })})
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.RewriterConfig), global::Tensorflow.RewriterConfig.Parser, new[]{ "CpuLayoutConversion", "LayoutOptimizer", "ConstantFolding", "ShapeOptimization", "Remapping", "CommonSubgraphElimination", "ArithmeticOptimization", "DependencyOptimization", "LoopOptimization", "FunctionOptimization", "DebugStripper", "DisableModelPruning", "ScopedAllocatorOptimization", "PinToHostOptimization", "ImplementationSelector", "AutoMixedPrecision", "AutoMixedPrecisionMkl", "DisableMetaOptimizer", "UsePluginOptimizers", "MetaOptimizerIterations", "MinGraphNodes", "ExperimentalDisableCompressedTensorOptimization", "ExperimentalDisableFoldingQuantizationEmulation", "MemoryOptimization", "MemoryOptimizerTargetNodeNameScope", "MetaOptimizerTimeoutMs", "AutoParallel", "FailOnOptimizerErrors", "ScopedAllocatorOpts", "Optimizers", "CustomOptimizers", "InterOptimizerVerifierConfig", "PostOptimizationVerifierConfig" }, null, new[]{ typeof(global::Tensorflow.RewriterConfig.Types.Toggle), typeof(global::Tensorflow.RewriterConfig.Types.CpuLayout), 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
@@ -404,6 +412,7 @@ namespace Tensorflow {

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public RewriterConfig(RewriterConfig other) : this() {
cpuLayoutConversion_ = other.cpuLayoutConversion_;
layoutOptimizer_ = other.layoutOptimizer_;
constantFolding_ = other.constantFolding_;
shapeOptimization_ = other.shapeOptimization_;
@@ -421,8 +430,11 @@ namespace Tensorflow {
autoMixedPrecision_ = other.autoMixedPrecision_;
autoMixedPrecisionMkl_ = other.autoMixedPrecisionMkl_;
disableMetaOptimizer_ = other.disableMetaOptimizer_;
usePluginOptimizers_ = other.usePluginOptimizers_;
metaOptimizerIterations_ = other.metaOptimizerIterations_;
minGraphNodes_ = other.minGraphNodes_;
experimentalDisableCompressedTensorOptimization_ = other.experimentalDisableCompressedTensorOptimization_;
experimentalDisableFoldingQuantizationEmulation_ = other.experimentalDisableFoldingQuantizationEmulation_;
memoryOptimization_ = other.memoryOptimization_;
memoryOptimizerTargetNodeNameScope_ = other.memoryOptimizerTargetNodeNameScope_;
metaOptimizerTimeoutMs_ = other.metaOptimizerTimeoutMs_;
@@ -441,6 +453,20 @@ namespace Tensorflow {
return new RewriterConfig(this);
}

/// <summary>Field number for the "cpu_layout_conversion" field.</summary>
public const int CpuLayoutConversionFieldNumber = 50;
private global::Tensorflow.RewriterConfig.Types.CpuLayout cpuLayoutConversion_ = global::Tensorflow.RewriterConfig.Types.CpuLayout.NoConversionOnCpu;
/// <summary>
/// CPU Conversion settings between NHCW and NCHW.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.RewriterConfig.Types.CpuLayout CpuLayoutConversion {
get { return cpuLayoutConversion_; }
set {
cpuLayoutConversion_ = value;
}
}

/// <summary>Field number for the "layout_optimizer" field.</summary>
public const int LayoutOptimizerFieldNumber = 1;
private global::Tensorflow.RewriterConfig.Types.Toggle layoutOptimizer_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default;
@@ -694,6 +720,20 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "use_plugin_optimizers" field.</summary>
public const int UsePluginOptimizersFieldNumber = 28;
private global::Tensorflow.RewriterConfig.Types.Toggle usePluginOptimizers_ = global::Tensorflow.RewriterConfig.Types.Toggle.Default;
/// <summary>
/// Optimizers registered by plugin (default is ON)
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.RewriterConfig.Types.Toggle UsePluginOptimizers {
get { return usePluginOptimizers_; }
set {
usePluginOptimizers_ = value;
}
}

/// <summary>Field number for the "meta_optimizer_iterations" field.</summary>
public const int MetaOptimizerIterationsFieldNumber = 12;
private global::Tensorflow.RewriterConfig.Types.NumIterationsType metaOptimizerIterations_ = global::Tensorflow.RewriterConfig.Types.NumIterationsType.DefaultNumIters;
@@ -726,6 +766,40 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "experimental_disable_compressed_tensor_optimization" field.</summary>
public const int ExperimentalDisableCompressedTensorOptimizationFieldNumber = 26;
private bool experimentalDisableCompressedTensorOptimization_;
/// <summary>
/// Disable optimizations that assume compressed tensors. Note that this flag
/// is experimental and may be removed in the future.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool ExperimentalDisableCompressedTensorOptimization {
get { return experimentalDisableCompressedTensorOptimization_; }
set {
experimentalDisableCompressedTensorOptimization_ = value;
}
}

/// <summary>Field number for the "experimental_disable_folding_quantization_emulation" field.</summary>
public const int ExperimentalDisableFoldingQuantizationEmulationFieldNumber = 27;
private bool experimentalDisableFoldingQuantizationEmulation_;
/// <summary>
/// Disable folding quantization emulation ops such as FakeQuantWithMinMax* and
/// QuantizeAndDequantize*. Some compilers (e.g. the TF-to-tflite converter)
/// have to extract quantization configs (e.g. min/max range, number of bits,
/// and per-channel) from the quantization emulation ops. Note that this flag
/// is experimental and may be removed in the future. See b/174138564 for more
/// details.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool ExperimentalDisableFoldingQuantizationEmulation {
get { return experimentalDisableFoldingQuantizationEmulation_; }
set {
experimentalDisableFoldingQuantizationEmulation_ = value;
}
}

/// <summary>Field number for the "memory_optimization" field.</summary>
public const int MemoryOptimizationFieldNumber = 4;
private global::Tensorflow.RewriterConfig.Types.MemOptType memoryOptimization_ = global::Tensorflow.RewriterConfig.Types.MemOptType.DefaultMemOpt;
@@ -900,6 +974,7 @@ namespace Tensorflow {
if (ReferenceEquals(other, this)) {
return true;
}
if (CpuLayoutConversion != other.CpuLayoutConversion) return false;
if (LayoutOptimizer != other.LayoutOptimizer) return false;
if (ConstantFolding != other.ConstantFolding) return false;
if (ShapeOptimization != other.ShapeOptimization) return false;
@@ -917,8 +992,11 @@ namespace Tensorflow {
if (AutoMixedPrecision != other.AutoMixedPrecision) return false;
if (AutoMixedPrecisionMkl != other.AutoMixedPrecisionMkl) return false;
if (DisableMetaOptimizer != other.DisableMetaOptimizer) return false;
if (UsePluginOptimizers != other.UsePluginOptimizers) return false;
if (MetaOptimizerIterations != other.MetaOptimizerIterations) return false;
if (MinGraphNodes != other.MinGraphNodes) return false;
if (ExperimentalDisableCompressedTensorOptimization != other.ExperimentalDisableCompressedTensorOptimization) return false;
if (ExperimentalDisableFoldingQuantizationEmulation != other.ExperimentalDisableFoldingQuantizationEmulation) return false;
if (MemoryOptimization != other.MemoryOptimization) return false;
if (MemoryOptimizerTargetNodeNameScope != other.MemoryOptimizerTargetNodeNameScope) return false;
if (MetaOptimizerTimeoutMs != other.MetaOptimizerTimeoutMs) return false;
@@ -935,6 +1013,7 @@ namespace Tensorflow {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (CpuLayoutConversion != global::Tensorflow.RewriterConfig.Types.CpuLayout.NoConversionOnCpu) hash ^= CpuLayoutConversion.GetHashCode();
if (LayoutOptimizer != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= LayoutOptimizer.GetHashCode();
if (ConstantFolding != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ConstantFolding.GetHashCode();
if (ShapeOptimization != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= ShapeOptimization.GetHashCode();
@@ -952,8 +1031,11 @@ namespace Tensorflow {
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 (UsePluginOptimizers != global::Tensorflow.RewriterConfig.Types.Toggle.Default) hash ^= UsePluginOptimizers.GetHashCode();
if (MetaOptimizerIterations != global::Tensorflow.RewriterConfig.Types.NumIterationsType.DefaultNumIters) hash ^= MetaOptimizerIterations.GetHashCode();
if (MinGraphNodes != 0) hash ^= MinGraphNodes.GetHashCode();
if (ExperimentalDisableCompressedTensorOptimization != false) hash ^= ExperimentalDisableCompressedTensorOptimization.GetHashCode();
if (ExperimentalDisableFoldingQuantizationEmulation != false) hash ^= ExperimentalDisableFoldingQuantizationEmulation.GetHashCode();
if (MemoryOptimization != global::Tensorflow.RewriterConfig.Types.MemOptType.DefaultMemOpt) hash ^= MemoryOptimization.GetHashCode();
if (MemoryOptimizerTargetNodeNameScope.Length != 0) hash ^= MemoryOptimizerTargetNodeNameScope.GetHashCode();
if (MetaOptimizerTimeoutMs != 0L) hash ^= MetaOptimizerTimeoutMs.GetHashCode();
@@ -1077,6 +1159,22 @@ namespace Tensorflow {
output.WriteRawTag(200, 1);
output.WriteEnum((int) AutoMixedPrecisionMkl);
}
if (ExperimentalDisableCompressedTensorOptimization != false) {
output.WriteRawTag(208, 1);
output.WriteBool(ExperimentalDisableCompressedTensorOptimization);
}
if (ExperimentalDisableFoldingQuantizationEmulation != false) {
output.WriteRawTag(216, 1);
output.WriteBool(ExperimentalDisableFoldingQuantizationEmulation);
}
if (UsePluginOptimizers != global::Tensorflow.RewriterConfig.Types.Toggle.Default) {
output.WriteRawTag(224, 1);
output.WriteEnum((int) UsePluginOptimizers);
}
if (CpuLayoutConversion != global::Tensorflow.RewriterConfig.Types.CpuLayout.NoConversionOnCpu) {
output.WriteRawTag(144, 3);
output.WriteEnum((int) CpuLayoutConversion);
}
optimizers_.WriteTo(output, _repeated_optimizers_codec);
customOptimizers_.WriteTo(output, _repeated_customOptimizers_codec);
if (interOptimizerVerifierConfig_ != null) {
@@ -1095,6 +1193,9 @@ namespace Tensorflow {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (CpuLayoutConversion != global::Tensorflow.RewriterConfig.Types.CpuLayout.NoConversionOnCpu) {
size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) CpuLayoutConversion);
}
if (LayoutOptimizer != global::Tensorflow.RewriterConfig.Types.Toggle.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LayoutOptimizer);
}
@@ -1146,12 +1247,21 @@ namespace Tensorflow {
if (DisableMetaOptimizer != false) {
size += 2 + 1;
}
if (UsePluginOptimizers != global::Tensorflow.RewriterConfig.Types.Toggle.Default) {
size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) UsePluginOptimizers);
}
if (MetaOptimizerIterations != global::Tensorflow.RewriterConfig.Types.NumIterationsType.DefaultNumIters) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MetaOptimizerIterations);
}
if (MinGraphNodes != 0) {
size += 2 + pb::CodedOutputStream.ComputeInt32Size(MinGraphNodes);
}
if (ExperimentalDisableCompressedTensorOptimization != false) {
size += 2 + 1;
}
if (ExperimentalDisableFoldingQuantizationEmulation != false) {
size += 2 + 1;
}
if (MemoryOptimization != global::Tensorflow.RewriterConfig.Types.MemOptType.DefaultMemOpt) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) MemoryOptimization);
}
@@ -1189,6 +1299,9 @@ namespace Tensorflow {
if (other == null) {
return;
}
if (other.CpuLayoutConversion != global::Tensorflow.RewriterConfig.Types.CpuLayout.NoConversionOnCpu) {
CpuLayoutConversion = other.CpuLayoutConversion;
}
if (other.LayoutOptimizer != global::Tensorflow.RewriterConfig.Types.Toggle.Default) {
LayoutOptimizer = other.LayoutOptimizer;
}
@@ -1240,12 +1353,21 @@ namespace Tensorflow {
if (other.DisableMetaOptimizer != false) {
DisableMetaOptimizer = other.DisableMetaOptimizer;
}
if (other.UsePluginOptimizers != global::Tensorflow.RewriterConfig.Types.Toggle.Default) {
UsePluginOptimizers = other.UsePluginOptimizers;
}
if (other.MetaOptimizerIterations != global::Tensorflow.RewriterConfig.Types.NumIterationsType.DefaultNumIters) {
MetaOptimizerIterations = other.MetaOptimizerIterations;
}
if (other.MinGraphNodes != 0) {
MinGraphNodes = other.MinGraphNodes;
}
if (other.ExperimentalDisableCompressedTensorOptimization != false) {
ExperimentalDisableCompressedTensorOptimization = other.ExperimentalDisableCompressedTensorOptimization;
}
if (other.ExperimentalDisableFoldingQuantizationEmulation != false) {
ExperimentalDisableFoldingQuantizationEmulation = other.ExperimentalDisableFoldingQuantizationEmulation;
}
if (other.MemoryOptimization != global::Tensorflow.RewriterConfig.Types.MemOptType.DefaultMemOpt) {
MemoryOptimization = other.MemoryOptimization;
}
@@ -1401,6 +1523,22 @@ namespace Tensorflow {
AutoMixedPrecisionMkl = (global::Tensorflow.RewriterConfig.Types.Toggle) input.ReadEnum();
break;
}
case 208: {
ExperimentalDisableCompressedTensorOptimization = input.ReadBool();
break;
}
case 216: {
ExperimentalDisableFoldingQuantizationEmulation = input.ReadBool();
break;
}
case 224: {
UsePluginOptimizers = (global::Tensorflow.RewriterConfig.Types.Toggle) input.ReadEnum();
break;
}
case 400: {
CpuLayoutConversion = (global::Tensorflow.RewriterConfig.Types.CpuLayout) input.ReadEnum();
break;
}
case 802: {
optimizers_.AddEntriesFrom(input, _repeated_optimizers_codec);
break;
@@ -1443,6 +1581,15 @@ namespace Tensorflow {
[pbr::OriginalName("AGGRESSIVE")] Aggressive = 3,
}

/// <summary>
/// Enum for layout conversion between NCHW and NHWC on CPU. Default is OFF.
/// </summary>
public enum CpuLayout {
[pbr::OriginalName("NO_CONVERSION_ON_CPU")] NoConversionOnCpu = 0,
[pbr::OriginalName("NCHW_TO_NHWC")] NchwToNhwc = 1,
[pbr::OriginalName("NHWC_TO_NCHW")] NhwcToNchw = 2,
}

/// <summary>
/// Enum controlling the number of times to run optimizers. The default is to
/// run them twice.


+ 4
- 4
src/TensorFlowNET.Core/Protobuf/SavedModel.cs View File

@@ -28,10 +28,10 @@ namespace Tensorflow {
"CnRlbnNvcmZsb3caKXRlbnNvcmZsb3cvY29yZS9wcm90b2J1Zi9tZXRhX2dy",
"YXBoLnByb3RvIl8KClNhdmVkTW9kZWwSIgoac2F2ZWRfbW9kZWxfc2NoZW1h",
"X3ZlcnNpb24YASABKAMSLQoLbWV0YV9ncmFwaHMYAiADKAsyGC50ZW5zb3Jm",
"bG93Lk1ldGFHcmFwaERlZkJ7ChhvcmcudGVuc29yZmxvdy5mcmFtZXdvcmtC",
"EFNhdmVkTW9kZWxQcm90b3NQAVpIZ2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl",
"bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9zX2dvX3By",
"b3Rv+AEBYgZwcm90bzM="));
"bG93Lk1ldGFHcmFwaERlZkKIAQoYb3JnLnRlbnNvcmZsb3cuZnJhbWV3b3Jr",
"QhBTYXZlZE1vZGVsUHJvdG9zUAFaVWdpdGh1Yi5jb20vdGVuc29yZmxvdy90",
"ZW5zb3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1Zi9mb3JfY29y",
"ZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tensorflow.MetaGraphReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 180
- 22
src/TensorFlowNET.Core/Protobuf/SavedObjectGraph.cs View File

@@ -61,24 +61,30 @@ namespace Tensorflow {
"qAEKFVNhdmVkQ29uY3JldGVGdW5jdGlvbhIUCgxib3VuZF9pbnB1dHMYAiAD",
"KAUSQgodY2Fub25pY2FsaXplZF9pbnB1dF9zaWduYXR1cmUYAyABKAsyGy50",
"ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1ZRI1ChBvdXRwdXRfc2lnbmF0dXJl",
"GAQgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUifAoZU2F2ZWRC",
"YXJlQ29uY3JldGVGdW5jdGlvbhIeChZjb25jcmV0ZV9mdW5jdGlvbl9uYW1l",
"GAEgASgJEhkKEWFyZ3VtZW50X2tleXdvcmRzGAIgAygJEiQKHGFsbG93ZWRf",
"cG9zaXRpb25hbF9hcmd1bWVudHMYAyABKAMiIgoNU2F2ZWRDb25zdGFudBIR",
"CglvcGVyYXRpb24YASABKAki9gEKDVNhdmVkVmFyaWFibGUSIwoFZHR5cGUY",
"ASABKA4yFC50ZW5zb3JmbG93LkRhdGFUeXBlEisKBXNoYXBlGAIgASgLMhwu",
"dGVuc29yZmxvdy5UZW5zb3JTaGFwZVByb3RvEhEKCXRyYWluYWJsZRgDIAEo",
"CBI8Cg9zeW5jaHJvbml6YXRpb24YBCABKA4yIy50ZW5zb3JmbG93LlZhcmlh",
"YmxlU3luY2hyb25pemF0aW9uEjQKC2FnZ3JlZ2F0aW9uGAUgASgOMh8udGVu",
"c29yZmxvdy5WYXJpYWJsZUFnZ3JlZ2F0aW9uEgwKBG5hbWUYBiABKAkilQEK",
"DEZ1bmN0aW9uU3BlYxIwCgtmdWxsYXJnc3BlYxgBIAEoCzIbLnRlbnNvcmZs",
"b3cuU3RydWN0dXJlZFZhbHVlEhEKCWlzX21ldGhvZBgCIAEoCBI0Cg9pbnB1",
"dF9zaWduYXR1cmUYBSABKAsyGy50ZW5zb3JmbG93LlN0cnVjdHVyZWRWYWx1",
"ZUoECAMQBEoECAQQBSIfCg1TYXZlZFJlc291cmNlEg4KBmRldmljZRgBIAEo",
"CSJBCg5TYXZlYWJsZU9iamVjdBIVCg1zYXZlX2Z1bmN0aW9uGAIgASgFEhgK",
"EHJlc3RvcmVfZnVuY3Rpb24YAyABKAVCTVpIZ2l0aHViLmNvbS90ZW5zb3Jm",
"bG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9z",
"X2dvX3Byb3Rv+AEBYgZwcm90bzM="));
"GAQgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUirQEKGVNhdmVk",
"QmFyZUNvbmNyZXRlRnVuY3Rpb24SHgoWY29uY3JldGVfZnVuY3Rpb25fbmFt",
"ZRgBIAEoCRIZChFhcmd1bWVudF9rZXl3b3JkcxgCIAMoCRIkChxhbGxvd2Vk",
"X3Bvc2l0aW9uYWxfYXJndW1lbnRzGAMgASgDEi8KDWZ1bmN0aW9uX3NwZWMY",
"BCABKAsyGC50ZW5zb3JmbG93LkZ1bmN0aW9uU3BlYyIiCg1TYXZlZENvbnN0",
"YW50EhEKCW9wZXJhdGlvbhgBIAEoCSLXAgoNU2F2ZWRWYXJpYWJsZRIjCgVk",
"dHlwZRgBIAEoDjIULnRlbnNvcmZsb3cuRGF0YVR5cGUSKwoFc2hhcGUYAiAB",
"KAsyHC50ZW5zb3JmbG93LlRlbnNvclNoYXBlUHJvdG8SEQoJdHJhaW5hYmxl",
"GAMgASgIEjwKD3N5bmNocm9uaXphdGlvbhgEIAEoDjIjLnRlbnNvcmZsb3cu",
"VmFyaWFibGVTeW5jaHJvbml6YXRpb24SNAoLYWdncmVnYXRpb24YBSABKA4y",
"Hy50ZW5zb3JmbG93LlZhcmlhYmxlQWdncmVnYXRpb24SDAoEbmFtZRgGIAEo",
"CRIOCgZkZXZpY2UYByABKAkSTwosZXhwZXJpbWVudGFsX2Rpc3RyaWJ1dGVk",
"X3ZhcmlhYmxlX2NvbXBvbmVudHMYCCADKAsyGS50ZW5zb3JmbG93LlNhdmVk",
"VmFyaWFibGUi+wEKDEZ1bmN0aW9uU3BlYxIwCgtmdWxsYXJnc3BlYxgBIAEo",
"CzIbLnRlbnNvcmZsb3cuU3RydWN0dXJlZFZhbHVlEhEKCWlzX21ldGhvZBgC",
"IAEoCBI0Cg9pbnB1dF9zaWduYXR1cmUYBSABKAsyGy50ZW5zb3JmbG93LlN0",
"cnVjdHVyZWRWYWx1ZRI4CgtqaXRfY29tcGlsZRgGIAEoDjIjLnRlbnNvcmZs",
"b3cuRnVuY3Rpb25TcGVjLkppdENvbXBpbGUiKgoKSml0Q29tcGlsZRILCgdE",
"RUZBVUxUEAASBgoCT04QARIHCgNPRkYQAkoECAMQBEoECAQQBSIfCg1TYXZl",
"ZFJlc291cmNlEg4KBmRldmljZRgBIAEoCSJBCg5TYXZlYWJsZU9iamVjdBIV",
"Cg1zYXZlX2Z1bmN0aW9uGAIgASgFEhgKEHJlc3RvcmVfZnVuY3Rpb24YAyAB",
"KAVCWlpVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29y",
"Zmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3JlX3Byb3Rvc19nb19wcm90",
"b/gBAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::Tensorflow.TensorShapeReflection.Descriptor, global::Tensorflow.TypesReflection.Descriptor, global::Tensorflow.VariableReflection.Descriptor, global::Tensorflow.VersionsReflection.Descriptor, global::Tensorflow.StructReflection.Descriptor, global::Tensorflow.TrackableObjectGraphReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
@@ -88,10 +94,10 @@ namespace Tensorflow {
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedAsset), global::Tensorflow.SavedAsset.Parser, new[]{ "AssetFileDefIndex" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedFunction), global::Tensorflow.SavedFunction.Parser, new[]{ "ConcreteFunctions", "FunctionSpec" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConcreteFunction), global::Tensorflow.SavedConcreteFunction.Parser, new[]{ "BoundInputs", "CanonicalizedInputSignature", "OutputSignature" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedBareConcreteFunction), global::Tensorflow.SavedBareConcreteFunction.Parser, new[]{ "ConcreteFunctionName", "ArgumentKeywords", "AllowedPositionalArguments" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedBareConcreteFunction), global::Tensorflow.SavedBareConcreteFunction.Parser, new[]{ "ConcreteFunctionName", "ArgumentKeywords", "AllowedPositionalArguments", "FunctionSpec" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.SavedConstant), global::Tensorflow.SavedConstant.Parser, new[]{ "Operation" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.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.SavedVariable), global::Tensorflow.SavedVariable.Parser, new[]{ "Dtype", "Shape", "Trainable", "Synchronization", "Aggregation", "Name", "Device", "ExperimentalDistributedVariableComponents" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Tensorflow.FunctionSpec), global::Tensorflow.FunctionSpec.Parser, new[]{ "Fullargspec", "IsMethod", "InputSignature", "JitCompile" }, null, new[]{ typeof(global::Tensorflow.FunctionSpec.Types.JitCompile) }, 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)
}));
@@ -320,7 +326,7 @@ namespace Tensorflow {
/// Objects which this object depends on: named edges in the dependency
/// graph.
///
/// Note: currently only valid if kind == "user_object".
/// Note: currently only valid if kind == "user_object" or "resource".
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Tensorflow.TrackableObjectGraph.Types.TrackableObject.Types.ObjectReference> Children {
@@ -799,6 +805,9 @@ namespace Tensorflow {
public const int MetadataFieldNumber = 3;
private string metadata_ = "";
/// <summary>
/// Deprecated! At the time of deprecation, Keras was the only user of this
/// field, and its saving and loading code will be updated shortly.
/// Please save your application-specific metadata to separate file
/// Initialization-related metadata.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
@@ -1468,6 +1477,7 @@ namespace Tensorflow {
concreteFunctionName_ = other.concreteFunctionName_;
argumentKeywords_ = other.argumentKeywords_.Clone();
allowedPositionalArguments_ = other.allowedPositionalArguments_;
functionSpec_ = other.functionSpec_ != null ? other.functionSpec_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

@@ -1517,6 +1527,25 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "function_spec" field.</summary>
public const int FunctionSpecFieldNumber = 4;
private global::Tensorflow.FunctionSpec functionSpec_;
/// <summary>
/// The spec of the function that this ConcreteFunction is traced from. This
/// allows the ConcreteFunction to be called with nest structure inputs. This
/// field may not be populated. If this field is absent, the concrete function
/// can only be called with flat inputs.
/// TODO(b/169361281): support calling saved ConcreteFunction with structured
/// inputs in C++ SavedModel API.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.FunctionSpec FunctionSpec {
get { return functionSpec_; }
set {
functionSpec_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as SavedBareConcreteFunction);
@@ -1533,6 +1562,7 @@ namespace Tensorflow {
if (ConcreteFunctionName != other.ConcreteFunctionName) return false;
if(!argumentKeywords_.Equals(other.argumentKeywords_)) return false;
if (AllowedPositionalArguments != other.AllowedPositionalArguments) return false;
if (!object.Equals(FunctionSpec, other.FunctionSpec)) return false;
return Equals(_unknownFields, other._unknownFields);
}

@@ -1542,6 +1572,7 @@ namespace Tensorflow {
if (ConcreteFunctionName.Length != 0) hash ^= ConcreteFunctionName.GetHashCode();
hash ^= argumentKeywords_.GetHashCode();
if (AllowedPositionalArguments != 0L) hash ^= AllowedPositionalArguments.GetHashCode();
if (functionSpec_ != null) hash ^= FunctionSpec.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -1564,6 +1595,10 @@ namespace Tensorflow {
output.WriteRawTag(24);
output.WriteInt64(AllowedPositionalArguments);
}
if (functionSpec_ != null) {
output.WriteRawTag(34);
output.WriteMessage(FunctionSpec);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -1579,6 +1614,9 @@ namespace Tensorflow {
if (AllowedPositionalArguments != 0L) {
size += 1 + pb::CodedOutputStream.ComputeInt64Size(AllowedPositionalArguments);
}
if (functionSpec_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(FunctionSpec);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -1597,6 +1635,12 @@ namespace Tensorflow {
if (other.AllowedPositionalArguments != 0L) {
AllowedPositionalArguments = other.AllowedPositionalArguments;
}
if (other.functionSpec_ != null) {
if (functionSpec_ == null) {
FunctionSpec = new global::Tensorflow.FunctionSpec();
}
FunctionSpec.MergeFrom(other.FunctionSpec);
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

@@ -1620,6 +1664,13 @@ namespace Tensorflow {
AllowedPositionalArguments = input.ReadInt64();
break;
}
case 34: {
if (functionSpec_ == null) {
FunctionSpec = new global::Tensorflow.FunctionSpec();
}
input.ReadMessage(FunctionSpec);
break;
}
}
}
}
@@ -1793,6 +1844,8 @@ namespace Tensorflow {
synchronization_ = other.synchronization_;
aggregation_ = other.aggregation_;
name_ = other.name_;
device_ = other.device_;
experimentalDistributedVariableComponents_ = other.experimentalDistributedVariableComponents_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

@@ -1867,6 +1920,35 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "device" field.</summary>
public const int DeviceFieldNumber = 7;
private string device_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Device {
get { return device_; }
set {
device_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "experimental_distributed_variable_components" field.</summary>
public const int ExperimentalDistributedVariableComponentsFieldNumber = 8;
private static readonly pb::FieldCodec<global::Tensorflow.SavedVariable> _repeated_experimentalDistributedVariableComponents_codec
= pb::FieldCodec.ForMessage(66, global::Tensorflow.SavedVariable.Parser);
private readonly pbc::RepeatedField<global::Tensorflow.SavedVariable> experimentalDistributedVariableComponents_ = new pbc::RepeatedField<global::Tensorflow.SavedVariable>();
/// <summary>
/// List of component variables for a distributed variable.
///
/// When this field is non-empty, the SavedVariable will be assumed
/// to be a distributed variable defined by the components listed here.
///
/// This is only supported by experimental loaders at the moment.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::Tensorflow.SavedVariable> ExperimentalDistributedVariableComponents {
get { return experimentalDistributedVariableComponents_; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as SavedVariable);
@@ -1886,6 +1968,8 @@ namespace Tensorflow {
if (Synchronization != other.Synchronization) return false;
if (Aggregation != other.Aggregation) return false;
if (Name != other.Name) return false;
if (Device != other.Device) return false;
if(!experimentalDistributedVariableComponents_.Equals(other.experimentalDistributedVariableComponents_)) return false;
return Equals(_unknownFields, other._unknownFields);
}

@@ -1898,6 +1982,8 @@ namespace Tensorflow {
if (Synchronization != global::Tensorflow.VariableSynchronization.Auto) hash ^= Synchronization.GetHashCode();
if (Aggregation != global::Tensorflow.VariableAggregation.None) hash ^= Aggregation.GetHashCode();
if (Name.Length != 0) hash ^= Name.GetHashCode();
if (Device.Length != 0) hash ^= Device.GetHashCode();
hash ^= experimentalDistributedVariableComponents_.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -1935,6 +2021,11 @@ namespace Tensorflow {
output.WriteRawTag(50);
output.WriteString(Name);
}
if (Device.Length != 0) {
output.WriteRawTag(58);
output.WriteString(Device);
}
experimentalDistributedVariableComponents_.WriteTo(output, _repeated_experimentalDistributedVariableComponents_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -1961,6 +2052,10 @@ namespace Tensorflow {
if (Name.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
}
if (Device.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Device);
}
size += experimentalDistributedVariableComponents_.CalculateSize(_repeated_experimentalDistributedVariableComponents_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -1993,6 +2088,10 @@ namespace Tensorflow {
if (other.Name.Length != 0) {
Name = other.Name;
}
if (other.Device.Length != 0) {
Device = other.Device;
}
experimentalDistributedVariableComponents_.Add(other.experimentalDistributedVariableComponents_);
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

@@ -2031,6 +2130,14 @@ namespace Tensorflow {
Name = input.ReadString();
break;
}
case 58: {
Device = input.ReadString();
break;
}
case 66: {
experimentalDistributedVariableComponents_.AddEntriesFrom(input, _repeated_experimentalDistributedVariableComponents_codec);
break;
}
}
}
}
@@ -2069,6 +2176,7 @@ namespace Tensorflow {
fullargspec_ = other.fullargspec_ != null ? other.fullargspec_.Clone() : null;
isMethod_ = other.isMethod_;
inputSignature_ = other.inputSignature_ != null ? other.inputSignature_.Clone() : null;
jitCompile_ = other.jitCompile_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

@@ -2119,6 +2227,17 @@ namespace Tensorflow {
}
}

/// <summary>Field number for the "jit_compile" field.</summary>
public const int JitCompileFieldNumber = 6;
private global::Tensorflow.FunctionSpec.Types.JitCompile jitCompile_ = global::Tensorflow.FunctionSpec.Types.JitCompile.Default;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::Tensorflow.FunctionSpec.Types.JitCompile JitCompile {
get { return jitCompile_; }
set {
jitCompile_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as FunctionSpec);
@@ -2135,6 +2254,7 @@ namespace Tensorflow {
if (!object.Equals(Fullargspec, other.Fullargspec)) return false;
if (IsMethod != other.IsMethod) return false;
if (!object.Equals(InputSignature, other.InputSignature)) return false;
if (JitCompile != other.JitCompile) return false;
return Equals(_unknownFields, other._unknownFields);
}

@@ -2144,6 +2264,7 @@ namespace Tensorflow {
if (fullargspec_ != null) hash ^= Fullargspec.GetHashCode();
if (IsMethod != false) hash ^= IsMethod.GetHashCode();
if (inputSignature_ != null) hash ^= InputSignature.GetHashCode();
if (JitCompile != global::Tensorflow.FunctionSpec.Types.JitCompile.Default) hash ^= JitCompile.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -2169,6 +2290,10 @@ namespace Tensorflow {
output.WriteRawTag(42);
output.WriteMessage(InputSignature);
}
if (JitCompile != global::Tensorflow.FunctionSpec.Types.JitCompile.Default) {
output.WriteRawTag(48);
output.WriteEnum((int) JitCompile);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
@@ -2186,6 +2311,9 @@ namespace Tensorflow {
if (inputSignature_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(InputSignature);
}
if (JitCompile != global::Tensorflow.FunctionSpec.Types.JitCompile.Default) {
size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) JitCompile);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
@@ -2212,6 +2340,9 @@ namespace Tensorflow {
}
InputSignature.MergeFrom(other.InputSignature);
}
if (other.JitCompile != global::Tensorflow.FunctionSpec.Types.JitCompile.Default) {
JitCompile = other.JitCompile;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}

@@ -2241,10 +2372,37 @@ namespace Tensorflow {
input.ReadMessage(InputSignature);
break;
}
case 48: {
JitCompile = (global::Tensorflow.FunctionSpec.Types.JitCompile) input.ReadEnum();
break;
}
}
}
}

#region Nested types
/// <summary>Container for nested types declared in the FunctionSpec message type.</summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static partial class Types {
/// <summary>
/// Whether the function should be compiled by XLA.
///
/// The public interface to `tf.function` uses an optional boolean to
/// represent three distinct states for this field. Unfortunately, proto3
/// removes the ability to explicitly check for the presence or absence of a
/// field, so we instead map to an enum.
///
/// See `tf.function` for details.
/// </summary>
public enum JitCompile {
[pbr::OriginalName("DEFAULT")] Default = 0,
[pbr::OriginalName("ON")] On = 1,
[pbr::OriginalName("OFF")] Off = 2,
}

}
#endregion

}

/// <summary>


+ 4
- 4
src/TensorFlowNET.Core/Protobuf/Saver.cs View File

@@ -31,10 +31,10 @@ namespace Tensorflow {
"KAgSJQoda2VlcF9jaGVja3BvaW50X2V2ZXJ5X25faG91cnMYBiABKAISPQoH",
"dmVyc2lvbhgHIAEoDjIsLnRlbnNvcmZsb3cuU2F2ZXJEZWYuQ2hlY2twb2lu",
"dEZvcm1hdFZlcnNpb24iNQoXQ2hlY2twb2ludEZvcm1hdFZlcnNpb24SCgoG",
"TEVHQUNZEAASBgoCVjEQARIGCgJWMhACQnEKE29yZy50ZW5zb3JmbG93LnV0",
"aWxCC1NhdmVyUHJvdG9zUAFaSGdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z",
"b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9jb3JlX3Byb3Rvc19nb19wcm90",
"b/gBAWIGcHJvdG8z"));
"TEVHQUNZEAASBgoCVjEQARIGCgJWMhACQn4KE29yZy50ZW5zb3JmbG93LnV0",
"aWxCC1NhdmVyUHJvdG9zUAFaVWdpdGh1Yi5jb20vdGVuc29yZmxvdy90ZW5z",
"b3JmbG93L3RlbnNvcmZsb3cvZ28vY29yZS9wcm90b2J1Zi9mb3JfY29yZV9w",
"cm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 5
- 5
src/TensorFlowNET.Core/Protobuf/Struct.cs View File

@@ -58,19 +58,19 @@ namespace Tensorflow {
"YW1lGAEgASgJEisKBXNoYXBlGAIgASgLMhwudGVuc29yZmxvdy5UZW5zb3JT",
"aGFwZVByb3RvEiMKBWR0eXBlGAMgASgOMhQudGVuc29yZmxvdy5EYXRhVHlw",
"ZRIoCgdtaW5pbXVtGAQgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90bxIo",
"CgdtYXhpbXVtGAUgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90byKiAwoN",
"CgdtYXhpbXVtGAUgASgLMhcudGVuc29yZmxvdy5UZW5zb3JQcm90byKoAwoN",
"VHlwZVNwZWNQcm90bxJACg90eXBlX3NwZWNfY2xhc3MYASABKA4yJy50ZW5z",
"b3JmbG93LlR5cGVTcGVjUHJvdG8uVHlwZVNwZWNDbGFzcxIvCgp0eXBlX3N0",
"YXRlGAIgASgLMhsudGVuc29yZmxvdy5TdHJ1Y3R1cmVkVmFsdWUSHAoUdHlw",
"ZV9zcGVjX2NsYXNzX25hbWUYAyABKAki/wEKDVR5cGVTcGVjQ2xhc3MSCwoH",
"ZV9zcGVjX2NsYXNzX25hbWUYAyABKAkihQIKDVR5cGVTcGVjQ2xhc3MSCwoH",
"VU5LTk9XThAAEhYKElNQQVJTRV9URU5TT1JfU1BFQxABEhcKE0lOREVYRURf",
"U0xJQ0VTX1NQRUMQAhIWChJSQUdHRURfVEVOU09SX1NQRUMQAxIVChFURU5T",
"T1JfQVJSQVlfU1BFQxAEEhUKEURBVEFfREFUQVNFVF9TUEVDEAUSFgoSREFU",
"QV9JVEVSQVRPUl9TUEVDEAYSEQoNT1BUSU9OQUxfU1BFQxAHEhQKEFBFUl9S",
"RVBMSUNBX1NQRUMQCBIRCg1WQVJJQUJMRV9TUEVDEAkSFgoSUk9XX1BBUlRJ",
"VElPTl9TUEVDEApCSlpIZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZs",
"b3cvdGVuc29yZmxvdy9nby9jb3JlL2NvcmVfcHJvdG9zX2dvX3Byb3RvYgZw",
"cm90bzM="));
"VElPTl9TUEVDEAoiBAgLEAtCV1pVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3Rl",
"bnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3Jl",
"X3Byb3Rvc19nb19wcm90b2IGcHJvdG8z"));
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[] {


+ 1
- 2
src/TensorFlowNET.Core/Protobuf/Summary.cs View File

@@ -78,8 +78,7 @@ namespace Tensorflow {
[pbr::OriginalName("DATA_CLASS_UNKNOWN")] Unknown = 0,
/// <summary>
/// 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.
/// `tensor` set to a rank-0 tensor of type `DT_FLOAT` (float32).
/// </summary>
[pbr::OriginalName("DATA_CLASS_SCALAR")] Scalar = 1,
/// <summary>


+ 3
- 2
src/TensorFlowNET.Core/Protobuf/TrackableObjectGraph.cs View File

@@ -39,9 +39,10 @@ namespace Tensorflow {
"bGxfbmFtZRgCIAEoCRIWCg5jaGVja3BvaW50X2tleRgDIAEoCRIYChBvcHRp",
"b25hbF9yZXN0b3JlGAQgASgIGmwKFVNsb3RWYXJpYWJsZVJlZmVyZW5jZRIh",
"ChlvcmlnaW5hbF92YXJpYWJsZV9ub2RlX2lkGAEgASgFEhEKCXNsb3RfbmFt",
"ZRgCIAEoCRIdChVzbG90X3ZhcmlhYmxlX25vZGVfaWQYAyABKAVCTVpIZ2l0",
"ZRgCIAEoCRIdChVzbG90X3ZhcmlhYmxlX25vZGVfaWQYAyABKAVCWlpVZ2l0",
"aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9j",
"b3JlL2NvcmVfcHJvdG9zX2dvX3Byb3Rv+AEBYgZwcm90bzM="));
"b3JlL3Byb3RvYnVmL2Zvcl9jb3JlX3Byb3Rvc19nb19wcm90b/gBAWIGcHJv",
"dG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 27
- 5
src/TensorFlowNET.Core/Protobuf/Types.cs View File

@@ -43,13 +43,14 @@ namespace Tensorflow {
"X1JFRhB0EhEKDURUX1VJTlQxNl9SRUYQdRIVChFEVF9DT01QTEVYMTI4X1JF",
"RhB2Eg8KC0RUX0hBTEZfUkVGEHcSEwoPRFRfUkVTT1VSQ0VfUkVGEHgSEgoO",
"RFRfVkFSSUFOVF9SRUYQeRIRCg1EVF9VSU5UMzJfUkVGEHoSEQoNRFRfVUlO",
"VDY0X1JFRhB7QnoKGG9yZy50ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQ",
"cm90b3NQAVpMZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVu",
"c29yZmxvdy9nby9jb3JlL2ZyYW1ld29yay90eXBlc19nb19wcm90b/gBAWIG",
"cHJvdG8z"));
"VDY0X1JFRhB7KkYKD1NwZWNpYWxpemVkVHlwZRIOCgpTVF9JTlZBTElEEAAS",
"EgoOU1RfVEVOU09SX0xJU1QQARIPCgtTVF9PUFRJT05BTBACQnoKGG9yZy50",
"ZW5zb3JmbG93LmZyYW1ld29ya0ILVHlwZXNQcm90b3NQAVpMZ2l0aHViLmNv",
"bS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxvdy9nby9jb3JlL2Zy",
"YW1ld29yay90eXBlc19nb19wcm90b/gBAWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataType), }, null, null));
new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Tensorflow.DataType), typeof(global::Tensorflow.SpecializedType), }, null, null));
}
#endregion

@@ -148,6 +149,27 @@ namespace Tensorflow {
[pbr::OriginalName("DT_UINT64_REF")] DtUint64Ref = 123,
}

/// <summary>
/// For identifying the underlying type of a variant. For variants, the types
/// listed here are a subset of the types in the variant type registry,
/// corresponding to commonly used variants which must occasionally be
/// special-cased.
/// </summary>
public enum SpecializedType {
/// <summary>
/// Invalid/unknown specialized type.
/// </summary>
[pbr::OriginalName("ST_INVALID")] StInvalid = 0,
/// <summary>
/// "tensorflow::TensorList" in the variant type registry.
/// </summary>
[pbr::OriginalName("ST_TENSOR_LIST")] StTensorList = 1,
/// <summary>
/// "tensorflow::data::Optional" in the variant type registry.
/// </summary>
[pbr::OriginalName("ST_OPTIONAL")] StOptional = 2,
}

#endregion

}


+ 5
- 4
src/TensorFlowNET.Core/Protobuf/VerifierConfig.cs View File

@@ -28,10 +28,11 @@ namespace Tensorflow {
"b3RvEgp0ZW5zb3JmbG93IpsBCg5WZXJpZmllckNvbmZpZxIiChp2ZXJpZmlj",
"YXRpb25fdGltZW91dF9pbl9tcxgBIAEoAxI9ChJzdHJ1Y3R1cmVfdmVyaWZp",
"ZXIYAiABKA4yIS50ZW5zb3JmbG93LlZlcmlmaWVyQ29uZmlnLlRvZ2dsZSIm",
"CgZUb2dnbGUSCwoHREVGQVVMVBAAEgYKAk9OEAESBwoDT0ZGEAJCfwoYb3Jn",
"LnRlbnNvcmZsb3cuZnJhbWV3b3JrQhRWZXJpZmllckNvbmZpZ1Byb3Rvc1AB",
"WkhnaXRodWIuY29tL3RlbnNvcmZsb3cvdGVuc29yZmxvdy90ZW5zb3JmbG93",
"L2dvL2NvcmUvY29yZV9wcm90b3NfZ29fcHJvdG/4AQFiBnByb3RvMw=="));
"CgZUb2dnbGUSCwoHREVGQVVMVBAAEgYKAk9OEAESBwoDT0ZGEAJCjAEKGG9y",
"Zy50ZW5zb3JmbG93LmZyYW1ld29ya0IUVmVyaWZpZXJDb25maWdQcm90b3NQ",
"AVpVZ2l0aHViLmNvbS90ZW5zb3JmbG93L3RlbnNvcmZsb3cvdGVuc29yZmxv",
"dy9nby9jb3JlL3Byb3RvYnVmL2Zvcl9jb3JlX3Byb3Rvc19nb19wcm90b/gB",
"AWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {


+ 669
- 0
src/TensorFlowNET.Keras/Protobuf/ProjectorConfig.cs View File

@@ -0,0 +1,669 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: tensorflow/python/keras/protobuf/projector_config.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace ThirdParty.Tensorflow.Python.Keras.Protobuf {

/// <summary>Holder for reflection information generated from tensorflow/python/keras/protobuf/projector_config.proto</summary>
public static partial class ProjectorConfigReflection {

#region Descriptor
/// <summary>File descriptor for tensorflow/python/keras/protobuf/projector_config.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;

static ProjectorConfigReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Cjd0ZW5zb3JmbG93L3B5dGhvbi9rZXJhcy9wcm90b2J1Zi9wcm9qZWN0b3Jf",
"Y29uZmlnLnByb3RvEix0aGlyZF9wYXJ0eS50ZW5zb3JmbG93LnB5dGhvbi5r",
"ZXJhcy5wcm90b2J1ZiI+Cg5TcHJpdGVNZXRhZGF0YRISCgppbWFnZV9wYXRo",
"GAEgASgJEhgKEHNpbmdsZV9pbWFnZV9kaW0YAiADKA0izAEKDUVtYmVkZGlu",
"Z0luZm8SEwoLdGVuc29yX25hbWUYASABKAkSFQoNbWV0YWRhdGFfcGF0aBgC",
"IAEoCRIWCg5ib29rbWFya3NfcGF0aBgDIAEoCRIUCgx0ZW5zb3Jfc2hhcGUY",
"BCADKA0STAoGc3ByaXRlGAUgASgLMjwudGhpcmRfcGFydHkudGVuc29yZmxv",
"dy5weXRob24ua2VyYXMucHJvdG9idWYuU3ByaXRlTWV0YWRhdGESEwoLdGVu",
"c29yX3BhdGgYBiABKAkinwEKD1Byb2plY3RvckNvbmZpZxIdChVtb2RlbF9j",
"aGVja3BvaW50X3BhdGgYASABKAkSTwoKZW1iZWRkaW5ncxgCIAMoCzI7LnRo",
"aXJkX3BhcnR5LnRlbnNvcmZsb3cucHl0aG9uLmtlcmFzLnByb3RvYnVmLkVt",
"YmVkZGluZ0luZm8SHAoUbW9kZWxfY2hlY2twb2ludF9kaXIYAyABKAliBnBy",
"b3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata.Parser, new[]{ "ImagePath", "SingleImageDim" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo.Parser, new[]{ "TensorName", "MetadataPath", "BookmarksPath", "TensorShape", "Sprite", "TensorPath" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.ProjectorConfig), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.ProjectorConfig.Parser, new[]{ "ModelCheckpointPath", "Embeddings", "ModelCheckpointDir" }, null, null, null, null)
}));
}
#endregion

}
#region Messages
public sealed partial class SpriteMetadata : pb::IMessage<SpriteMetadata> {
private static readonly pb::MessageParser<SpriteMetadata> _parser = new pb::MessageParser<SpriteMetadata>(() => new SpriteMetadata());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<SpriteMetadata> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.ProjectorConfigReflection.Descriptor.MessageTypes[0]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SpriteMetadata() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SpriteMetadata(SpriteMetadata other) : this() {
imagePath_ = other.imagePath_;
singleImageDim_ = other.singleImageDim_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SpriteMetadata Clone() {
return new SpriteMetadata(this);
}

/// <summary>Field number for the "image_path" field.</summary>
public const int ImagePathFieldNumber = 1;
private string imagePath_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string ImagePath {
get { return imagePath_; }
set {
imagePath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "single_image_dim" field.</summary>
public const int SingleImageDimFieldNumber = 2;
private static readonly pb::FieldCodec<uint> _repeated_singleImageDim_codec
= pb::FieldCodec.ForUInt32(18);
private readonly pbc::RepeatedField<uint> singleImageDim_ = new pbc::RepeatedField<uint>();
/// <summary>
/// [width, height] of a single image in the sprite.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<uint> SingleImageDim {
get { return singleImageDim_; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as SpriteMetadata);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(SpriteMetadata other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (ImagePath != other.ImagePath) return false;
if(!singleImageDim_.Equals(other.singleImageDim_)) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (ImagePath.Length != 0) hash ^= ImagePath.GetHashCode();
hash ^= singleImageDim_.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 (ImagePath.Length != 0) {
output.WriteRawTag(10);
output.WriteString(ImagePath);
}
singleImageDim_.WriteTo(output, _repeated_singleImageDim_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (ImagePath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ImagePath);
}
size += singleImageDim_.CalculateSize(_repeated_singleImageDim_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(SpriteMetadata other) {
if (other == null) {
return;
}
if (other.ImagePath.Length != 0) {
ImagePath = other.ImagePath;
}
singleImageDim_.Add(other.singleImageDim_);
_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: {
ImagePath = input.ReadString();
break;
}
case 18:
case 16: {
singleImageDim_.AddEntriesFrom(input, _repeated_singleImageDim_codec);
break;
}
}
}
}

}

public sealed partial class EmbeddingInfo : pb::IMessage<EmbeddingInfo> {
private static readonly pb::MessageParser<EmbeddingInfo> _parser = new pb::MessageParser<EmbeddingInfo>(() => new EmbeddingInfo());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<EmbeddingInfo> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.ProjectorConfigReflection.Descriptor.MessageTypes[1]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public EmbeddingInfo() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public EmbeddingInfo(EmbeddingInfo other) : this() {
tensorName_ = other.tensorName_;
metadataPath_ = other.metadataPath_;
bookmarksPath_ = other.bookmarksPath_;
tensorShape_ = other.tensorShape_.Clone();
sprite_ = other.sprite_ != null ? other.sprite_.Clone() : null;
tensorPath_ = other.tensorPath_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public EmbeddingInfo Clone() {
return new EmbeddingInfo(this);
}

/// <summary>Field number for the "tensor_name" field.</summary>
public const int TensorNameFieldNumber = 1;
private string tensorName_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string TensorName {
get { return tensorName_; }
set {
tensorName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "metadata_path" field.</summary>
public const int MetadataPathFieldNumber = 2;
private string metadataPath_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string MetadataPath {
get { return metadataPath_; }
set {
metadataPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "bookmarks_path" field.</summary>
public const int BookmarksPathFieldNumber = 3;
private string bookmarksPath_ = "";
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string BookmarksPath {
get { return bookmarksPath_; }
set {
bookmarksPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "tensor_shape" field.</summary>
public const int TensorShapeFieldNumber = 4;
private static readonly pb::FieldCodec<uint> _repeated_tensorShape_codec
= pb::FieldCodec.ForUInt32(34);
private readonly pbc::RepeatedField<uint> tensorShape_ = new pbc::RepeatedField<uint>();
/// <summary>
/// Shape of the 2D tensor [N x D]. If missing, it will be inferred from the
/// model checkpoint.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<uint> TensorShape {
get { return tensorShape_; }
}

/// <summary>Field number for the "sprite" field.</summary>
public const int SpriteFieldNumber = 5;
private global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata sprite_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata Sprite {
get { return sprite_; }
set {
sprite_ = value;
}
}

/// <summary>Field number for the "tensor_path" field.</summary>
public const int TensorPathFieldNumber = 6;
private string tensorPath_ = "";
/// <summary>
/// Path to the TSV file holding the tensor values. If missing, the tensor
/// is assumed to be stored in the model checkpoint.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string TensorPath {
get { return tensorPath_; }
set {
tensorPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as EmbeddingInfo);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(EmbeddingInfo other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (TensorName != other.TensorName) return false;
if (MetadataPath != other.MetadataPath) return false;
if (BookmarksPath != other.BookmarksPath) return false;
if(!tensorShape_.Equals(other.tensorShape_)) return false;
if (!object.Equals(Sprite, other.Sprite)) return false;
if (TensorPath != other.TensorPath) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (TensorName.Length != 0) hash ^= TensorName.GetHashCode();
if (MetadataPath.Length != 0) hash ^= MetadataPath.GetHashCode();
if (BookmarksPath.Length != 0) hash ^= BookmarksPath.GetHashCode();
hash ^= tensorShape_.GetHashCode();
if (sprite_ != null) hash ^= Sprite.GetHashCode();
if (TensorPath.Length != 0) hash ^= TensorPath.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 (TensorName.Length != 0) {
output.WriteRawTag(10);
output.WriteString(TensorName);
}
if (MetadataPath.Length != 0) {
output.WriteRawTag(18);
output.WriteString(MetadataPath);
}
if (BookmarksPath.Length != 0) {
output.WriteRawTag(26);
output.WriteString(BookmarksPath);
}
tensorShape_.WriteTo(output, _repeated_tensorShape_codec);
if (sprite_ != null) {
output.WriteRawTag(42);
output.WriteMessage(Sprite);
}
if (TensorPath.Length != 0) {
output.WriteRawTag(50);
output.WriteString(TensorPath);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (TensorName.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(TensorName);
}
if (MetadataPath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(MetadataPath);
}
if (BookmarksPath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(BookmarksPath);
}
size += tensorShape_.CalculateSize(_repeated_tensorShape_codec);
if (sprite_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sprite);
}
if (TensorPath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(TensorPath);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(EmbeddingInfo other) {
if (other == null) {
return;
}
if (other.TensorName.Length != 0) {
TensorName = other.TensorName;
}
if (other.MetadataPath.Length != 0) {
MetadataPath = other.MetadataPath;
}
if (other.BookmarksPath.Length != 0) {
BookmarksPath = other.BookmarksPath;
}
tensorShape_.Add(other.tensorShape_);
if (other.sprite_ != null) {
if (sprite_ == null) {
Sprite = new global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata();
}
Sprite.MergeFrom(other.Sprite);
}
if (other.TensorPath.Length != 0) {
TensorPath = other.TensorPath;
}
_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: {
TensorName = input.ReadString();
break;
}
case 18: {
MetadataPath = input.ReadString();
break;
}
case 26: {
BookmarksPath = input.ReadString();
break;
}
case 34:
case 32: {
tensorShape_.AddEntriesFrom(input, _repeated_tensorShape_codec);
break;
}
case 42: {
if (sprite_ == null) {
Sprite = new global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SpriteMetadata();
}
input.ReadMessage(Sprite);
break;
}
case 50: {
TensorPath = input.ReadString();
break;
}
}
}
}

}

public sealed partial class ProjectorConfig : pb::IMessage<ProjectorConfig> {
private static readonly pb::MessageParser<ProjectorConfig> _parser = new pb::MessageParser<ProjectorConfig>(() => new ProjectorConfig());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<ProjectorConfig> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.ProjectorConfigReflection.Descriptor.MessageTypes[2]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public ProjectorConfig() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public ProjectorConfig(ProjectorConfig other) : this() {
modelCheckpointPath_ = other.modelCheckpointPath_;
embeddings_ = other.embeddings_.Clone();
modelCheckpointDir_ = other.modelCheckpointDir_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public ProjectorConfig Clone() {
return new ProjectorConfig(this);
}

/// <summary>Field number for the "model_checkpoint_path" field.</summary>
public const int ModelCheckpointPathFieldNumber = 1;
private string modelCheckpointPath_ = "";
/// <summary>
/// Path to the checkpoint file. Use either this or model_checkpoint_dir.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string ModelCheckpointPath {
get { return modelCheckpointPath_; }
set {
modelCheckpointPath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "embeddings" field.</summary>
public const int EmbeddingsFieldNumber = 2;
private static readonly pb::FieldCodec<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo> _repeated_embeddings_codec
= pb::FieldCodec.ForMessage(18, global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo.Parser);
private readonly pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo> embeddings_ = new pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo>();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.EmbeddingInfo> Embeddings {
get { return embeddings_; }
}

/// <summary>Field number for the "model_checkpoint_dir" field.</summary>
public const int ModelCheckpointDirFieldNumber = 3;
private string modelCheckpointDir_ = "";
/// <summary>
/// Path to the checkpoint directory. The directory will be scanned for the
/// latest checkpoint file.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string ModelCheckpointDir {
get { return modelCheckpointDir_; }
set {
modelCheckpointDir_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as ProjectorConfig);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(ProjectorConfig other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (ModelCheckpointPath != other.ModelCheckpointPath) return false;
if(!embeddings_.Equals(other.embeddings_)) return false;
if (ModelCheckpointDir != other.ModelCheckpointDir) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (ModelCheckpointPath.Length != 0) hash ^= ModelCheckpointPath.GetHashCode();
hash ^= embeddings_.GetHashCode();
if (ModelCheckpointDir.Length != 0) hash ^= ModelCheckpointDir.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 (ModelCheckpointPath.Length != 0) {
output.WriteRawTag(10);
output.WriteString(ModelCheckpointPath);
}
embeddings_.WriteTo(output, _repeated_embeddings_codec);
if (ModelCheckpointDir.Length != 0) {
output.WriteRawTag(26);
output.WriteString(ModelCheckpointDir);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (ModelCheckpointPath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ModelCheckpointPath);
}
size += embeddings_.CalculateSize(_repeated_embeddings_codec);
if (ModelCheckpointDir.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(ModelCheckpointDir);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(ProjectorConfig other) {
if (other == null) {
return;
}
if (other.ModelCheckpointPath.Length != 0) {
ModelCheckpointPath = other.ModelCheckpointPath;
}
embeddings_.Add(other.embeddings_);
if (other.ModelCheckpointDir.Length != 0) {
ModelCheckpointDir = other.ModelCheckpointDir;
}
_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: {
ModelCheckpointPath = input.ReadString();
break;
}
case 18: {
embeddings_.AddEntriesFrom(input, _repeated_embeddings_codec);
break;
}
case 26: {
ModelCheckpointDir = input.ReadString();
break;
}
}
}
}

}

#endregion

}

#endregion Designer generated code

+ 447
- 0
src/TensorFlowNET.Keras/Protobuf/SavedMetadata.cs View File

@@ -0,0 +1,447 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: tensorflow/python/keras/protobuf/saved_metadata.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace ThirdParty.Tensorflow.Python.Keras.Protobuf {

/// <summary>Holder for reflection information generated from tensorflow/python/keras/protobuf/saved_metadata.proto</summary>
public static partial class SavedMetadataReflection {

#region Descriptor
/// <summary>File descriptor for tensorflow/python/keras/protobuf/saved_metadata.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;

static SavedMetadataReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjV0ZW5zb3JmbG93L3B5dGhvbi9rZXJhcy9wcm90b2J1Zi9zYXZlZF9tZXRh",
"ZGF0YS5wcm90bxIsdGhpcmRfcGFydHkudGVuc29yZmxvdy5weXRob24ua2Vy",
"YXMucHJvdG9idWYaL3RlbnNvcmZsb3cvcHl0aG9uL2tlcmFzL3Byb3RvYnVm",
"L3ZlcnNpb25zLnByb3RvIlkKDVNhdmVkTWV0YWRhdGESSAoFbm9kZXMYASAD",
"KAsyOS50aGlyZF9wYXJ0eS50ZW5zb3JmbG93LnB5dGhvbi5rZXJhcy5wcm90",
"b2J1Zi5TYXZlZE9iamVjdCKoAQoLU2F2ZWRPYmplY3QSDwoHbm9kZV9pZBgC",
"IAEoBRIRCglub2RlX3BhdGgYAyABKAkSEgoKaWRlbnRpZmllchgEIAEoCRIQ",
"CghtZXRhZGF0YRgFIAEoCRJJCgd2ZXJzaW9uGAYgASgLMjgudGhpcmRfcGFy",
"dHkudGVuc29yZmxvdy5weXRob24ua2VyYXMucHJvdG9idWYuVmVyc2lvbkRl",
"ZkoECAEQAmIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionsReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedMetadata), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedMetadata.Parser, new[]{ "Nodes" }, null, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject.Parser, new[]{ "NodeId", "NodePath", "Identifier", "Metadata", "Version" }, null, null, null, null)
}));
}
#endregion

}
#region Messages
public sealed partial class SavedMetadata : pb::IMessage<SavedMetadata> {
private static readonly pb::MessageParser<SavedMetadata> _parser = new pb::MessageParser<SavedMetadata>(() => new SavedMetadata());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<SavedMetadata> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedMetadataReflection.Descriptor.MessageTypes[0]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedMetadata() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedMetadata(SavedMetadata other) : this() {
nodes_ = other.nodes_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedMetadata Clone() {
return new SavedMetadata(this);
}

/// <summary>Field number for the "nodes" field.</summary>
public const int NodesFieldNumber = 1;
private static readonly pb::FieldCodec<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject> _repeated_nodes_codec
= pb::FieldCodec.ForMessage(10, global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject.Parser);
private readonly pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject> nodes_ = new pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject>();
/// <summary>
/// Nodes represent trackable objects in the SavedModel. The data for every
/// Keras object is stored.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedObject> Nodes {
get { return nodes_; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as SavedMetadata);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(SavedMetadata other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if(!nodes_.Equals(other.nodes_)) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
hash ^= nodes_.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) {
nodes_.WriteTo(output, _repeated_nodes_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
size += nodes_.CalculateSize(_repeated_nodes_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(SavedMetadata other) {
if (other == null) {
return;
}
nodes_.Add(other.nodes_);
_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: {
nodes_.AddEntriesFrom(input, _repeated_nodes_codec);
break;
}
}
}
}

}

/// <summary>
/// Metadata of an individual Keras object.
/// </summary>
public sealed partial class SavedObject : pb::IMessage<SavedObject> {
private static readonly pb::MessageParser<SavedObject> _parser = new pb::MessageParser<SavedObject>(() => new SavedObject());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<SavedObject> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.SavedMetadataReflection.Descriptor.MessageTypes[1]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedObject() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedObject(SavedObject other) : this() {
nodeId_ = other.nodeId_;
nodePath_ = other.nodePath_;
identifier_ = other.identifier_;
metadata_ = other.metadata_;
version_ = other.version_ != null ? other.version_.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public SavedObject Clone() {
return new SavedObject(this);
}

/// <summary>Field number for the "node_id" field.</summary>
public const int NodeIdFieldNumber = 2;
private int nodeId_;
/// <summary>
/// Index of the node in the SavedModel SavedObjectGraph.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int NodeId {
get { return nodeId_; }
set {
nodeId_ = value;
}
}

/// <summary>Field number for the "node_path" field.</summary>
public const int NodePathFieldNumber = 3;
private string nodePath_ = "";
/// <summary>
/// String path from root (e.g. "root.child_layer")
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string NodePath {
get { return nodePath_; }
set {
nodePath_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "identifier" field.</summary>
public const int IdentifierFieldNumber = 4;
private string identifier_ = "";
/// <summary>
/// Identifier to determine loading function.
/// Must be one of:
/// _tf_keras_input_layer, _tf_keras_layer, _tf_keras_metric,
/// _tf_keras_model, _tf_keras_network, _tf_keras_rnn_layer,
/// _tf_keras_sequential
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Identifier {
get { return identifier_; }
set {
identifier_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "metadata" field.</summary>
public const int MetadataFieldNumber = 5;
private string metadata_ = "";
/// <summary>
/// Metadata containing a JSON-serialized object with the non-TensorFlow
/// attributes for this Keras object.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public string Metadata {
get { return metadata_; }
set {
metadata_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
}
}

/// <summary>Field number for the "version" field.</summary>
public const int VersionFieldNumber = 6;
private global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef version_;
/// <summary>
/// Version defined by the code serializing this Keras object.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef Version {
get { return version_; }
set {
version_ = value;
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as SavedObject);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(SavedObject other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (NodeId != other.NodeId) return false;
if (NodePath != other.NodePath) return false;
if (Identifier != other.Identifier) return false;
if (Metadata != other.Metadata) return false;
if (!object.Equals(Version, other.Version)) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (NodeId != 0) hash ^= NodeId.GetHashCode();
if (NodePath.Length != 0) hash ^= NodePath.GetHashCode();
if (Identifier.Length != 0) hash ^= Identifier.GetHashCode();
if (Metadata.Length != 0) hash ^= Metadata.GetHashCode();
if (version_ != null) hash ^= Version.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 (NodeId != 0) {
output.WriteRawTag(16);
output.WriteInt32(NodeId);
}
if (NodePath.Length != 0) {
output.WriteRawTag(26);
output.WriteString(NodePath);
}
if (Identifier.Length != 0) {
output.WriteRawTag(34);
output.WriteString(Identifier);
}
if (Metadata.Length != 0) {
output.WriteRawTag(42);
output.WriteString(Metadata);
}
if (version_ != null) {
output.WriteRawTag(50);
output.WriteMessage(Version);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (NodeId != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(NodeId);
}
if (NodePath.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(NodePath);
}
if (Identifier.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Identifier);
}
if (Metadata.Length != 0) {
size += 1 + pb::CodedOutputStream.ComputeStringSize(Metadata);
}
if (version_ != null) {
size += 1 + pb::CodedOutputStream.ComputeMessageSize(Version);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(SavedObject other) {
if (other == null) {
return;
}
if (other.NodeId != 0) {
NodeId = other.NodeId;
}
if (other.NodePath.Length != 0) {
NodePath = other.NodePath;
}
if (other.Identifier.Length != 0) {
Identifier = other.Identifier;
}
if (other.Metadata.Length != 0) {
Metadata = other.Metadata;
}
if (other.version_ != null) {
if (version_ == null) {
Version = new global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef();
}
Version.MergeFrom(other.Version);
}
_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: {
NodeId = input.ReadInt32();
break;
}
case 26: {
NodePath = input.ReadString();
break;
}
case 34: {
Identifier = input.ReadString();
break;
}
case 42: {
Metadata = input.ReadString();
break;
}
case 50: {
if (version_ == null) {
Version = new global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef();
}
input.ReadMessage(Version);
break;
}
}
}
}

}

#endregion

}

#endregion Designer generated code

+ 248
- 0
src/TensorFlowNET.Keras/Protobuf/Versions.cs View File

@@ -0,0 +1,248 @@
// <auto-generated>
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: tensorflow/python/keras/protobuf/versions.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace ThirdParty.Tensorflow.Python.Keras.Protobuf {

/// <summary>Holder for reflection information generated from tensorflow/python/keras/protobuf/versions.proto</summary>
public static partial class VersionsReflection {

#region Descriptor
/// <summary>File descriptor for tensorflow/python/keras/protobuf/versions.proto</summary>
public static pbr::FileDescriptor Descriptor {
get { return descriptor; }
}
private static pbr::FileDescriptor descriptor;

static VersionsReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Ci90ZW5zb3JmbG93L3B5dGhvbi9rZXJhcy9wcm90b2J1Zi92ZXJzaW9ucy5w",
"cm90bxIsdGhpcmRfcGFydHkudGVuc29yZmxvdy5weXRob24ua2VyYXMucHJv",
"dG9idWYiSwoKVmVyc2lvbkRlZhIQCghwcm9kdWNlchgBIAEoBRIUCgxtaW5f",
"Y29uc3VtZXIYAiABKAUSFQoNYmFkX2NvbnN1bWVycxgDIAMoBWIGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef), global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionDef.Parser, new[]{ "Producer", "MinConsumer", "BadConsumers" }, null, null, null, null)
}));
}
#endregion

}
#region Messages
/// <summary>
/// Version information for a piece of serialized data
///
/// There are different types of versions for each type of data
/// (GraphDef, etc.), but they all have the same common shape
/// described here.
///
/// Each consumer has "consumer" and "min_producer" versions (specified
/// elsewhere). A consumer is allowed to consume this data if
///
/// producer >= min_producer
/// consumer >= min_consumer
/// consumer not in bad_consumers
///
/// LINT.IfChange
/// </summary>
public sealed partial class VersionDef : pb::IMessage<VersionDef> {
private static readonly pb::MessageParser<VersionDef> _parser = new pb::MessageParser<VersionDef>(() => new VersionDef());
private pb::UnknownFieldSet _unknownFields;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pb::MessageParser<VersionDef> Parser { get { return _parser; } }

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::ThirdParty.Tensorflow.Python.Keras.Protobuf.VersionsReflection.Descriptor.MessageTypes[0]; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
pbr::MessageDescriptor pb::IMessage.Descriptor {
get { return Descriptor; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public VersionDef() {
OnConstruction();
}

partial void OnConstruction();

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public VersionDef(VersionDef other) : this() {
producer_ = other.producer_;
minConsumer_ = other.minConsumer_;
badConsumers_ = other.badConsumers_.Clone();
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public VersionDef Clone() {
return new VersionDef(this);
}

/// <summary>Field number for the "producer" field.</summary>
public const int ProducerFieldNumber = 1;
private int producer_;
/// <summary>
/// The version of the code that produced this data.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int Producer {
get { return producer_; }
set {
producer_ = value;
}
}

/// <summary>Field number for the "min_consumer" field.</summary>
public const int MinConsumerFieldNumber = 2;
private int minConsumer_;
/// <summary>
/// Any consumer below this version is not allowed to consume this data.
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int MinConsumer {
get { return minConsumer_; }
set {
minConsumer_ = value;
}
}

/// <summary>Field number for the "bad_consumers" field.</summary>
public const int BadConsumersFieldNumber = 3;
private static readonly pb::FieldCodec<int> _repeated_badConsumers_codec
= pb::FieldCodec.ForInt32(26);
private readonly pbc::RepeatedField<int> badConsumers_ = new pbc::RepeatedField<int>();
/// <summary>
/// Specific consumer versions which are disallowed (e.g. due to bugs).
/// </summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::RepeatedField<int> BadConsumers {
get { return badConsumers_; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as VersionDef);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public bool Equals(VersionDef other) {
if (ReferenceEquals(other, null)) {
return false;
}
if (ReferenceEquals(other, this)) {
return true;
}
if (Producer != other.Producer) return false;
if (MinConsumer != other.MinConsumer) return false;
if(!badConsumers_.Equals(other.badConsumers_)) return false;
return Equals(_unknownFields, other._unknownFields);
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override int GetHashCode() {
int hash = 1;
if (Producer != 0) hash ^= Producer.GetHashCode();
if (MinConsumer != 0) hash ^= MinConsumer.GetHashCode();
hash ^= badConsumers_.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 (Producer != 0) {
output.WriteRawTag(8);
output.WriteInt32(Producer);
}
if (MinConsumer != 0) {
output.WriteRawTag(16);
output.WriteInt32(MinConsumer);
}
badConsumers_.WriteTo(output, _repeated_badConsumers_codec);
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
}
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public int CalculateSize() {
int size = 0;
if (Producer != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(Producer);
}
if (MinConsumer != 0) {
size += 1 + pb::CodedOutputStream.ComputeInt32Size(MinConsumer);
}
size += badConsumers_.CalculateSize(_repeated_badConsumers_codec);
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
}
return size;
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(VersionDef other) {
if (other == null) {
return;
}
if (other.Producer != 0) {
Producer = other.Producer;
}
if (other.MinConsumer != 0) {
MinConsumer = other.MinConsumer;
}
badConsumers_.Add(other.badConsumers_);
_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: {
Producer = input.ReadInt32();
break;
}
case 16: {
MinConsumer = input.ReadInt32();
break;
}
case 26:
case 24: {
badConsumers_.AddEntriesFrom(input, _repeated_badConsumers_codec);
break;
}
}
}
}

}

#endregion

}

#endregion Designer generated code

Loading…
Cancel
Save