diff --git a/Microsoft.ML.sln b/Microsoft.ML.sln
index 4974ca4887..c0a2911262 100644
--- a/Microsoft.ML.sln
+++ b/Microsoft.ML.sln
@@ -5,6 +5,9 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Core", "src\Microsoft.ML.Core\Microsoft.ML.Core.csproj", "{A6CA6CC6-5D7C-4D7F-A0F5-35E14B383B0A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{09EADF06-BE25-4228-AB53-95AE3E15B530}"
+ ProjectSection(SolutionItems) = preProject
+ src\Microsoft.ML.Commands\Microsoft.ML.Commands.csproj = src\Microsoft.ML.Commands\Microsoft.ML.Commands.csproj
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{AED9C836-31E3-4F3F-8ABC-929555D3F3C4}"
EndProject
@@ -30,8 +33,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.KMeansClusteri
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.PCA", "src\Microsoft.ML.PCA\Microsoft.ML.PCA.csproj", "{58E06735-1129-4DD5-86E0-6BBFF049AAD9}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Maml", "src\Microsoft.ML.Maml\Microsoft.ML.Maml.csproj", "{D956E291-F6E5-4474-9023-91793F45ABEB}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Api", "src\Microsoft.ML.Api\Microsoft.ML.Api.csproj", "{2F636A2C-062C-49F4-85F3-60DCADAB6A43}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Tests", "test\Microsoft.ML.Tests\Microsoft.ML.Tests.csproj", "{64BC22D3-1E76-41EF-94D8-C79E471FF2DD}"
@@ -104,6 +105,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.ML.Parquet", "Mic
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Benchmarks", "test\Microsoft.ML.Benchmarks\Microsoft.ML.Benchmarks.csproj", "{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Maml", "src\Microsoft.ML.Maml\Microsoft.ML.Maml.csproj", "{64F40A0D-D4C2-4AA7-8470-E9CC437827E4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.ML.Console", "src\Microsoft.ML.Console\Microsoft.ML.Console.csproj", "{362A98CF-FBF7-4EBB-A11B-990BBF845B15}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -158,10 +163,6 @@ Global
{58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{58E06735-1129-4DD5-86E0-6BBFF049AAD9}.Release|Any CPU.Build.0 = Release|Any CPU
- {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D956E291-F6E5-4474-9023-91793F45ABEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D956E291-F6E5-4474-9023-91793F45ABEB}.Release|Any CPU.Build.0 = Release|Any CPU
{2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2F636A2C-062C-49F4-85F3-60DCADAB6A43}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -202,6 +203,14 @@ Global
{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {64F40A0D-D4C2-4AA7-8470-E9CC437827E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {64F40A0D-D4C2-4AA7-8470-E9CC437827E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {64F40A0D-D4C2-4AA7-8470-E9CC437827E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {64F40A0D-D4C2-4AA7-8470-E9CC437827E4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {362A98CF-FBF7-4EBB-A11B-990BBF845B15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {362A98CF-FBF7-4EBB-A11B-990BBF845B15}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {362A98CF-FBF7-4EBB-A11B-990BBF845B15}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {362A98CF-FBF7-4EBB-A11B-990BBF845B15}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -219,7 +228,6 @@ Global
{7288C084-11C0-43BE-AC7F-45DCFEAEEBF6} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
{F1CAE3AB-4F86-4BC0-BBA8-C4A58E7E8A4A} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
{58E06735-1129-4DD5-86E0-6BBFF049AAD9} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
- {D956E291-F6E5-4474-9023-91793F45ABEB} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
{2F636A2C-062C-49F4-85F3-60DCADAB6A43} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
{64BC22D3-1E76-41EF-94D8-C79E471FF2DD} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
{FDA2FD2C-A708-43AC-A941-4D941B0853BF} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
@@ -236,6 +244,8 @@ Global
{DEC8F776-49F7-4D87-836C-FE4DC057D08C} = {D3D38B03-B557-484D-8348-8BADEE4DF592}
{6C95FC87-F5F2-4EEF-BB97-567F2F5DD141} = {D3D38B03-B557-484D-8348-8BADEE4DF592}
{7A9DB75F-2CA5-4184-9EF5-1F17EB39483F} = {AED9C836-31E3-4F3F-8ABC-929555D3F3C4}
+ {64F40A0D-D4C2-4AA7-8470-E9CC437827E4} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
+ {362A98CF-FBF7-4EBB-A11B-990BBF845B15} = {09EADF06-BE25-4228-AB53-95AE3E15B530}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {41165AF1-35BB-4832-A189-73060F82B01D}
diff --git a/src/Microsoft.ML.Console/Console.cs b/src/Microsoft.ML.Console/Console.cs
new file mode 100644
index 0000000000..12e6254cce
--- /dev/null
+++ b/src/Microsoft.ML.Console/Console.cs
@@ -0,0 +1,11 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+namespace Microsoft.ML.Runtime.Tools.Console
+{
+ public static class Console
+ {
+ public static int Main(string[] args) => Maml.Main(args);
+ }
+}
diff --git a/src/Microsoft.ML.Console/Microsoft.ML.Console.csproj b/src/Microsoft.ML.Console/Microsoft.ML.Console.csproj
new file mode 100644
index 0000000000..8039371695
--- /dev/null
+++ b/src/Microsoft.ML.Console/Microsoft.ML.Console.csproj
@@ -0,0 +1,20 @@
+
+
+
+ true
+ CORECLR
+ Microsoft.ML
+ netcoreapp2.0
+ Exe
+ MML
+ Microsoft.ML.Runtime.Tools.Console.Console
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.ML.Data/Commands/DataCommand.cs b/src/Microsoft.ML.Data/Commands/DataCommand.cs
index a68dd2022a..958dc1613a 100644
--- a/src/Microsoft.ML.Data/Commands/DataCommand.cs
+++ b/src/Microsoft.ML.Data/Commands/DataCommand.cs
@@ -20,38 +20,38 @@ public static class DataCommand
{
public abstract class ArgumentsBase
{
- [Argument(ArgumentType.Multiple, HelpText = "The data loader", ShortName = "loader", SortOrder = 1, NullName = "")]
+ [Argument(ArgumentType.Multiple, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "The data loader", ShortName = "loader", SortOrder = 1, NullName = "")]
public SubComponent Loader;
[Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "The data file", ShortName = "data", SortOrder = 0)]
public string DataFile;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Model file to save", ShortName = "out")]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Model file to save", ShortName = "out")]
public string OutputModelFile;
- [Argument(ArgumentType.AtMostOnce, IsInputFileName = true, HelpText = "Model file to load", ShortName = "in", SortOrder = 90)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, IsInputFileName = true, HelpText = "Model file to load", ShortName = "in", SortOrder = 90)]
public string InputModelFile;
- [Argument(ArgumentType.Multiple, HelpText = "Load transforms from model file?", ShortName = "loadTrans", SortOrder = 91)]
+ [Argument(ArgumentType.Multiple, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Load transforms from model file?", ShortName = "loadTrans", SortOrder = 91)]
public bool? LoadTransforms;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Random seed", ShortName = "seed", SortOrder = 101)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Random seed", ShortName = "seed", SortOrder = 101)]
public int? RandomSeed;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Verbose?", ShortName = "v", Hide = true)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Verbose?", ShortName = "v", Hide = true)]
public bool? Verbose;
- [Argument(ArgumentType.AtMostOnce, HelpText = "The web server to publish the RESTful API", Hide = true)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "The web server to publish the RESTful API", Hide = true)]
public ServerChannel.IServerFactory Server;
// This is actually an advisory value. The implementations themselves are responsible for
// determining what they consider appropriate, and the actual heuristics is a bit more
// complex than just this.
- [Argument(ArgumentType.LastOccurenceWins,
+ [Argument(ArgumentType.LastOccurenceWins, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly,
HelpText = "Desired degree of parallelism in the data pipeline", ShortName = "n")]
public int? Parallel;
- [Argument(ArgumentType.Multiple, HelpText = "Transform", ShortName = "xf")]
+ [Argument(ArgumentType.Multiple, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Transform", ShortName = "xf")]
public KeyValuePair>[] Transform;
}
diff --git a/src/Microsoft.ML.Data/Model/Onnx/OnnxContext.cs b/src/Microsoft.ML.Data/Model/Onnx/OnnxContext.cs
index fb3f58291c..9759ce0c6c 100644
--- a/src/Microsoft.ML.Data/Model/Onnx/OnnxContext.cs
+++ b/src/Microsoft.ML.Data/Model/Onnx/OnnxContext.cs
@@ -23,10 +23,14 @@ public sealed class OnnxContext
private readonly HashSet _variableMap;
private readonly HashSet _nodeNames;
private readonly string _name;
+ private readonly string _producerName;
private readonly IHost _host;
private readonly string _domain;
+ private readonly string _producerVersion;
+ private readonly long _modelVersion;
- public OnnxContext(IHostEnvironment env, string name, string domain)
+ public OnnxContext(IHostEnvironment env, string name, string producerName,
+ string producerVersion, long modelVersion, string domain)
{
Contracts.CheckValue(env, nameof(env));
Contracts.CheckValue(name, nameof(name));
@@ -41,6 +45,9 @@ public OnnxContext(IHostEnvironment env, string name, string domain)
_variableMap = new HashSet();
_nodeNames = new HashSet();
_name = name;
+ _producerName = producerName;
+ _producerVersion = producerVersion;
+ _modelVersion = modelVersion;
_domain = domain;
}
@@ -234,6 +241,6 @@ public void AddInputVariable(ColumnType type, string colName)
/// Makes the ONNX model based on the context.
///
public ModelProto MakeModel()
- => OnnxUtils.MakeModel(_nodes, _name, _name, _domain, _inputs, _outputs, _intermediateValues);
+ => OnnxUtils.MakeModel(_nodes, _producerName, _name, _domain, _producerVersion, _modelVersion, _inputs, _outputs, _intermediateValues);
}
}
diff --git a/src/Microsoft.ML.Data/Model/Onnx/OnnxUtils.cs b/src/Microsoft.ML.Data/Model/Onnx/OnnxUtils.cs
index 667787c990..5b63c661c2 100644
--- a/src/Microsoft.ML.Data/Model/Onnx/OnnxUtils.cs
+++ b/src/Microsoft.ML.Data/Model/Onnx/OnnxUtils.cs
@@ -153,7 +153,7 @@ private static AttributeProto MakeAttribute(string key, IEnumerable
private static AttributeProto MakeAttribute(string key, bool value) => MakeAttribute(key, value ? 1 : 0);
- public static NodeProto MakeNode(string opType, List inputs, List outputs, string name)
+ public static NodeProto MakeNode(string opType, List inputs, List outputs, string name, string domain = null)
{
Contracts.CheckNonEmpty(opType, nameof(opType));
Contracts.CheckValue(inputs, nameof(inputs));
@@ -165,7 +165,7 @@ public static NodeProto MakeNode(string opType, List inputs, List nodes, string producerName, string name, string domain, List inputs,
+ public static ModelProto MakeModel(List nodes, string producerName, string name,
+ string domain, string producerVersion, long modelVersion, List inputs,
List outputs, List intermediateValues)
{
Contracts.CheckValue(nodes, nameof(nodes));
@@ -261,10 +262,16 @@ public static ModelProto MakeModel(List nodes, string producerName, s
Contracts.CheckNonEmpty(producerName, nameof(producerName));
Contracts.CheckNonEmpty(name, nameof(name));
Contracts.CheckNonEmpty(domain, nameof(domain));
+ Contracts.CheckNonEmpty(producerVersion, nameof(producerVersion));
var model = new ModelProto();
model.Domain = domain;
model.ProducerName = producerName;
+ model.ProducerVersion = producerVersion;
+ model.IrVersion = (long)UniversalModelFormat.Onnx.Version.IrVersion;
+ model.ModelVersion = modelVersion;
+ model.OpsetImport.Add(new OperatorSetIdProto() { Domain = "ai.onnx.ml", Version = 1 });
+ model.OpsetImport.Add(new OperatorSetIdProto() { Domain = "ai.onnx", Version = 6 });
model.Graph = new GraphProto();
var graph = model.Graph;
graph.Node.Add(nodes);
diff --git a/src/Microsoft.ML.Data/Model/Onnx/SaveOnnxCommand.cs b/src/Microsoft.ML.Data/Model/Onnx/SaveOnnxCommand.cs
index 730916b031..d2dfc93fde 100644
--- a/src/Microsoft.ML.Data/Model/Onnx/SaveOnnxCommand.cs
+++ b/src/Microsoft.ML.Data/Model/Onnx/SaveOnnxCommand.cs
@@ -9,13 +9,17 @@
using Microsoft.ML.Runtime.Command;
using Microsoft.ML.Runtime.CommandLine;
using Microsoft.ML.Runtime.Data;
+using Microsoft.ML.Runtime.EntryPoints;
using Microsoft.ML.Runtime.Internal.Utilities;
using Microsoft.ML.Runtime.Model.Onnx;
+using Microsoft.ML.Runtime.UniversalModelFormat.Onnx;
using Newtonsoft.Json;
[assembly: LoadableClass(SaveOnnxCommand.Summary, typeof(SaveOnnxCommand), typeof(SaveOnnxCommand.Arguments), typeof(SignatureCommand),
"Save ONNX", "SaveOnnx", DocName = "command/SaveOnnx.md")]
+[assembly: LoadableClass(typeof(void), typeof(SaveOnnxCommand), null, typeof(SignatureEntryPointModule), "SaveOnnx")]
+
namespace Microsoft.ML.Runtime.Model.Onnx
{
public sealed class SaveOnnxCommand : DataCommand.ImplBase
@@ -37,14 +41,23 @@ public sealed class Arguments : DataCommand.ArgumentsBase
[Argument(ArgumentType.AtMostOnce, HelpText = "The 'domain' property in the output ONNX.", NullName = "", SortOrder = 4)]
public string Domain;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Comma delimited list of input column names to drop", ShortName = "idrop", SortOrder = 5)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Comma delimited list of input column names to drop", ShortName = "idrop", SortOrder = 5)]
public string InputsToDrop;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Comma delimited list of output column names to drop", ShortName = "odrop", SortOrder = 6)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly, HelpText = "Array of input column names to drop", Name = nameof(InputsToDrop), SortOrder = 6)]
+ public string[] InputsToDropArray;
+
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Comma delimited list of output column names to drop", ShortName = "odrop", SortOrder = 7)]
public string OutputsToDrop;
- [Argument(ArgumentType.AtMostOnce, HelpText = "Whether we should attempt to load the predictor and attach the scorer to the pipeline if one is present.", ShortName = "pred", SortOrder = 7)]
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly, HelpText = "Array of output column names to drop", Name = nameof(OutputsToDrop), SortOrder = 8)]
+ public string[] OutputsToDropArray;
+
+ [Argument(ArgumentType.AtMostOnce, Visibility = ArgumentAttribute.VisibilityType.CmdLineOnly, HelpText = "Whether we should attempt to load the predictor and attach the scorer to the pipeline if one is present.", ShortName = "pred", SortOrder = 9)]
public bool? LoadPredictor;
+
+ [Argument(ArgumentType.Required, Visibility = ArgumentAttribute.VisibilityType.EntryPointsOnly, HelpText = "Model that needs to be converted to ONNX format.", SortOrder = 10)]
+ public ITransformModel Model;
}
private readonly string _outputModelPath;
@@ -54,6 +67,10 @@ public sealed class Arguments : DataCommand.ArgumentsBase
private readonly bool? _loadPredictor;
private readonly HashSet _inputsToDrop;
private readonly HashSet _outputsToDrop;
+ private readonly ITransformModel _model;
+ private const string ProducerName = "ML.NET";
+ private const string ProducerVersion = "0.2.0.0000";
+ private const long ModelVersion = 0;
public SaveOnnxCommand(IHostEnvironment env, Arguments args)
: base(env, args, LoadName)
@@ -68,16 +85,18 @@ public SaveOnnxCommand(IHostEnvironment env, Arguments args)
_name = args.Name;
_loadPredictor = args.LoadPredictor;
- _inputsToDrop = CreateDropMap(args.InputsToDrop);
- _outputsToDrop = CreateDropMap(args.OutputsToDrop);
+ _inputsToDrop = CreateDropMap(args.InputsToDropArray ?? args.InputsToDrop?.Split(','));
+ _outputsToDrop = CreateDropMap(args.OutputsToDropArray ?? args.OutputsToDrop?.Split(','));
_domain = args.Domain;
+ _model = args.Model;
}
- private static HashSet CreateDropMap(string toDrop)
+ private static HashSet CreateDropMap(string[] toDrop)
{
- if (string.IsNullOrWhiteSpace(toDrop))
+ if (toDrop == null)
return new HashSet();
- return new HashSet(toDrop.Split(','));
+
+ return new HashSet(toDrop);
}
public override void Run()
@@ -115,29 +134,37 @@ private void GetPipe(IChannel ch, IDataView end, out IDataView source, out IData
private void Run(IChannel ch)
{
- IDataLoader loader;
- IPredictor rawPred;
- RoleMappedSchema trainSchema;
+ IDataLoader loader = null;
+ IPredictor rawPred = null;
+ IDataView view;
+ RoleMappedSchema trainSchema = null;
- if (string.IsNullOrEmpty(Args.InputModelFile))
+ if (_model == null)
{
- loader = CreateLoader();
- rawPred = null;
- trainSchema = null;
- Host.CheckUserArg(Args.LoadPredictor != true, nameof(Args.LoadPredictor),
- "Cannot be set to true unless " + nameof(Args.InputModelFile) + " is also specifified.");
+ if (string.IsNullOrEmpty(Args.InputModelFile))
+ {
+ loader = CreateLoader();
+ rawPred = null;
+ trainSchema = null;
+ Host.CheckUserArg(Args.LoadPredictor != true, nameof(Args.LoadPredictor),
+ "Cannot be set to true unless " + nameof(Args.InputModelFile) + " is also specifified.");
+ }
+ else
+ LoadModelObjects(ch, _loadPredictor, out rawPred, true, out trainSchema, out loader);
+
+ view = loader;
}
else
- LoadModelObjects(ch, _loadPredictor, out rawPred, true, out trainSchema, out loader);
+ view = _model.Apply(Host, new EmptyDataView(Host, _model.InputSchema));
// Get the transform chain.
IDataView source;
IDataView end;
LinkedList transforms;
- GetPipe(ch, loader, out source, out end, out transforms);
+ GetPipe(ch, view, out source, out end, out transforms);
Host.Assert(transforms.Count == 0 || transforms.Last.Value == end);
- var ctx = new OnnxContext(Host, _name, _domain);
+ var ctx = new OnnxContext(Host, _name, ProducerName, ProducerVersion, ModelVersion, _domain);
// If we have a predictor, try to get the scorer for it.
if (rawPred != null)
{
@@ -228,10 +255,24 @@ private void Run(IChannel ch)
if (!string.IsNullOrWhiteSpace(Args.OutputModelFile))
{
+ Contracts.Assert(loader != null);
+
ch.Trace("Saving the data pipe");
// Should probably include "end"?
SaveLoader(loader, Args.OutputModelFile);
}
}
+
+ public sealed class Output
+ {
+ }
+
+ [TlcModule.EntryPoint(Name = "Models.OnnxConverter", Desc = "Converts the model to ONNX format.", UserName = "ONNX Converter.")]
+ public static Output Apply(IHostEnvironment env, Arguments input)
+ {
+ new SaveOnnxCommand(env, input).Run();
+ return new Output();
+ }
+
}
}
diff --git a/src/Microsoft.ML.Data/Prediction/Calibrator.cs b/src/Microsoft.ML.Data/Prediction/Calibrator.cs
index 9fe7ed70af..efa52d2ff6 100644
--- a/src/Microsoft.ML.Data/Prediction/Calibrator.cs
+++ b/src/Microsoft.ML.Data/Prediction/Calibrator.cs
@@ -1444,9 +1444,8 @@ public bool SaveAsOnnx(OnnxContext ctx, string[] scoreProbablityColumnNames, str
string opType = "Affine";
string linearOutput = ctx.AddIntermediateVariable(null, "linearOutput", true);
var node = OnnxUtils.MakeNode(opType, new List { scoreProbablityColumnNames[0] },
- new List { linearOutput }, ctx.GetNodeName(opType));
+ new List { linearOutput }, ctx.GetNodeName(opType), "ai.onnx");
- node.Domain = "";
OnnxUtils.NodeAddAttributes(node, "alpha", ParamA * -1);
OnnxUtils.NodeAddAttributes(node, "beta", -0.0000001);
@@ -1454,9 +1453,8 @@ public bool SaveAsOnnx(OnnxContext ctx, string[] scoreProbablityColumnNames, str
opType = "Sigmoid";
node = OnnxUtils.MakeNode(opType, new List { linearOutput },
- new List { scoreProbablityColumnNames[1] }, ctx.GetNodeName(opType));
+ new List { scoreProbablityColumnNames[1] }, ctx.GetNodeName(opType), "ai.onnx");
- node.Domain = "";
ctx.AddNode(node);
return true;
diff --git a/src/Microsoft.ML.Maml/Microsoft.ML.Maml.csproj b/src/Microsoft.ML.Maml/Microsoft.ML.Maml.csproj
index 2ddbf9c7f7..88b1e9e55b 100644
--- a/src/Microsoft.ML.Maml/Microsoft.ML.Maml.csproj
+++ b/src/Microsoft.ML.Maml/Microsoft.ML.Maml.csproj
@@ -3,8 +3,8 @@
true
CORECLR
- netstandard2.0
Microsoft.ML
+ netstandard2.0
diff --git a/src/Microsoft.ML.UniversalModelFormat/Onnx/OnnxMl.cs b/src/Microsoft.ML.UniversalModelFormat/Onnx/OnnxMl.cs
index 8bf193202e..0117712614 100644
--- a/src/Microsoft.ML.UniversalModelFormat/Onnx/OnnxMl.cs
+++ b/src/Microsoft.ML.UniversalModelFormat/Onnx/OnnxMl.cs
@@ -1,5 +1,7 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
-// source: onnx-ml.proto3
+//
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: onnx-ml.proto3
+//
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
@@ -7,3745 +9,4747 @@
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
-namespace Microsoft.ML.Runtime.UniversalModelFormat.Onnx {
-
- /// Holder for reflection information generated from onnx-ml.proto3
- public static partial class OnnxMlReflection {
-
- #region Descriptor
- /// File descriptor for onnx-ml.proto3
- public static pbr::FileDescriptor Descriptor {
- get { return descriptor; }
- }
- private static pbr::FileDescriptor descriptor;
-
- static OnnxMlReflection() {
- byte[] descriptorData = global::System.Convert.FromBase64String(
- string.Concat(
- "Cg5vbm54LW1sLnByb3RvMxIOT05OWF9OQU1FU1BBQ0Ui+wMKDkF0dHJpYnV0",
- "ZVByb3RvEgwKBG5hbWUYASABKAkSEgoKZG9jX3N0cmluZxgNIAEoCRI6CgR0",
- "eXBlGBQgASgOMiwuT05OWF9OQU1FU1BBQ0UuQXR0cmlidXRlUHJvdG8uQXR0",
- "cmlidXRlVHlwZRIJCgFmGAIgASgCEgkKAWkYAyABKAMSCQoBcxgEIAEoDBIm",
- "CgF0GAUgASgLMhsuT05OWF9OQU1FU1BBQ0UuVGVuc29yUHJvdG8SJQoBZxgG",
- "IAEoCzIaLk9OTlhfTkFNRVNQQUNFLkdyYXBoUHJvdG8SDgoGZmxvYXRzGAcg",
- "AygCEgwKBGludHMYCCADKAMSDwoHc3RyaW5ncxgJIAMoDBIsCgd0ZW5zb3Jz",
- "GAogAygLMhsuT05OWF9OQU1FU1BBQ0UuVGVuc29yUHJvdG8SKgoGZ3JhcGhz",
- "GAsgAygLMhouT05OWF9OQU1FU1BBQ0UuR3JhcGhQcm90byKRAQoNQXR0cmli",
- "dXRlVHlwZRINCglVTkRFRklORUQQABIJCgVGTE9BVBABEgcKA0lOVBACEgoK",
- "BlNUUklORxADEgoKBlRFTlNPUhAEEgkKBUdSQVBIEAUSCgoGRkxPQVRTEAYS",
- "CAoESU5UUxAHEgsKB1NUUklOR1MQCBILCgdURU5TT1JTEAkSCgoGR1JBUEhT",
- "EAoiWwoOVmFsdWVJbmZvUHJvdG8SDAoEbmFtZRgBIAEoCRInCgR0eXBlGAIg",
- "ASgLMhkuT05OWF9OQU1FU1BBQ0UuVHlwZVByb3RvEhIKCmRvY19zdHJpbmcY",
- "AyABKAkioAEKCU5vZGVQcm90bxINCgVpbnB1dBgBIAMoCRIOCgZvdXRwdXQY",
- "AiADKAkSDAoEbmFtZRgDIAEoCRIPCgdvcF90eXBlGAQgASgJEg4KBmRvbWFp",
- "bhgHIAEoCRIxCglhdHRyaWJ1dGUYBSADKAsyHi5PTk5YX05BTUVTUEFDRS5B",
- "dHRyaWJ1dGVQcm90bxISCgpkb2Nfc3RyaW5nGAYgASgJIrECCgpNb2RlbFBy",
- "b3RvEhIKCmlyX3ZlcnNpb24YASABKAMSOAoMb3BzZXRfaW1wb3J0GAggAygL",
- "MiIuT05OWF9OQU1FU1BBQ0UuT3BlcmF0b3JTZXRJZFByb3RvEhUKDXByb2R1",
- "Y2VyX25hbWUYAiABKAkSGAoQcHJvZHVjZXJfdmVyc2lvbhgDIAEoCRIOCgZk",
- "b21haW4YBCABKAkSFQoNbW9kZWxfdmVyc2lvbhgFIAEoAxISCgpkb2Nfc3Ry",
- "aW5nGAYgASgJEikKBWdyYXBoGAcgASgLMhouT05OWF9OQU1FU1BBQ0UuR3Jh",
- "cGhQcm90bxI+Cg5tZXRhZGF0YV9wcm9wcxgOIAMoCzImLk9OTlhfTkFNRVNQ",
- "QUNFLlN0cmluZ1N0cmluZ0VudHJ5UHJvdG8iNAoWU3RyaW5nU3RyaW5nRW50",
- "cnlQcm90bxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAkinAIKCkdyYXBo",
- "UHJvdG8SJwoEbm9kZRgBIAMoCzIZLk9OTlhfTkFNRVNQQUNFLk5vZGVQcm90",
- "bxIMCgRuYW1lGAIgASgJEjAKC2luaXRpYWxpemVyGAUgAygLMhsuT05OWF9O",
- "QU1FU1BBQ0UuVGVuc29yUHJvdG8SEgoKZG9jX3N0cmluZxgKIAEoCRItCgVp",
- "bnB1dBgLIAMoCzIeLk9OTlhfTkFNRVNQQUNFLlZhbHVlSW5mb1Byb3RvEi4K",
- "Bm91dHB1dBgMIAMoCzIeLk9OTlhfTkFNRVNQQUNFLlZhbHVlSW5mb1Byb3Rv",
- "EjIKCnZhbHVlX2luZm8YDSADKAsyHi5PTk5YX05BTUVTUEFDRS5WYWx1ZUlu",
- "Zm9Qcm90byLDBAoLVGVuc29yUHJvdG8SDAoEZGltcxgBIAMoAxI3CglkYXRh",
- "X3R5cGUYAiABKA4yJC5PTk5YX05BTUVTUEFDRS5UZW5zb3JQcm90by5EYXRh",
- "VHlwZRI0CgdzZWdtZW50GAMgASgLMiMuT05OWF9OQU1FU1BBQ0UuVGVuc29y",
- "UHJvdG8uU2VnbWVudBIWCgpmbG9hdF9kYXRhGAQgAygCQgIQARIWCgppbnQz",
- "Ml9kYXRhGAUgAygFQgIQARITCgtzdHJpbmdfZGF0YRgGIAMoDBIWCgppbnQ2",
- "NF9kYXRhGAcgAygDQgIQARIMCgRuYW1lGAggASgJEhIKCmRvY19zdHJpbmcY",
- "DCABKAkSEAoIcmF3X2RhdGEYCSABKAwSFwoLZG91YmxlX2RhdGEYCiADKAFC",
- "AhABEhcKC3VpbnQ2NF9kYXRhGAsgAygEQgIQARolCgdTZWdtZW50Eg0KBWJl",
- "Z2luGAEgASgDEgsKA2VuZBgCIAEoAyLMAQoIRGF0YVR5cGUSDQoJVU5ERUZJ",
- "TkVEEAASCQoFRkxPQVQQARIJCgVVSU5UOBACEggKBElOVDgQAxIKCgZVSU5U",
- "MTYQBBIJCgVJTlQxNhAFEgkKBUlOVDMyEAYSCQoFSU5UNjQQBxIKCgZTVFJJ",
- "TkcQCBIICgRCT09MEAkSCwoHRkxPQVQxNhAKEgoKBkRPVUJMRRALEgoKBlVJ",
- "TlQzMhAMEgoKBlVJTlQ2NBANEg0KCUNPTVBMRVg2NBAOEg4KCkNPTVBMRVgx",
- "MjgQDyKLAQoQVGVuc29yU2hhcGVQcm90bxI3CgNkaW0YASADKAsyKi5PTk5Y",
- "X05BTUVTUEFDRS5UZW5zb3JTaGFwZVByb3RvLkRpbWVuc2lvbho+CglEaW1l",
- "bnNpb24SEwoJZGltX3ZhbHVlGAEgASgDSAASEwoJZGltX3BhcmFtGAIgASgJ",
- "SABCBwoFdmFsdWUi2QMKCVR5cGVQcm90bxI3Cgt0ZW5zb3JfdHlwZRgBIAEo",
- "CzIgLk9OTlhfTkFNRVNQQUNFLlR5cGVQcm90by5UZW5zb3JIABI7Cg1zZXF1",
- "ZW5jZV90eXBlGAQgASgLMiIuT05OWF9OQU1FU1BBQ0UuVHlwZVByb3RvLlNl",
- "cXVlbmNlSAASMQoIbWFwX3R5cGUYBSABKAsyHS5PTk5YX05BTUVTUEFDRS5U",
- "eXBlUHJvdG8uTWFwSAAacgoGVGVuc29yEjcKCWVsZW1fdHlwZRgBIAEoDjIk",
- "Lk9OTlhfTkFNRVNQQUNFLlRlbnNvclByb3RvLkRhdGFUeXBlEi8KBXNoYXBl",
- "GAIgASgLMiAuT05OWF9OQU1FU1BBQ0UuVGVuc29yU2hhcGVQcm90bxo4CghT",
- "ZXF1ZW5jZRIsCgllbGVtX3R5cGUYASABKAsyGS5PTk5YX05BTUVTUEFDRS5U",
- "eXBlUHJvdG8abAoDTWFwEjYKCGtleV90eXBlGAEgASgOMiQuT05OWF9OQU1F",
- "U1BBQ0UuVGVuc29yUHJvdG8uRGF0YVR5cGUSLQoKdmFsdWVfdHlwZRgCIAEo",
- "CzIZLk9OTlhfTkFNRVNQQUNFLlR5cGVQcm90b0IHCgV2YWx1ZSI1ChJPcGVy",
- "YXRvclNldElkUHJvdG8SDgoGZG9tYWluGAEgASgJEg8KB3ZlcnNpb24YAiAB",
- "KAMqYwoHVmVyc2lvbhISCg5fU1RBUlRfVkVSU0lPThAAEhkKFUlSX1ZFUlNJ",
- "T05fMjAxN18xMF8xMBABEhkKFUlSX1ZFUlNJT05fMjAxN18xMF8zMBACEg4K",
- "CklSX1ZFUlNJT04QA0I2qgIzTWljcm9zb2Z0Lk1hY2hpbmVMZWFybmluZy5V",
- "bml2ZXJzYWxNb2RlbEZvcm1hdC5Pbm54YgZwcm90bzM="));
- descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
- new pbr::FileDescriptor[] { },
- new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.Version), }, new pbr::GeneratedClrTypeInfo[] {
- new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Parser, new[]{ "Name", "DocString", "Type", "F", "I", "S", "T", "G", "Floats", "Ints", "Strings", "Tensors", "Graphs" }, null, new[]{ typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType) }, null),
+namespace Microsoft.ML.Runtime.UniversalModelFormat.Onnx
+{
+
+ /// Holder for reflection information generated from onnx-ml.proto3
+ public static partial class OnnxMlReflection
+ {
+
+ #region Descriptor
+ /// File descriptor for onnx-ml.proto3
+ public static pbr::FileDescriptor Descriptor
+ {
+ get { return descriptor; }
+ }
+ private static pbr::FileDescriptor descriptor;
+
+ static OnnxMlReflection()
+ {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Cg5vbm54LW1sLnByb3RvMxIEb25ueCLgAwoOQXR0cmlidXRlUHJvdG8SDAoE",
+ "bmFtZRgBIAEoCRIVCg1yZWZfYXR0cl9uYW1lGBUgASgJEhIKCmRvY19zdHJp",
+ "bmcYDSABKAkSMAoEdHlwZRgUIAEoDjIiLm9ubnguQXR0cmlidXRlUHJvdG8u",
+ "QXR0cmlidXRlVHlwZRIJCgFmGAIgASgCEgkKAWkYAyABKAMSCQoBcxgEIAEo",
+ "DBIcCgF0GAUgASgLMhEub25ueC5UZW5zb3JQcm90bxIbCgFnGAYgASgLMhAu",
+ "b25ueC5HcmFwaFByb3RvEg4KBmZsb2F0cxgHIAMoAhIMCgRpbnRzGAggAygD",
+ "Eg8KB3N0cmluZ3MYCSADKAwSIgoHdGVuc29ycxgKIAMoCzIRLm9ubnguVGVu",
+ "c29yUHJvdG8SIAoGZ3JhcGhzGAsgAygLMhAub25ueC5HcmFwaFByb3RvIpEB",
+ "Cg1BdHRyaWJ1dGVUeXBlEg0KCVVOREVGSU5FRBAAEgkKBUZMT0FUEAESBwoD",
+ "SU5UEAISCgoGU1RSSU5HEAMSCgoGVEVOU09SEAQSCQoFR1JBUEgQBRIKCgZG",
+ "TE9BVFMQBhIICgRJTlRTEAcSCwoHU1RSSU5HUxAIEgsKB1RFTlNPUlMQCRIK",
+ "CgZHUkFQSFMQCiJRCg5WYWx1ZUluZm9Qcm90bxIMCgRuYW1lGAEgASgJEh0K",
+ "BHR5cGUYAiABKAsyDy5vbm54LlR5cGVQcm90bxISCgpkb2Nfc3RyaW5nGAMg",
+ "ASgJIpYBCglOb2RlUHJvdG8SDQoFaW5wdXQYASADKAkSDgoGb3V0cHV0GAIg",
+ "AygJEgwKBG5hbWUYAyABKAkSDwoHb3BfdHlwZRgEIAEoCRIOCgZkb21haW4Y",
+ "ByABKAkSJwoJYXR0cmlidXRlGAUgAygLMhQub25ueC5BdHRyaWJ1dGVQcm90",
+ "bxISCgpkb2Nfc3RyaW5nGAYgASgJIpMCCgpNb2RlbFByb3RvEhIKCmlyX3Zl",
+ "cnNpb24YASABKAMSLgoMb3BzZXRfaW1wb3J0GAggAygLMhgub25ueC5PcGVy",
+ "YXRvclNldElkUHJvdG8SFQoNcHJvZHVjZXJfbmFtZRgCIAEoCRIYChBwcm9k",
+ "dWNlcl92ZXJzaW9uGAMgASgJEg4KBmRvbWFpbhgEIAEoCRIVCg1tb2RlbF92",
+ "ZXJzaW9uGAUgASgDEhIKCmRvY19zdHJpbmcYBiABKAkSHwoFZ3JhcGgYByAB",
+ "KAsyEC5vbm54LkdyYXBoUHJvdG8SNAoObWV0YWRhdGFfcHJvcHMYDiADKAsy",
+ "HC5vbm54LlN0cmluZ1N0cmluZ0VudHJ5UHJvdG8iNAoWU3RyaW5nU3RyaW5n",
+ "RW50cnlQcm90bxILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAki6gEKCkdy",
+ "YXBoUHJvdG8SHQoEbm9kZRgBIAMoCzIPLm9ubnguTm9kZVByb3RvEgwKBG5h",
+ "bWUYAiABKAkSJgoLaW5pdGlhbGl6ZXIYBSADKAsyES5vbm54LlRlbnNvclBy",
+ "b3RvEhIKCmRvY19zdHJpbmcYCiABKAkSIwoFaW5wdXQYCyADKAsyFC5vbm54",
+ "LlZhbHVlSW5mb1Byb3RvEiQKBm91dHB1dBgMIAMoCzIULm9ubnguVmFsdWVJ",
+ "bmZvUHJvdG8SKAoKdmFsdWVfaW5mbxgNIAMoCzIULm9ubnguVmFsdWVJbmZv",
+ "UHJvdG8irwQKC1RlbnNvclByb3RvEgwKBGRpbXMYASADKAMSLQoJZGF0YV90",
+ "eXBlGAIgASgOMhoub25ueC5UZW5zb3JQcm90by5EYXRhVHlwZRIqCgdzZWdt",
+ "ZW50GAMgASgLMhkub25ueC5UZW5zb3JQcm90by5TZWdtZW50EhYKCmZsb2F0",
+ "X2RhdGEYBCADKAJCAhABEhYKCmludDMyX2RhdGEYBSADKAVCAhABEhMKC3N0",
+ "cmluZ19kYXRhGAYgAygMEhYKCmludDY0X2RhdGEYByADKANCAhABEgwKBG5h",
+ "bWUYCCABKAkSEgoKZG9jX3N0cmluZxgMIAEoCRIQCghyYXdfZGF0YRgJIAEo",
+ "DBIXCgtkb3VibGVfZGF0YRgKIAMoAUICEAESFwoLdWludDY0X2RhdGEYCyAD",
+ "KARCAhABGiUKB1NlZ21lbnQSDQoFYmVnaW4YASABKAMSCwoDZW5kGAIgASgD",
+ "IswBCghEYXRhVHlwZRINCglVTkRFRklORUQQABIJCgVGTE9BVBABEgkKBVVJ",
+ "TlQ4EAISCAoESU5UOBADEgoKBlVJTlQxNhAEEgkKBUlOVDE2EAUSCQoFSU5U",
+ "MzIQBhIJCgVJTlQ2NBAHEgoKBlNUUklORxAIEggKBEJPT0wQCRILCgdGTE9B",
+ "VDE2EAoSCgoGRE9VQkxFEAsSCgoGVUlOVDMyEAwSCgoGVUlOVDY0EA0SDQoJ",
+ "Q09NUExFWDY0EA4SDgoKQ09NUExFWDEyOBAPIpUBChBUZW5zb3JTaGFwZVBy",
+ "b3RvEi0KA2RpbRgBIAMoCzIgLm9ubnguVGVuc29yU2hhcGVQcm90by5EaW1l",
+ "bnNpb24aUgoJRGltZW5zaW9uEhMKCWRpbV92YWx1ZRgBIAEoA0gAEhMKCWRp",
+ "bV9wYXJhbRgCIAEoCUgAEhIKCmRlbm90YXRpb24YAyABKAlCBwoFdmFsdWUi",
+ "nQMKCVR5cGVQcm90bxItCgt0ZW5zb3JfdHlwZRgBIAEoCzIWLm9ubnguVHlw",
+ "ZVByb3RvLlRlbnNvckgAEjEKDXNlcXVlbmNlX3R5cGUYBCABKAsyGC5vbm54",
+ "LlR5cGVQcm90by5TZXF1ZW5jZUgAEicKCG1hcF90eXBlGAUgASgLMhMub25u",
+ "eC5UeXBlUHJvdG8uTWFwSAASEgoKZGVub3RhdGlvbhgGIAEoCRpeCgZUZW5z",
+ "b3ISLQoJZWxlbV90eXBlGAEgASgOMhoub25ueC5UZW5zb3JQcm90by5EYXRh",
+ "VHlwZRIlCgVzaGFwZRgCIAEoCzIWLm9ubnguVGVuc29yU2hhcGVQcm90bxou",
+ "CghTZXF1ZW5jZRIiCgllbGVtX3R5cGUYASABKAsyDy5vbm54LlR5cGVQcm90",
+ "bxpYCgNNYXASLAoIa2V5X3R5cGUYASABKA4yGi5vbm54LlRlbnNvclByb3Rv",
+ "LkRhdGFUeXBlEiMKCnZhbHVlX3R5cGUYAiABKAsyDy5vbm54LlR5cGVQcm90",
+ "b0IHCgV2YWx1ZSI1ChJPcGVyYXRvclNldElkUHJvdG8SDgoGZG9tYWluGAEg",
+ "ASgJEg8KB3ZlcnNpb24YAiABKAMqYwoHVmVyc2lvbhISCg5fU1RBUlRfVkVS",
+ "U0lPThAAEhkKFUlSX1ZFUlNJT05fMjAxN18xMF8xMBABEhkKFUlSX1ZFUlNJ",
+ "T05fMjAxN18xMF8zMBACEg4KCklSX1ZFUlNJT04QA0IxqgIuTWljcm9zb2Z0",
+ "Lk1MLlJ1bnRpbWUuVW5pdmVyc2FsTW9kZWxGb3JtYXQuT25ueGIGcHJvdG8z"));
+ descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
+ new pbr::FileDescriptor[] { },
+ new pbr::GeneratedClrTypeInfo(new[] { typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.Version), }, new pbr::GeneratedClrTypeInfo[] {
+ new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Parser, new[]{ "Name", "RefAttrName", "DocString", "Type", "F", "I", "S", "T", "G", "Floats", "Ints", "Strings", "Tensors", "Graphs" }, null, new[]{ typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType) }, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser, new[]{ "Name", "Type", "DocString" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.NodeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.NodeProto.Parser, new[]{ "Input", "Output", "Name", "OpType", "Domain", "Attribute", "DocString" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ModelProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ModelProto.Parser, new[]{ "IrVersion", "OpsetImport", "ProducerName", "ProducerVersion", "Domain", "ModelVersion", "DocString", "Graph", "MetadataProps" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.StringStringEntryProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.StringStringEntryProto.Parser, new[]{ "Key", "Value" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto.Parser, new[]{ "Node", "Name", "Initializer", "DocString", "Input", "Output", "ValueInfo" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Parser, new[]{ "Dims", "DataType", "Segment", "FloatData", "Int32Data", "StringData", "Int64Data", "Name", "DocString", "RawData", "DoubleData", "Uint64Data" }, null, new[]{ typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType) }, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment.Parser, new[]{ "Begin", "End" }, null, null, null)}),
- new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Parser, new[]{ "Dim" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Types.Dimension), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Types.Dimension.Parser, new[]{ "DimValue", "DimParam" }, new[]{ "Value" }, null, null)}),
- new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Parser, new[]{ "TensorType", "SequenceType", "MapType" }, new[]{ "Value" }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Tensor), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Tensor.Parser, new[]{ "ElemType", "Shape" }, null, null, null),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Parser, new[]{ "Dim" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Types.Dimension), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorShapeProto.Types.Dimension.Parser, new[]{ "DimValue", "DimParam", "Denotation" }, new[]{ "Value" }, null, null)}),
+ new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Parser, new[]{ "TensorType", "SequenceType", "MapType", "Denotation" }, new[]{ "Value" }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Tensor), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Tensor.Parser, new[]{ "ElemType", "Shape" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Sequence), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Sequence.Parser, new[]{ "ElemType" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Map), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto.Types.Map.Parser, new[]{ "KeyType", "ValueType" }, null, null, null)}),
new pbr::GeneratedClrTypeInfo(typeof(global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OperatorSetIdProto), global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OperatorSetIdProto.Parser, new[]{ "Domain", "Version" }, null, null, null)
- }));
- }
- #endregion
-
- }
- #region Enums
- ///
- /// To be compatible with both proto2 and proto3, we will use a version number
- /// that is not defined by the default value but an explicit enum number.
- ///
- public enum Version {
- ///
- /// proto3 requires the first enum value to be zero.
- /// We add this just to appease the compiler.
- ///
- [pbr::OriginalName("_START_VERSION")] StartVersion = 0,
- ///
- /// The version field is always serialized and we will use it to store the
- /// version that the graph is generated from. This helps us set up version
- /// control. We should use version as
- /// xx(major) - xx(minor) - xxxx(bugfix)
- /// and we are starting with 0x00000001 (0.0.1), which was the
- /// version we published on Oct 10, 2017.
- ///
- [pbr::OriginalName("IR_VERSION_2017_10_10")] IrVersion20171010 = 1,
- ///
- /// IR_VERSION 0.0.2 published on Oct 30, 2017
- /// - Added type discriminator to AttributeProto to support proto3 users
- ///
- [pbr::OriginalName("IR_VERSION_2017_10_30")] IrVersion20171030 = 2,
- ///
- /// IR VERSION 0.0.3 published on Nov 3, 2017
- /// - For operator versioning:
- /// - Added new message OperatorSetIdProto
- /// - Added opset_import in ModelProto
- /// - For vendor extensions, added domain in NodeProto
- ///
- [pbr::OriginalName("IR_VERSION")] IrVersion = 3,
- }
-
- #endregion
-
- #region Messages
- ///
- /// A named attribute containing either singular float, integer, string
- /// and tensor values, or repeated float, integer, string and tensor values.
- /// An AttributeProto MUST contain the name field, and *only one* of the
- /// following content fields, effectively enforcing a C/C++ union equivalent.
- ///
- public sealed partial class AttributeProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AttributeProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[0]; }
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public AttributeProto() {
- OnConstruction();
- }
-
- partial void OnConstruction();
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public AttributeProto(AttributeProto other) : this() {
- name_ = other.name_;
- docString_ = other.docString_;
- type_ = other.type_;
- f_ = other.f_;
- i_ = other.i_;
- s_ = other.s_;
- T = other.t_ != null ? other.T.Clone() : null;
- G = other.g_ != null ? other.G.Clone() : null;
- floats_ = other.floats_.Clone();
- ints_ = other.ints_.Clone();
- strings_ = other.strings_.Clone();
- tensors_ = other.tensors_.Clone();
- graphs_ = other.graphs_.Clone();
- }
+ }));
+ }
+ #endregion
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public AttributeProto Clone() {
- return new AttributeProto(this);
}
-
- /// Field number for the "name" field.
- public const int NameFieldNumber = 1;
- private string name_ = "";
+ #region Enums
///
- /// The name field MUST be present for this version of the IR.
+ /// Versioning
+ ///
+ /// ONNX versioning is specified in docs/IR.md and elaborated on in docs/Versioning.md
+ ///
+ /// To be compatible with both proto2 and proto3, we will use a version number
+ /// that is not defined by the default value but an explicit enum number.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Name {
- get { return name_; }
- set {
- name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
+ public enum Version
+ {
+ ///
+ /// proto3 requires the first enum value to be zero.
+ /// We add this just to appease the compiler.
+ ///
+ [pbr::OriginalName("_START_VERSION")] StartVersion = 0,
+ ///
+ /// The version field is always serialized and we will use it to store the
+ /// version that the graph is generated from. This helps us set up version
+ /// control.
+ /// For the IR, we are using simple numbers starting with with 0x00000001,
+ /// which was the version we published on Oct 10, 2017.
+ ///
+ [pbr::OriginalName("IR_VERSION_2017_10_10")] IrVersion20171010 = 1,
+ ///
+ /// IR_VERSION 2 published on Oct 30, 2017
+ /// - Added type discriminator to AttributeProto to support proto3 users
+ ///
+ [pbr::OriginalName("IR_VERSION_2017_10_30")] IrVersion20171030 = 2,
+ ///
+ /// IR VERSION 3 published on Nov 3, 2017
+ /// - For operator versioning:
+ /// - Added new message OperatorSetIdProto
+ /// - Added opset_import in ModelProto
+ /// - For vendor extensions, added domain in NodeProto
+ ///
+ [pbr::OriginalName("IR_VERSION")] IrVersion = 3,
}
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 13;
- private string docString_ = "";
- ///
- /// A human-readable documentation for this attribute. Markdown is allowed.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ #endregion
- /// Field number for the "type" field.
- public const int TypeFieldNumber = 20;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType type_ = 0;
+ #region Messages
///
- /// The type field MUST be present for this version of the IR.
- /// For 0.0.1 versions of the IR, this field was not defined, and
- /// implementations needed to use has_field hueristics to determine
- /// which value field was in use. For IR_VERSION 0.0.2 or later, this
- /// field MUST be set and match the f|i|s|t|... field in use. This
- /// change was made to accomodate proto3 implementations.
+ /// Attributes
+ ///
+ /// A named attribute containing either singular float, integer, string, graph,
+ /// and tensor values, or repeated float, integer, string, graph, and tensor values.
+ /// An AttributeProto MUST contain the name field, and *only one* of the
+ /// following content fields, effectively enforcing a C/C++ union equivalent.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType Type {
- get { return type_; }
- set {
- type_ = value;
- }
- }
+ public sealed partial class AttributeProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new AttributeProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- /// Field number for the "f" field.
- public const int FFieldNumber = 2;
- private float f_;
- ///
- /// Exactly ONE of the following fields must be present for this version of the IR
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public float F {
- get { return f_; }
- set {
- f_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[0]; }
+ }
- /// Field number for the "i" field.
- public const int IFieldNumber = 3;
- private long i_;
- ///
- /// int
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public long I {
- get { return i_; }
- set {
- i_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- /// Field number for the "s" field.
- public const int SFieldNumber = 4;
- private pb::ByteString s_ = pb::ByteString.Empty;
- ///
- /// UTF-8 string
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pb::ByteString S {
- get { return s_; }
- set {
- s_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttributeProto()
+ {
+ OnConstruction();
+ }
- /// Field number for the "t" field.
- public const int TFieldNumber = 5;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto t_;
- ///
- /// tensor value
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto T {
- get { return t_; }
- set {
- t_ = value;
- }
- }
+ partial void OnConstruction();
- /// Field number for the "g" field.
- public const int GFieldNumber = 6;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto g_;
- ///
- /// graph
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto G {
- get { return g_; }
- set {
- g_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttributeProto(AttributeProto other) : this()
+ {
+ name_ = other.name_;
+ refAttrName_ = other.refAttrName_;
+ docString_ = other.docString_;
+ type_ = other.type_;
+ f_ = other.f_;
+ i_ = other.i_;
+ s_ = other.s_;
+ T = other.t_ != null ? other.T.Clone() : null;
+ G = other.g_ != null ? other.G.Clone() : null;
+ floats_ = other.floats_.Clone();
+ ints_ = other.ints_.Clone();
+ strings_ = other.strings_.Clone();
+ tensors_ = other.tensors_.Clone();
+ graphs_ = other.graphs_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- /// Field number for the "floats" field.
- public const int FloatsFieldNumber = 7;
- private static readonly pb::FieldCodec _repeated_floats_codec
- = pb::FieldCodec.ForFloat(58);
- private readonly pbc::RepeatedField floats_ = new pbc::RepeatedField();
- ///
- /// list of floats
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Floats {
- get { return floats_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public AttributeProto Clone()
+ {
+ return new AttributeProto(this);
+ }
- /// Field number for the "ints" field.
- public const int IntsFieldNumber = 8;
- private static readonly pb::FieldCodec _repeated_ints_codec
- = pb::FieldCodec.ForInt64(66);
- private readonly pbc::RepeatedField ints_ = new pbc::RepeatedField();
- ///
- /// list of ints
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Ints {
- get { return ints_; }
- }
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 1;
+ private string name_ = "";
+ ///
+ /// The name field MUST be present for this version of the IR.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Name
+ {
+ get { return name_; }
+ set
+ {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- /// Field number for the "strings" field.
- public const int StringsFieldNumber = 9;
- private static readonly pb::FieldCodec _repeated_strings_codec
- = pb::FieldCodec.ForBytes(74);
- private readonly pbc::RepeatedField strings_ = new pbc::RepeatedField();
- ///
- /// list of UTF-8 strings
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Strings {
- get { return strings_; }
- }
+ /// Field number for the "ref_attr_name" field.
+ public const int RefAttrNameFieldNumber = 21;
+ private string refAttrName_ = "";
+ ///
+ /// if ref_attr_name is not empty, ref_attr_name is the attribute name in parent function.
+ /// In this case, this AttributeProto does not contain data, and it's a reference of attribute
+ /// in parent scope.
+ /// NOTE: This should ONLY be used in function (sub-graph). It's invalid to be used in main graph.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string RefAttrName
+ {
+ get { return refAttrName_; }
+ set
+ {
+ refAttrName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- /// Field number for the "tensors" field.
- public const int TensorsFieldNumber = 10;
- private static readonly pb::FieldCodec _repeated_tensors_codec
- = pb::FieldCodec.ForMessage(82, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Parser);
- private readonly pbc::RepeatedField tensors_ = new pbc::RepeatedField();
- ///
- /// list of tensors
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Tensors {
- get { return tensors_; }
- }
+ /// Field number for the "doc_string" field.
+ public const int DocStringFieldNumber = 13;
+ private string docString_ = "";
+ ///
+ /// A human-readable documentation for this attribute. Markdown is allowed.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string DocString
+ {
+ get { return docString_; }
+ set
+ {
+ docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- /// Field number for the "graphs" field.
- public const int GraphsFieldNumber = 11;
- private static readonly pb::FieldCodec _repeated_graphs_codec
- = pb::FieldCodec.ForMessage(90, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto.Parser);
- private readonly pbc::RepeatedField graphs_ = new pbc::RepeatedField();
- ///
- /// list of graph
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Graphs {
- get { return graphs_; }
- }
+ /// Field number for the "type" field.
+ public const int TypeFieldNumber = 20;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType type_ = 0;
+ ///
+ /// The type field MUST be present for this version of the IR.
+ /// For 0.0.1 versions of the IR, this field was not defined, and
+ /// implementations needed to use has_field hueristics to determine
+ /// which value field was in use. For IR_VERSION 0.0.2 or later, this
+ /// field MUST be set and match the f|i|s|t|... field in use. This
+ /// change was made to accomodate proto3 implementations.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType Type
+ {
+ get { return type_; }
+ set
+ {
+ type_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as AttributeProto);
- }
+ /// Field number for the "f" field.
+ public const int FFieldNumber = 2;
+ private float f_;
+ ///
+ /// Exactly ONE of the following fields must be present for this version of the IR
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public float F
+ {
+ get { return f_; }
+ set
+ {
+ f_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(AttributeProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if (Name != other.Name) return false;
- if (DocString != other.DocString) return false;
- if (Type != other.Type) return false;
- if (F != other.F) return false;
- if (I != other.I) return false;
- if (S != other.S) return false;
- if (!object.Equals(T, other.T)) return false;
- if (!object.Equals(G, other.G)) return false;
- if(!floats_.Equals(other.floats_)) return false;
- if(!ints_.Equals(other.ints_)) return false;
- if(!strings_.Equals(other.strings_)) return false;
- if(!tensors_.Equals(other.tensors_)) return false;
- if(!graphs_.Equals(other.graphs_)) return false;
- return true;
- }
+ /// Field number for the "i" field.
+ public const int IFieldNumber = 3;
+ private long i_;
+ ///
+ /// int
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long I
+ {
+ get { return i_; }
+ set
+ {
+ i_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- if (Name.Length != 0) hash ^= Name.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- if (Type != 0) hash ^= Type.GetHashCode();
- if (F != 0F) hash ^= F.GetHashCode();
- if (I != 0L) hash ^= I.GetHashCode();
- if (S.Length != 0) hash ^= S.GetHashCode();
- if (t_ != null) hash ^= T.GetHashCode();
- if (g_ != null) hash ^= G.GetHashCode();
- hash ^= floats_.GetHashCode();
- hash ^= ints_.GetHashCode();
- hash ^= strings_.GetHashCode();
- hash ^= tensors_.GetHashCode();
- hash ^= graphs_.GetHashCode();
- return hash;
- }
+ /// Field number for the "s" field.
+ public const int SFieldNumber = 4;
+ private pb::ByteString s_ = pb::ByteString.Empty;
+ ///
+ /// UTF-8 string
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pb::ByteString S
+ {
+ get { return s_; }
+ set
+ {
+ s_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ /// Field number for the "t" field.
+ public const int TFieldNumber = 5;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto t_;
+ ///
+ /// tensor value
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto T
+ {
+ get { return t_; }
+ set
+ {
+ t_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- if (Name.Length != 0) {
- output.WriteRawTag(10);
- output.WriteString(Name);
- }
- if (F != 0F) {
- output.WriteRawTag(21);
- output.WriteFloat(F);
- }
- if (I != 0L) {
- output.WriteRawTag(24);
- output.WriteInt64(I);
- }
- if (S.Length != 0) {
- output.WriteRawTag(34);
- output.WriteBytes(S);
- }
- if (t_ != null) {
- output.WriteRawTag(42);
- output.WriteMessage(T);
- }
- if (g_ != null) {
- output.WriteRawTag(50);
- output.WriteMessage(G);
- }
- floats_.WriteTo(output, _repeated_floats_codec);
- ints_.WriteTo(output, _repeated_ints_codec);
- strings_.WriteTo(output, _repeated_strings_codec);
- tensors_.WriteTo(output, _repeated_tensors_codec);
- graphs_.WriteTo(output, _repeated_graphs_codec);
- if (DocString.Length != 0) {
- output.WriteRawTag(106);
- output.WriteString(DocString);
- }
- if (Type != 0) {
- output.WriteRawTag(160, 1);
- output.WriteEnum((int) Type);
- }
- }
+ /// Field number for the "g" field.
+ public const int GFieldNumber = 6;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto g_;
+ ///
+ /// graph
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto G
+ {
+ get { return g_; }
+ set
+ {
+ g_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- if (Name.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
- }
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- if (Type != 0) {
- size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
- }
- if (F != 0F) {
- size += 1 + 4;
- }
- if (I != 0L) {
- size += 1 + pb::CodedOutputStream.ComputeInt64Size(I);
- }
- if (S.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeBytesSize(S);
- }
- if (t_ != null) {
- size += 1 + pb::CodedOutputStream.ComputeMessageSize(T);
- }
- if (g_ != null) {
- size += 1 + pb::CodedOutputStream.ComputeMessageSize(G);
- }
- size += floats_.CalculateSize(_repeated_floats_codec);
- size += ints_.CalculateSize(_repeated_ints_codec);
- size += strings_.CalculateSize(_repeated_strings_codec);
- size += tensors_.CalculateSize(_repeated_tensors_codec);
- size += graphs_.CalculateSize(_repeated_graphs_codec);
- return size;
- }
+ /// Field number for the "floats" field.
+ public const int FloatsFieldNumber = 7;
+ private static readonly pb::FieldCodec _repeated_floats_codec
+ = pb::FieldCodec.ForFloat(58);
+ private readonly pbc::RepeatedField floats_ = new pbc::RepeatedField();
+ ///
+ /// list of floats
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Floats
+ {
+ get { return floats_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(AttributeProto other) {
- if (other == null) {
- return;
- }
- if (other.Name.Length != 0) {
- Name = other.Name;
- }
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- if (other.Type != 0) {
- Type = other.Type;
- }
- if (other.F != 0F) {
- F = other.F;
- }
- if (other.I != 0L) {
- I = other.I;
- }
- if (other.S.Length != 0) {
- S = other.S;
- }
- if (other.t_ != null) {
- if (t_ == null) {
- t_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto();
- }
- T.MergeFrom(other.T);
- }
- if (other.g_ != null) {
- if (g_ == null) {
- g_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
- }
- G.MergeFrom(other.G);
- }
- floats_.Add(other.floats_);
- ints_.Add(other.ints_);
- strings_.Add(other.strings_);
- tensors_.Add(other.tensors_);
- graphs_.Add(other.graphs_);
- }
+ /// Field number for the "ints" field.
+ public const int IntsFieldNumber = 8;
+ private static readonly pb::FieldCodec _repeated_ints_codec
+ = pb::FieldCodec.ForInt64(66);
+ private readonly pbc::RepeatedField ints_ = new pbc::RepeatedField();
+ ///
+ /// list of ints
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Ints
+ {
+ get { return ints_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10: {
- Name = input.ReadString();
- break;
- }
- case 21: {
- F = input.ReadFloat();
- break;
- }
- case 24: {
- I = input.ReadInt64();
- break;
- }
- case 34: {
- S = input.ReadBytes();
- break;
- }
- case 42: {
- if (t_ == null) {
- t_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto();
- }
- input.ReadMessage(t_);
- break;
- }
- case 50: {
- if (g_ == null) {
- g_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
- }
- input.ReadMessage(g_);
- break;
- }
- case 58:
- case 61: {
- floats_.AddEntriesFrom(input, _repeated_floats_codec);
- break;
- }
- case 66:
- case 64: {
- ints_.AddEntriesFrom(input, _repeated_ints_codec);
- break;
- }
- case 74: {
- strings_.AddEntriesFrom(input, _repeated_strings_codec);
- break;
- }
- case 82: {
- tensors_.AddEntriesFrom(input, _repeated_tensors_codec);
- break;
- }
- case 90: {
- graphs_.AddEntriesFrom(input, _repeated_graphs_codec);
- break;
- }
- case 106: {
- DocString = input.ReadString();
- break;
- }
- case 160: {
- type_ = (global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType) input.ReadEnum();
- break;
- }
- }
- }
- }
+ /// Field number for the "strings" field.
+ public const int StringsFieldNumber = 9;
+ private static readonly pb::FieldCodec _repeated_strings_codec
+ = pb::FieldCodec.ForBytes(74);
+ private readonly pbc::RepeatedField strings_ = new pbc::RepeatedField();
+ ///
+ /// list of UTF-8 strings
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Strings
+ {
+ get { return strings_; }
+ }
- #region Nested types
- /// Container for nested types declared in the AttributeProto message type.
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static partial class Types {
- ///
- /// Note: this enum is structurally identical to the OpSchema::AttrType
- /// enum defined in schema.h. If you rev one, you likely need to rev the other.
- ///
- public enum AttributeType {
- [pbr::OriginalName("UNDEFINED")] Undefined = 0,
- [pbr::OriginalName("FLOAT")] Float = 1,
- [pbr::OriginalName("INT")] Int = 2,
- [pbr::OriginalName("STRING")] String = 3,
- [pbr::OriginalName("TENSOR")] Tensor = 4,
- [pbr::OriginalName("GRAPH")] Graph = 5,
- [pbr::OriginalName("FLOATS")] Floats = 6,
- [pbr::OriginalName("INTS")] Ints = 7,
- [pbr::OriginalName("STRINGS")] Strings = 8,
- [pbr::OriginalName("TENSORS")] Tensors = 9,
- [pbr::OriginalName("GRAPHS")] Graphs = 10,
- }
+ /// Field number for the "tensors" field.
+ public const int TensorsFieldNumber = 10;
+ private static readonly pb::FieldCodec _repeated_tensors_codec
+ = pb::FieldCodec.ForMessage(82, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Parser);
+ private readonly pbc::RepeatedField tensors_ = new pbc::RepeatedField();
+ ///
+ /// list of tensors
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Tensors
+ {
+ get { return tensors_; }
+ }
- }
- #endregion
+ /// Field number for the "graphs" field.
+ public const int GraphsFieldNumber = 11;
+ private static readonly pb::FieldCodec _repeated_graphs_codec
+ = pb::FieldCodec.ForMessage(90, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto.Parser);
+ private readonly pbc::RepeatedField graphs_ = new pbc::RepeatedField();
+ ///
+ /// list of graph
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Graphs
+ {
+ get { return graphs_; }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as AttributeProto);
+ }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(AttributeProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (Name != other.Name) return false;
+ if (RefAttrName != other.RefAttrName) return false;
+ if (DocString != other.DocString) return false;
+ if (Type != other.Type) return false;
+ if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(F, other.F)) return false;
+ if (I != other.I) return false;
+ if (S != other.S) return false;
+ if (!object.Equals(T, other.T)) return false;
+ if (!object.Equals(G, other.G)) return false;
+ if (!floats_.Equals(other.floats_)) return false;
+ if (!ints_.Equals(other.ints_)) return false;
+ if (!strings_.Equals(other.strings_)) return false;
+ if (!tensors_.Equals(other.tensors_)) return false;
+ if (!graphs_.Equals(other.graphs_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- ///
- /// Defines information on value, including the name, the type, and
- /// the shape of the value.
- ///
- public sealed partial class ValueInfoProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ValueInfoProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ if (Name.Length != 0) hash ^= Name.GetHashCode();
+ if (RefAttrName.Length != 0) hash ^= RefAttrName.GetHashCode();
+ if (DocString.Length != 0) hash ^= DocString.GetHashCode();
+ if (Type != 0) hash ^= Type.GetHashCode();
+ if (F != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(F);
+ if (I != 0L) hash ^= I.GetHashCode();
+ if (S.Length != 0) hash ^= S.GetHashCode();
+ if (t_ != null) hash ^= T.GetHashCode();
+ if (g_ != null) hash ^= G.GetHashCode();
+ hash ^= floats_.GetHashCode();
+ hash ^= ints_.GetHashCode();
+ hash ^= strings_.GetHashCode();
+ hash ^= tensors_.GetHashCode();
+ hash ^= graphs_.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[1]; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ if (Name.Length != 0)
+ {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (F != 0F)
+ {
+ output.WriteRawTag(21);
+ output.WriteFloat(F);
+ }
+ if (I != 0L)
+ {
+ output.WriteRawTag(24);
+ output.WriteInt64(I);
+ }
+ if (S.Length != 0)
+ {
+ output.WriteRawTag(34);
+ output.WriteBytes(S);
+ }
+ if (t_ != null)
+ {
+ output.WriteRawTag(42);
+ output.WriteMessage(T);
+ }
+ if (g_ != null)
+ {
+ output.WriteRawTag(50);
+ output.WriteMessage(G);
+ }
+ floats_.WriteTo(output, _repeated_floats_codec);
+ ints_.WriteTo(output, _repeated_ints_codec);
+ strings_.WriteTo(output, _repeated_strings_codec);
+ tensors_.WriteTo(output, _repeated_tensors_codec);
+ graphs_.WriteTo(output, _repeated_graphs_codec);
+ if (DocString.Length != 0)
+ {
+ output.WriteRawTag(106);
+ output.WriteString(DocString);
+ }
+ if (Type != 0)
+ {
+ output.WriteRawTag(160, 1);
+ output.WriteEnum((int)Type);
+ }
+ if (RefAttrName.Length != 0)
+ {
+ output.WriteRawTag(170, 1);
+ output.WriteString(RefAttrName);
+ }
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ValueInfoProto() {
- OnConstruction();
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ if (Name.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (RefAttrName.Length != 0)
+ {
+ size += 2 + pb::CodedOutputStream.ComputeStringSize(RefAttrName);
+ }
+ if (DocString.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
+ }
+ if (Type != 0)
+ {
+ size += 2 + pb::CodedOutputStream.ComputeEnumSize((int)Type);
+ }
+ if (F != 0F)
+ {
+ size += 1 + 4;
+ }
+ if (I != 0L)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(I);
+ }
+ if (S.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeBytesSize(S);
+ }
+ if (t_ != null)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(T);
+ }
+ if (g_ != null)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(G);
+ }
+ size += floats_.CalculateSize(_repeated_floats_codec);
+ size += ints_.CalculateSize(_repeated_ints_codec);
+ size += strings_.CalculateSize(_repeated_strings_codec);
+ size += tensors_.CalculateSize(_repeated_tensors_codec);
+ size += graphs_.CalculateSize(_repeated_graphs_codec);
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
- partial void OnConstruction();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(AttributeProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ if (other.Name.Length != 0)
+ {
+ Name = other.Name;
+ }
+ if (other.RefAttrName.Length != 0)
+ {
+ RefAttrName = other.RefAttrName;
+ }
+ if (other.DocString.Length != 0)
+ {
+ DocString = other.DocString;
+ }
+ if (other.Type != 0)
+ {
+ Type = other.Type;
+ }
+ if (other.F != 0F)
+ {
+ F = other.F;
+ }
+ if (other.I != 0L)
+ {
+ I = other.I;
+ }
+ if (other.S.Length != 0)
+ {
+ S = other.S;
+ }
+ if (other.t_ != null)
+ {
+ if (t_ == null)
+ {
+ t_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto();
+ }
+ T.MergeFrom(other.T);
+ }
+ if (other.g_ != null)
+ {
+ if (g_ == null)
+ {
+ g_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
+ }
+ G.MergeFrom(other.G);
+ }
+ floats_.Add(other.floats_);
+ ints_.Add(other.ints_);
+ strings_.Add(other.strings_);
+ tensors_.Add(other.tensors_);
+ graphs_.Add(other.graphs_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ValueInfoProto(ValueInfoProto other) : this() {
- name_ = other.name_;
- Type = other.type_ != null ? other.Type.Clone() : null;
- docString_ = other.docString_;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input)
+ {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0)
+ {
+ switch (tag)
+ {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10:
+ {
+ Name = input.ReadString();
+ break;
+ }
+ case 21:
+ {
+ F = input.ReadFloat();
+ break;
+ }
+ case 24:
+ {
+ I = input.ReadInt64();
+ break;
+ }
+ case 34:
+ {
+ S = input.ReadBytes();
+ break;
+ }
+ case 42:
+ {
+ if (t_ == null)
+ {
+ t_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto();
+ }
+ input.ReadMessage(t_);
+ break;
+ }
+ case 50:
+ {
+ if (g_ == null)
+ {
+ g_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
+ }
+ input.ReadMessage(g_);
+ break;
+ }
+ case 58:
+ case 61:
+ {
+ floats_.AddEntriesFrom(input, _repeated_floats_codec);
+ break;
+ }
+ case 66:
+ case 64:
+ {
+ ints_.AddEntriesFrom(input, _repeated_ints_codec);
+ break;
+ }
+ case 74:
+ {
+ strings_.AddEntriesFrom(input, _repeated_strings_codec);
+ break;
+ }
+ case 82:
+ {
+ tensors_.AddEntriesFrom(input, _repeated_tensors_codec);
+ break;
+ }
+ case 90:
+ {
+ graphs_.AddEntriesFrom(input, _repeated_graphs_codec);
+ break;
+ }
+ case 106:
+ {
+ DocString = input.ReadString();
+ break;
+ }
+ case 160:
+ {
+ type_ = (global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Types.AttributeType)input.ReadEnum();
+ break;
+ }
+ case 170:
+ {
+ RefAttrName = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ValueInfoProto Clone() {
- return new ValueInfoProto(this);
- }
+ #region Nested types
+ /// Container for nested types declared in the AttributeProto message type.
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static partial class Types
+ {
+ ///
+ /// Note: this enum is structurally identical to the OpSchema::AttrType
+ /// enum defined in schema.h. If you rev one, you likely need to rev the other.
+ ///
+ public enum AttributeType
+ {
+ [pbr::OriginalName("UNDEFINED")] Undefined = 0,
+ [pbr::OriginalName("FLOAT")] Float = 1,
+ [pbr::OriginalName("INT")] Int = 2,
+ [pbr::OriginalName("STRING")] String = 3,
+ [pbr::OriginalName("TENSOR")] Tensor = 4,
+ [pbr::OriginalName("GRAPH")] Graph = 5,
+ [pbr::OriginalName("FLOATS")] Floats = 6,
+ [pbr::OriginalName("INTS")] Ints = 7,
+ [pbr::OriginalName("STRINGS")] Strings = 8,
+ [pbr::OriginalName("TENSORS")] Tensors = 9,
+ [pbr::OriginalName("GRAPHS")] Graphs = 10,
+ }
- /// Field number for the "name" field.
- public const int NameFieldNumber = 1;
- private string name_ = "";
- ///
- /// This field MUST be present in this version of the IR.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Name {
- get { return name_; }
- set {
- name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ }
+ #endregion
- /// Field number for the "type" field.
- public const int TypeFieldNumber = 2;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto type_;
- ///
- /// This field MUST be present in this version of the IR.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto Type {
- get { return type_; }
- set {
- type_ = value;
- }
}
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 3;
- private string docString_ = "";
///
- /// A human-readable documentation for this value. Markdown is allowed.
+ /// Defines information on value, including the name, the type, and
+ /// the shape of the value.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ public sealed partial class ValueInfoProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ValueInfoProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as ValueInfoProto);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[1]; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(ValueInfoProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if (Name != other.Name) return false;
- if (!object.Equals(Type, other.Type)) return false;
- if (DocString != other.DocString) return false;
- return true;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- if (Name.Length != 0) hash ^= Name.GetHashCode();
- if (type_ != null) hash ^= Type.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- return hash;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ValueInfoProto()
+ {
+ OnConstruction();
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- if (Name.Length != 0) {
- output.WriteRawTag(10);
- output.WriteString(Name);
- }
- if (type_ != null) {
- output.WriteRawTag(18);
- output.WriteMessage(Type);
- }
- if (DocString.Length != 0) {
- output.WriteRawTag(26);
- output.WriteString(DocString);
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ValueInfoProto(ValueInfoProto other) : this()
+ {
+ name_ = other.name_;
+ Type = other.type_ != null ? other.Type.Clone() : null;
+ docString_ = other.docString_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- if (Name.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
- }
- if (type_ != null) {
- size += 1 + pb::CodedOutputStream.ComputeMessageSize(Type);
- }
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- return size;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ValueInfoProto Clone()
+ {
+ return new ValueInfoProto(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(ValueInfoProto other) {
- if (other == null) {
- return;
- }
- if (other.Name.Length != 0) {
- Name = other.Name;
- }
- if (other.type_ != null) {
- if (type_ == null) {
- type_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto();
- }
- Type.MergeFrom(other.Type);
- }
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- }
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 1;
+ private string name_ = "";
+ ///
+ /// This field MUST be present in this version of the IR.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Name
+ {
+ get { return name_; }
+ set
+ {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10: {
- Name = input.ReadString();
- break;
- }
- case 18: {
- if (type_ == null) {
- type_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto();
- }
- input.ReadMessage(type_);
- break;
- }
- case 26: {
- DocString = input.ReadString();
- break;
- }
- }
- }
- }
+ /// Field number for the "type" field.
+ public const int TypeFieldNumber = 2;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto type_;
+ ///
+ /// This field MUST be present in this version of the IR.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto Type
+ {
+ get { return type_; }
+ set
+ {
+ type_ = value;
+ }
+ }
- }
-
- ///
- /// NodeProto stores a node that is similar to the notion of "layer"
- /// or "operator" in many deep learning frameworks. For example, it can be a
- /// node of type "Conv" that takes in an image, a filter tensor and a bias
- /// tensor, and produces the convolved output.
- ///
- public sealed partial class NodeProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NodeProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[2]; }
- }
+ /// Field number for the "doc_string" field.
+ public const int DocStringFieldNumber = 3;
+ private string docString_ = "";
+ ///
+ /// A human-readable documentation for this value. Markdown is allowed.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string DocString
+ {
+ get { return docString_; }
+ set
+ {
+ docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as ValueInfoProto);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public NodeProto() {
- OnConstruction();
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ValueInfoProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (Name != other.Name) return false;
+ if (!object.Equals(Type, other.Type)) return false;
+ if (DocString != other.DocString) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- partial void OnConstruction();
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public NodeProto(NodeProto other) : this() {
- input_ = other.input_.Clone();
- output_ = other.output_.Clone();
- name_ = other.name_;
- opType_ = other.opType_;
- domain_ = other.domain_;
- attribute_ = other.attribute_.Clone();
- docString_ = other.docString_;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ if (Name.Length != 0) hash ^= Name.GetHashCode();
+ if (type_ != null) hash ^= Type.GetHashCode();
+ if (DocString.Length != 0) hash ^= DocString.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public NodeProto Clone() {
- return new NodeProto(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
- /// Field number for the "input" field.
- public const int InputFieldNumber = 1;
- private static readonly pb::FieldCodec _repeated_input_codec
- = pb::FieldCodec.ForString(10);
- private readonly pbc::RepeatedField input_ = new pbc::RepeatedField();
- ///
- /// namespace Value
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Input {
- get { return input_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ if (Name.Length != 0)
+ {
+ output.WriteRawTag(10);
+ output.WriteString(Name);
+ }
+ if (type_ != null)
+ {
+ output.WriteRawTag(18);
+ output.WriteMessage(Type);
+ }
+ if (DocString.Length != 0)
+ {
+ output.WriteRawTag(26);
+ output.WriteString(DocString);
+ }
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
- /// Field number for the "output" field.
- public const int OutputFieldNumber = 2;
- private static readonly pb::FieldCodec _repeated_output_codec
- = pb::FieldCodec.ForString(18);
- private readonly pbc::RepeatedField output_ = new pbc::RepeatedField();
- ///
- /// namespace Value
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Output {
- get { return output_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ if (Name.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (type_ != null)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Type);
+ }
+ if (DocString.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
+ }
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
- /// Field number for the "name" field.
- public const int NameFieldNumber = 3;
- private string name_ = "";
- ///
- /// An optional identifier for this node in a graph.
- /// This field MAY be absent in ths version of the IR.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Name {
- get { return name_; }
- set {
- name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ValueInfoProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ if (other.Name.Length != 0)
+ {
+ Name = other.Name;
+ }
+ if (other.type_ != null)
+ {
+ if (type_ == null)
+ {
+ type_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto();
+ }
+ Type.MergeFrom(other.Type);
+ }
+ if (other.DocString.Length != 0)
+ {
+ DocString = other.DocString;
+ }
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
- /// Field number for the "op_type" field.
- public const int OpTypeFieldNumber = 4;
- private string opType_ = "";
- ///
- /// The symbolic identifier of the Operator to execute.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string OpType {
- get { return opType_; }
- set {
- opType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(pb::CodedInputStream input)
+ {
+ uint tag;
+ while ((tag = input.ReadTag()) != 0)
+ {
+ switch (tag)
+ {
+ default:
+ _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
+ break;
+ case 10:
+ {
+ Name = input.ReadString();
+ break;
+ }
+ case 18:
+ {
+ if (type_ == null)
+ {
+ type_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TypeProto();
+ }
+ input.ReadMessage(type_);
+ break;
+ }
+ case 26:
+ {
+ DocString = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
- /// Field number for the "domain" field.
- public const int DomainFieldNumber = 7;
- private string domain_ = "";
- ///
- /// The domain of the OperatorSet that specifies the operator named by op_type.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Domain {
- get { return domain_; }
- set {
- domain_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
}
- /// Field number for the "attribute" field.
- public const int AttributeFieldNumber = 5;
- private static readonly pb::FieldCodec _repeated_attribute_codec
- = pb::FieldCodec.ForMessage(42, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Parser);
- private readonly pbc::RepeatedField attribute_ = new pbc::RepeatedField();
///
- /// Additional named attributes.
- /// NOTE: Simply using ValueProto.NameValuePairProto is the most general
- /// solution. I kept AttributeProto to minimize churn on CI results.
+ /// Nodes
+ ///
+ /// Computation graphs are made up of a DAG of nodes, which represent what is
+ /// commonly called a "layer" or "pipeline stage" in machine learning frameworks.
+ ///
+ /// For example, it can be a node of type "Conv" that takes in an image, a filter
+ /// tensor and a bias tensor, and produces the convolved output.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Attribute {
- get { return attribute_; }
- }
+ public sealed partial class NodeProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new NodeProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 6;
- private string docString_ = "";
- ///
- /// A human-readable documentation for this node. Markdown is allowed.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[2]; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as NodeProto);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(NodeProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if(!input_.Equals(other.input_)) return false;
- if(!output_.Equals(other.output_)) return false;
- if (Name != other.Name) return false;
- if (OpType != other.OpType) return false;
- if (Domain != other.Domain) return false;
- if(!attribute_.Equals(other.attribute_)) return false;
- if (DocString != other.DocString) return false;
- return true;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public NodeProto()
+ {
+ OnConstruction();
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- hash ^= input_.GetHashCode();
- hash ^= output_.GetHashCode();
- if (Name.Length != 0) hash ^= Name.GetHashCode();
- if (OpType.Length != 0) hash ^= OpType.GetHashCode();
- if (Domain.Length != 0) hash ^= Domain.GetHashCode();
- hash ^= attribute_.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- return hash;
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public NodeProto(NodeProto other) : this()
+ {
+ input_ = other.input_.Clone();
+ output_ = other.output_.Clone();
+ name_ = other.name_;
+ opType_ = other.opType_;
+ domain_ = other.domain_;
+ attribute_ = other.attribute_.Clone();
+ docString_ = other.docString_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- input_.WriteTo(output, _repeated_input_codec);
- output_.WriteTo(output, _repeated_output_codec);
- if (Name.Length != 0) {
- output.WriteRawTag(26);
- output.WriteString(Name);
- }
- if (OpType.Length != 0) {
- output.WriteRawTag(34);
- output.WriteString(OpType);
- }
- attribute_.WriteTo(output, _repeated_attribute_codec);
- if (DocString.Length != 0) {
- output.WriteRawTag(50);
- output.WriteString(DocString);
- }
- if (Domain.Length != 0) {
- output.WriteRawTag(58);
- output.WriteString(Domain);
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public NodeProto Clone()
+ {
+ return new NodeProto(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- size += input_.CalculateSize(_repeated_input_codec);
- size += output_.CalculateSize(_repeated_output_codec);
- if (Name.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
- }
- if (OpType.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(OpType);
- }
- if (Domain.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Domain);
- }
- size += attribute_.CalculateSize(_repeated_attribute_codec);
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- return size;
- }
+ /// Field number for the "input" field.
+ public const int InputFieldNumber = 1;
+ private static readonly pb::FieldCodec _repeated_input_codec
+ = pb::FieldCodec.ForString(10);
+ private readonly pbc::RepeatedField input_ = new pbc::RepeatedField();
+ ///
+ /// namespace Value
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Input
+ {
+ get { return input_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(NodeProto other) {
- if (other == null) {
- return;
- }
- input_.Add(other.input_);
- output_.Add(other.output_);
- if (other.Name.Length != 0) {
- Name = other.Name;
- }
- if (other.OpType.Length != 0) {
- OpType = other.OpType;
- }
- if (other.Domain.Length != 0) {
- Domain = other.Domain;
- }
- attribute_.Add(other.attribute_);
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- }
+ /// Field number for the "output" field.
+ public const int OutputFieldNumber = 2;
+ private static readonly pb::FieldCodec _repeated_output_codec
+ = pb::FieldCodec.ForString(18);
+ private readonly pbc::RepeatedField output_ = new pbc::RepeatedField();
+ ///
+ /// namespace Value
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Output
+ {
+ get { return output_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10: {
- input_.AddEntriesFrom(input, _repeated_input_codec);
- break;
- }
- case 18: {
- output_.AddEntriesFrom(input, _repeated_output_codec);
- break;
- }
- case 26: {
- Name = input.ReadString();
- break;
- }
- case 34: {
- OpType = input.ReadString();
- break;
- }
- case 42: {
- attribute_.AddEntriesFrom(input, _repeated_attribute_codec);
- break;
- }
- case 50: {
- DocString = input.ReadString();
- break;
- }
- case 58: {
- Domain = input.ReadString();
- break;
- }
- }
- }
- }
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 3;
+ private string name_ = "";
+ ///
+ /// An optional identifier for this node in a graph.
+ /// This field MAY be absent in ths version of the IR.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Name
+ {
+ get { return name_; }
+ set
+ {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- }
-
- ///
- /// ModelProto is a top-level file/container format for bundling a ML model.
- /// The semantics of the model are described by the GraphProto that represents
- /// a parameterized computation graph against a set of named operators that are
- /// defined independently from the graph.
- ///
- public sealed partial class ModelProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ModelProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[3]; }
- }
+ /// Field number for the "op_type" field.
+ public const int OpTypeFieldNumber = 4;
+ private string opType_ = "";
+ ///
+ /// The symbolic identifier of the Operator to execute.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string OpType
+ {
+ get { return opType_; }
+ set
+ {
+ opType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ /// Field number for the "domain" field.
+ public const int DomainFieldNumber = 7;
+ private string domain_ = "";
+ ///
+ /// The domain of the OperatorSet that specifies the operator named by op_type.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Domain
+ {
+ get { return domain_; }
+ set
+ {
+ domain_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ModelProto() {
- OnConstruction();
- }
+ /// Field number for the "attribute" field.
+ public const int AttributeFieldNumber = 5;
+ private static readonly pb::FieldCodec _repeated_attribute_codec
+ = pb::FieldCodec.ForMessage(42, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.AttributeProto.Parser);
+ private readonly pbc::RepeatedField attribute_ = new pbc::RepeatedField();
+ ///
+ /// Additional named attributes.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Attribute
+ {
+ get { return attribute_; }
+ }
- partial void OnConstruction();
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ModelProto(ModelProto other) : this() {
- irVersion_ = other.irVersion_;
- opsetImport_ = other.opsetImport_.Clone();
- producerName_ = other.producerName_;
- producerVersion_ = other.producerVersion_;
- domain_ = other.domain_;
- modelVersion_ = other.modelVersion_;
- docString_ = other.docString_;
- Graph = other.graph_ != null ? other.Graph.Clone() : null;
- metadataProps_ = other.metadataProps_.Clone();
- }
+ /// Field number for the "doc_string" field.
+ public const int DocStringFieldNumber = 6;
+ private string docString_ = "";
+ ///
+ /// A human-readable documentation for this node. Markdown is allowed.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string DocString
+ {
+ get { return docString_; }
+ set
+ {
+ docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public ModelProto Clone() {
- return new ModelProto(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as NodeProto);
+ }
- /// Field number for the "ir_version" field.
- public const int IrVersionFieldNumber = 1;
- private long irVersion_;
- ///
- /// The version of the IR this model targets. See Version enum above.
- /// This field MUST be present.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public long IrVersion {
- get { return irVersion_; }
- set {
- irVersion_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(NodeProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (!input_.Equals(other.input_)) return false;
+ if (!output_.Equals(other.output_)) return false;
+ if (Name != other.Name) return false;
+ if (OpType != other.OpType) return false;
+ if (Domain != other.Domain) return false;
+ if (!attribute_.Equals(other.attribute_)) return false;
+ if (DocString != other.DocString) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- /// Field number for the "opset_import" field.
- public const int OpsetImportFieldNumber = 8;
- private static readonly pb::FieldCodec _repeated_opsetImport_codec
- = pb::FieldCodec.ForMessage(66, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OperatorSetIdProto.Parser);
- private readonly pbc::RepeatedField opsetImport_ = new pbc::RepeatedField();
- ///
- /// The OperatorSets this model relies on.
- /// All ModelProtos MUST have at least one entry that
- /// specifies which version of the ONNX OperatorSet is
- /// being imported.
- ///
- /// All nodes in the ModelProto's graph will bind against the operator
- /// with the same-domain/same-op_type operator with the HIGHEST version
- /// in the referenced operator sets.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField OpsetImport {
- get { return opsetImport_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ hash ^= input_.GetHashCode();
+ hash ^= output_.GetHashCode();
+ if (Name.Length != 0) hash ^= Name.GetHashCode();
+ if (OpType.Length != 0) hash ^= OpType.GetHashCode();
+ if (Domain.Length != 0) hash ^= Domain.GetHashCode();
+ hash ^= attribute_.GetHashCode();
+ if (DocString.Length != 0) hash ^= DocString.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- /// Field number for the "producer_name" field.
- public const int ProducerNameFieldNumber = 2;
- private string producerName_ = "";
- ///
- /// The name of the framework or tool used to generate this model.
- /// This field SHOULD be present to indicate which implementation/tool/framework
- /// emitted the model.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string ProducerName {
- get { return producerName_; }
- set {
- producerName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ input_.WriteTo(output, _repeated_input_codec);
+ output_.WriteTo(output, _repeated_output_codec);
+ if (Name.Length != 0)
+ {
+ output.WriteRawTag(26);
+ output.WriteString(Name);
+ }
+ if (OpType.Length != 0)
+ {
+ output.WriteRawTag(34);
+ output.WriteString(OpType);
+ }
+ attribute_.WriteTo(output, _repeated_attribute_codec);
+ if (DocString.Length != 0)
+ {
+ output.WriteRawTag(50);
+ output.WriteString(DocString);
+ }
+ if (Domain.Length != 0)
+ {
+ output.WriteRawTag(58);
+ output.WriteString(Domain);
+ }
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ size += input_.CalculateSize(_repeated_input_codec);
+ size += output_.CalculateSize(_repeated_output_codec);
+ if (Name.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ if (OpType.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(OpType);
+ }
+ if (Domain.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Domain);
+ }
+ size += attribute_.CalculateSize(_repeated_attribute_codec);
+ if (DocString.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
+ }
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(NodeProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ input_.Add(other.input_);
+ output_.Add(other.output_);
+ if (other.Name.Length != 0)
+ {
+ Name = other.Name;
+ }
+ if (other.OpType.Length != 0)
+ {
+ OpType = other.OpType;
+ }
+ if (other.Domain.Length != 0)
+ {
+ Domain = other.Domain;
+ }
+ attribute_.Add(other.attribute_);
+ if (other.DocString.Length != 0)
+ {
+ DocString = other.DocString;
+ }
+ _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:
+ {
+ input_.AddEntriesFrom(input, _repeated_input_codec);
+ break;
+ }
+ case 18:
+ {
+ output_.AddEntriesFrom(input, _repeated_output_codec);
+ break;
+ }
+ case 26:
+ {
+ Name = input.ReadString();
+ break;
+ }
+ case 34:
+ {
+ OpType = input.ReadString();
+ break;
+ }
+ case 42:
+ {
+ attribute_.AddEntriesFrom(input, _repeated_attribute_codec);
+ break;
+ }
+ case 50:
+ {
+ DocString = input.ReadString();
+ break;
+ }
+ case 58:
+ {
+ Domain = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
- /// Field number for the "producer_version" field.
- public const int ProducerVersionFieldNumber = 3;
- private string producerVersion_ = "";
- ///
- /// The version of the framework or tool used to generate this model.
- /// This field SHOULD be present to indicate which implementation/tool/framework
- /// emitted the model.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string ProducerVersion {
- get { return producerVersion_; }
- set {
- producerVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
}
- /// Field number for the "domain" field.
- public const int DomainFieldNumber = 4;
- private string domain_ = "";
///
- /// Domain name of the model.
- /// We use reverse domain names as name space indicators. For example:
- /// `com.facebook.fair` or `com.microsoft.cognitiveservices`
+ /// Models
+ ///
+ /// ModelProto is a top-level file/container format for bundling a ML model and
+ /// associating its computation graph with metadata.
///
- /// Together with `model_version` and GraphProto.name, this forms the unique identity of
- /// the graph.
+ /// The semantics of the model are described by the associated GraphProto.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Domain {
- get { return domain_; }
- set {
- domain_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ public sealed partial class ModelProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new ModelProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- /// Field number for the "model_version" field.
- public const int ModelVersionFieldNumber = 5;
- private long modelVersion_;
- ///
- /// The version of the graph encoded. See Version enum below.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public long ModelVersion {
- get { return modelVersion_; }
- set {
- modelVersion_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[3]; }
+ }
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 6;
- private string docString_ = "";
- ///
- /// A human-readable documentation for this model. Markdown is allowed.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- /// Field number for the "graph" field.
- public const int GraphFieldNumber = 7;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto graph_;
- ///
- /// The parameterized graph that is evaluated to execute the model.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto Graph {
- get { return graph_; }
- set {
- graph_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ModelProto()
+ {
+ OnConstruction();
+ }
- /// Field number for the "metadata_props" field.
- public const int MetadataPropsFieldNumber = 14;
- private static readonly pb::FieldCodec _repeated_metadataProps_codec
- = pb::FieldCodec.ForMessage(114, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.StringStringEntryProto.Parser);
- private readonly pbc::RepeatedField metadataProps_ = new pbc::RepeatedField();
- ///
- /// Named metadata values; keys should be distinct.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField MetadataProps {
- get { return metadataProps_; }
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as ModelProto);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ModelProto(ModelProto other) : this()
+ {
+ irVersion_ = other.irVersion_;
+ opsetImport_ = other.opsetImport_.Clone();
+ producerName_ = other.producerName_;
+ producerVersion_ = other.producerVersion_;
+ domain_ = other.domain_;
+ modelVersion_ = other.modelVersion_;
+ docString_ = other.docString_;
+ Graph = other.graph_ != null ? other.Graph.Clone() : null;
+ metadataProps_ = other.metadataProps_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(ModelProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if (IrVersion != other.IrVersion) return false;
- if(!opsetImport_.Equals(other.opsetImport_)) return false;
- if (ProducerName != other.ProducerName) return false;
- if (ProducerVersion != other.ProducerVersion) return false;
- if (Domain != other.Domain) return false;
- if (ModelVersion != other.ModelVersion) return false;
- if (DocString != other.DocString) return false;
- if (!object.Equals(Graph, other.Graph)) return false;
- if(!metadataProps_.Equals(other.metadataProps_)) return false;
- return true;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public ModelProto Clone()
+ {
+ return new ModelProto(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- if (IrVersion != 0L) hash ^= IrVersion.GetHashCode();
- hash ^= opsetImport_.GetHashCode();
- if (ProducerName.Length != 0) hash ^= ProducerName.GetHashCode();
- if (ProducerVersion.Length != 0) hash ^= ProducerVersion.GetHashCode();
- if (Domain.Length != 0) hash ^= Domain.GetHashCode();
- if (ModelVersion != 0L) hash ^= ModelVersion.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- if (graph_ != null) hash ^= Graph.GetHashCode();
- hash ^= metadataProps_.GetHashCode();
- return hash;
- }
+ /// Field number for the "ir_version" field.
+ public const int IrVersionFieldNumber = 1;
+ private long irVersion_;
+ ///
+ /// The version of the IR this model targets. See Version enum above.
+ /// This field MUST be present.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long IrVersion
+ {
+ get { return irVersion_; }
+ set
+ {
+ irVersion_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ /// Field number for the "opset_import" field.
+ public const int OpsetImportFieldNumber = 8;
+ private static readonly pb::FieldCodec _repeated_opsetImport_codec
+ = pb::FieldCodec.ForMessage(66, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OperatorSetIdProto.Parser);
+ private readonly pbc::RepeatedField opsetImport_ = new pbc::RepeatedField();
+ ///
+ /// The OperatorSets this model relies on.
+ /// All ModelProtos MUST have at least one entry that
+ /// specifies which version of the ONNX OperatorSet is
+ /// being imported.
+ ///
+ /// All nodes in the ModelProto's graph will bind against the operator
+ /// with the same-domain/same-op_type operator with the HIGHEST version
+ /// in the referenced operator sets.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField OpsetImport
+ {
+ get { return opsetImport_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- if (IrVersion != 0L) {
- output.WriteRawTag(8);
- output.WriteInt64(IrVersion);
- }
- if (ProducerName.Length != 0) {
- output.WriteRawTag(18);
- output.WriteString(ProducerName);
- }
- if (ProducerVersion.Length != 0) {
- output.WriteRawTag(26);
- output.WriteString(ProducerVersion);
- }
- if (Domain.Length != 0) {
- output.WriteRawTag(34);
- output.WriteString(Domain);
- }
- if (ModelVersion != 0L) {
- output.WriteRawTag(40);
- output.WriteInt64(ModelVersion);
- }
- if (DocString.Length != 0) {
- output.WriteRawTag(50);
- output.WriteString(DocString);
- }
- if (graph_ != null) {
- output.WriteRawTag(58);
- output.WriteMessage(Graph);
- }
- opsetImport_.WriteTo(output, _repeated_opsetImport_codec);
- metadataProps_.WriteTo(output, _repeated_metadataProps_codec);
- }
+ /// Field number for the "producer_name" field.
+ public const int ProducerNameFieldNumber = 2;
+ private string producerName_ = "";
+ ///
+ /// The name of the framework or tool used to generate this model.
+ /// This field SHOULD be present to indicate which implementation/tool/framework
+ /// emitted the model.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ProducerName
+ {
+ get { return producerName_; }
+ set
+ {
+ producerName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- if (IrVersion != 0L) {
- size += 1 + pb::CodedOutputStream.ComputeInt64Size(IrVersion);
- }
- size += opsetImport_.CalculateSize(_repeated_opsetImport_codec);
- if (ProducerName.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(ProducerName);
- }
- if (ProducerVersion.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(ProducerVersion);
- }
- if (Domain.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Domain);
- }
- if (ModelVersion != 0L) {
- size += 1 + pb::CodedOutputStream.ComputeInt64Size(ModelVersion);
- }
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- if (graph_ != null) {
- size += 1 + pb::CodedOutputStream.ComputeMessageSize(Graph);
- }
- size += metadataProps_.CalculateSize(_repeated_metadataProps_codec);
- return size;
- }
+ /// Field number for the "producer_version" field.
+ public const int ProducerVersionFieldNumber = 3;
+ private string producerVersion_ = "";
+ ///
+ /// The version of the framework or tool used to generate this model.
+ /// This field SHOULD be present to indicate which implementation/tool/framework
+ /// emitted the model.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string ProducerVersion
+ {
+ get { return producerVersion_; }
+ set
+ {
+ producerVersion_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(ModelProto other) {
- if (other == null) {
- return;
- }
- if (other.IrVersion != 0L) {
- IrVersion = other.IrVersion;
- }
- opsetImport_.Add(other.opsetImport_);
- if (other.ProducerName.Length != 0) {
- ProducerName = other.ProducerName;
- }
- if (other.ProducerVersion.Length != 0) {
- ProducerVersion = other.ProducerVersion;
- }
- if (other.Domain.Length != 0) {
- Domain = other.Domain;
- }
- if (other.ModelVersion != 0L) {
- ModelVersion = other.ModelVersion;
- }
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- if (other.graph_ != null) {
- if (graph_ == null) {
- graph_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
- }
- Graph.MergeFrom(other.Graph);
- }
- metadataProps_.Add(other.metadataProps_);
- }
+ /// Field number for the "domain" field.
+ public const int DomainFieldNumber = 4;
+ private string domain_ = "";
+ ///
+ /// Domain name of the model.
+ /// We use reverse domain names as name space indicators. For example:
+ /// `com.facebook.fair` or `com.microsoft.cognitiveservices`
+ ///
+ /// Together with `model_version` and GraphProto.name, this forms the unique identity of
+ /// the graph.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Domain
+ {
+ get { return domain_; }
+ set
+ {
+ domain_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 8: {
- IrVersion = input.ReadInt64();
- break;
- }
- case 18: {
- ProducerName = input.ReadString();
- break;
- }
- case 26: {
- ProducerVersion = input.ReadString();
- break;
- }
- case 34: {
- Domain = input.ReadString();
- break;
- }
- case 40: {
- ModelVersion = input.ReadInt64();
- break;
- }
- case 50: {
- DocString = input.ReadString();
- break;
- }
- case 58: {
- if (graph_ == null) {
- graph_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
- }
- input.ReadMessage(graph_);
- break;
- }
- case 66: {
- opsetImport_.AddEntriesFrom(input, _repeated_opsetImport_codec);
- break;
- }
- case 114: {
- metadataProps_.AddEntriesFrom(input, _repeated_metadataProps_codec);
- break;
- }
- }
- }
- }
+ /// Field number for the "model_version" field.
+ public const int ModelVersionFieldNumber = 5;
+ private long modelVersion_;
+ ///
+ /// The version of the graph encoded. See Version enum below.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public long ModelVersion
+ {
+ get { return modelVersion_; }
+ set
+ {
+ modelVersion_ = value;
+ }
+ }
- }
+ /// Field number for the "doc_string" field.
+ public const int DocStringFieldNumber = 6;
+ private string docString_ = "";
+ ///
+ /// A human-readable documentation for this model. Markdown is allowed.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string DocString
+ {
+ get { return docString_; }
+ set
+ {
+ docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- ///
- /// StringStringEntryProto follows the pattern for cross-proto-version maps.
- /// See https://developers.google.com/protocol-buffers/docs/proto3#maps
- ///
- public sealed partial class StringStringEntryProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StringStringEntryProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
+ /// Field number for the "graph" field.
+ public const int GraphFieldNumber = 7;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto graph_;
+ ///
+ /// The parameterized graph that is evaluated to execute the model.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto Graph
+ {
+ get { return graph_; }
+ set
+ {
+ graph_ = value;
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[4]; }
- }
+ /// Field number for the "metadata_props" field.
+ public const int MetadataPropsFieldNumber = 14;
+ private static readonly pb::FieldCodec _repeated_metadataProps_codec
+ = pb::FieldCodec.ForMessage(114, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.StringStringEntryProto.Parser);
+ private readonly pbc::RepeatedField metadataProps_ = new pbc::RepeatedField();
+ ///
+ /// Named metadata values; keys should be distinct.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField MetadataProps
+ {
+ get { return metadataProps_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as ModelProto);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public StringStringEntryProto() {
- OnConstruction();
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(ModelProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (IrVersion != other.IrVersion) return false;
+ if (!opsetImport_.Equals(other.opsetImport_)) return false;
+ if (ProducerName != other.ProducerName) return false;
+ if (ProducerVersion != other.ProducerVersion) return false;
+ if (Domain != other.Domain) return false;
+ if (ModelVersion != other.ModelVersion) return false;
+ if (DocString != other.DocString) return false;
+ if (!object.Equals(Graph, other.Graph)) return false;
+ if (!metadataProps_.Equals(other.metadataProps_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- partial void OnConstruction();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ if (IrVersion != 0L) hash ^= IrVersion.GetHashCode();
+ hash ^= opsetImport_.GetHashCode();
+ if (ProducerName.Length != 0) hash ^= ProducerName.GetHashCode();
+ if (ProducerVersion.Length != 0) hash ^= ProducerVersion.GetHashCode();
+ if (Domain.Length != 0) hash ^= Domain.GetHashCode();
+ if (ModelVersion != 0L) hash ^= ModelVersion.GetHashCode();
+ if (DocString.Length != 0) hash ^= DocString.GetHashCode();
+ if (graph_ != null) hash ^= Graph.GetHashCode();
+ hash ^= metadataProps_.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public StringStringEntryProto(StringStringEntryProto other) : this() {
- key_ = other.key_;
- value_ = other.value_;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public StringStringEntryProto Clone() {
- return new StringStringEntryProto(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ if (IrVersion != 0L)
+ {
+ output.WriteRawTag(8);
+ output.WriteInt64(IrVersion);
+ }
+ if (ProducerName.Length != 0)
+ {
+ output.WriteRawTag(18);
+ output.WriteString(ProducerName);
+ }
+ if (ProducerVersion.Length != 0)
+ {
+ output.WriteRawTag(26);
+ output.WriteString(ProducerVersion);
+ }
+ if (Domain.Length != 0)
+ {
+ output.WriteRawTag(34);
+ output.WriteString(Domain);
+ }
+ if (ModelVersion != 0L)
+ {
+ output.WriteRawTag(40);
+ output.WriteInt64(ModelVersion);
+ }
+ if (DocString.Length != 0)
+ {
+ output.WriteRawTag(50);
+ output.WriteString(DocString);
+ }
+ if (graph_ != null)
+ {
+ output.WriteRawTag(58);
+ output.WriteMessage(Graph);
+ }
+ opsetImport_.WriteTo(output, _repeated_opsetImport_codec);
+ metadataProps_.WriteTo(output, _repeated_metadataProps_codec);
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
- /// Field number for the "key" field.
- public const int KeyFieldNumber = 1;
- private string key_ = "";
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Key {
- get { return key_; }
- set {
- key_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ if (IrVersion != 0L)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(IrVersion);
+ }
+ size += opsetImport_.CalculateSize(_repeated_opsetImport_codec);
+ if (ProducerName.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ProducerName);
+ }
+ if (ProducerVersion.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(ProducerVersion);
+ }
+ if (Domain.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Domain);
+ }
+ if (ModelVersion != 0L)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeInt64Size(ModelVersion);
+ }
+ if (DocString.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
+ }
+ if (graph_ != null)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeMessageSize(Graph);
+ }
+ size += metadataProps_.CalculateSize(_repeated_metadataProps_codec);
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
- /// Field number for the "value" field.
- public const int ValueFieldNumber = 2;
- private string value_ = "";
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Value {
- get { return value_; }
- set {
- value_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(ModelProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ if (other.IrVersion != 0L)
+ {
+ IrVersion = other.IrVersion;
+ }
+ opsetImport_.Add(other.opsetImport_);
+ if (other.ProducerName.Length != 0)
+ {
+ ProducerName = other.ProducerName;
+ }
+ if (other.ProducerVersion.Length != 0)
+ {
+ ProducerVersion = other.ProducerVersion;
+ }
+ if (other.Domain.Length != 0)
+ {
+ Domain = other.Domain;
+ }
+ if (other.ModelVersion != 0L)
+ {
+ ModelVersion = other.ModelVersion;
+ }
+ if (other.DocString.Length != 0)
+ {
+ DocString = other.DocString;
+ }
+ if (other.graph_ != null)
+ {
+ if (graph_ == null)
+ {
+ graph_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
+ }
+ Graph.MergeFrom(other.Graph);
+ }
+ metadataProps_.Add(other.metadataProps_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as StringStringEntryProto);
- }
+ [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:
+ {
+ IrVersion = input.ReadInt64();
+ break;
+ }
+ case 18:
+ {
+ ProducerName = input.ReadString();
+ break;
+ }
+ case 26:
+ {
+ ProducerVersion = input.ReadString();
+ break;
+ }
+ case 34:
+ {
+ Domain = input.ReadString();
+ break;
+ }
+ case 40:
+ {
+ ModelVersion = input.ReadInt64();
+ break;
+ }
+ case 50:
+ {
+ DocString = input.ReadString();
+ break;
+ }
+ case 58:
+ {
+ if (graph_ == null)
+ {
+ graph_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.GraphProto();
+ }
+ input.ReadMessage(graph_);
+ break;
+ }
+ case 66:
+ {
+ opsetImport_.AddEntriesFrom(input, _repeated_opsetImport_codec);
+ break;
+ }
+ case 114:
+ {
+ metadataProps_.AddEntriesFrom(input, _repeated_metadataProps_codec);
+ break;
+ }
+ }
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(StringStringEntryProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if (Key != other.Key) return false;
- if (Value != other.Value) return false;
- return true;
}
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- if (Key.Length != 0) hash ^= Key.GetHashCode();
- if (Value.Length != 0) hash ^= Value.GetHashCode();
- return hash;
- }
+ ///
+ /// StringStringEntryProto follows the pattern for cross-proto-version maps.
+ /// See https://developers.google.com/protocol-buffers/docs/proto3#maps
+ ///
+ public sealed partial class StringStringEntryProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new StringStringEntryProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[4]; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- if (Key.Length != 0) {
- output.WriteRawTag(10);
- output.WriteString(Key);
- }
- if (Value.Length != 0) {
- output.WriteRawTag(18);
- output.WriteString(Value);
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- if (Key.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
- }
- if (Value.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Value);
- }
- return size;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StringStringEntryProto()
+ {
+ OnConstruction();
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(StringStringEntryProto other) {
- if (other == null) {
- return;
- }
- if (other.Key.Length != 0) {
- Key = other.Key;
- }
- if (other.Value.Length != 0) {
- Value = other.Value;
- }
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10: {
- Key = input.ReadString();
- break;
- }
- case 18: {
- Value = input.ReadString();
- break;
- }
- }
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StringStringEntryProto(StringStringEntryProto other) : this()
+ {
+ key_ = other.key_;
+ value_ = other.value_;
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- }
-
- ///
- /// GraphProto defines a parameterized series of nodes to form a directed acyclic graph.
- /// This is the equivalent of the "network" and "graph" in many deep learning
- /// frameworks.
- ///
- public sealed partial class GraphProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GraphProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[5]; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public StringStringEntryProto Clone()
+ {
+ return new StringStringEntryProto(this);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ /// Field number for the "key" field.
+ public const int KeyFieldNumber = 1;
+ private string key_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Key
+ {
+ get { return key_; }
+ set
+ {
+ key_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public GraphProto() {
- OnConstruction();
- }
+ /// Field number for the "value" field.
+ public const int ValueFieldNumber = 2;
+ private string value_ = "";
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Value
+ {
+ get { return value_; }
+ set
+ {
+ value_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- partial void OnConstruction();
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public GraphProto(GraphProto other) : this() {
- node_ = other.node_.Clone();
- name_ = other.name_;
- initializer_ = other.initializer_.Clone();
- docString_ = other.docString_;
- input_ = other.input_.Clone();
- output_ = other.output_.Clone();
- valueInfo_ = other.valueInfo_.Clone();
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as StringStringEntryProto);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public GraphProto Clone() {
- return new GraphProto(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(StringStringEntryProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (Key != other.Key) return false;
+ if (Value != other.Value) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- /// Field number for the "node" field.
- public const int NodeFieldNumber = 1;
- private static readonly pb::FieldCodec _repeated_node_codec
- = pb::FieldCodec.ForMessage(10, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.NodeProto.Parser);
- private readonly pbc::RepeatedField node_ = new pbc::RepeatedField();
- ///
- /// The nodes in the graph.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Node {
- get { return node_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ if (Key.Length != 0) hash ^= Key.GetHashCode();
+ if (Value.Length != 0) hash ^= Value.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- /// Field number for the "name" field.
- public const int NameFieldNumber = 2;
- private string name_ = "";
- ///
- /// The name of the graph.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Name {
- get { return name_; }
- set {
- name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
- /// Field number for the "initializer" field.
- public const int InitializerFieldNumber = 5;
- private static readonly pb::FieldCodec _repeated_initializer_codec
- = pb::FieldCodec.ForMessage(42, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Parser);
- private readonly pbc::RepeatedField initializer_ = new pbc::RepeatedField();
- ///
- /// A list of named tensor values (constants), used to specify default
- /// values for some of the inputs of the graph.
- /// Each TensorProto entry must have a distinct name (within the list) that
- /// also appears in the input list.
- /// In an evaluation, the default value specified here is used if and only if
- /// user specifies no value for the corresponding input parameter.
- /// May be used to pass serialized parameters for networks.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Initializer {
- get { return initializer_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ if (Key.Length != 0)
+ {
+ output.WriteRawTag(10);
+ output.WriteString(Key);
+ }
+ if (Value.Length != 0)
+ {
+ output.WriteRawTag(18);
+ output.WriteString(Value);
+ }
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 10;
- private string docString_ = "";
- ///
- /// A human-readable documentation for this graph. Markdown is allowed.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ if (Key.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Key);
+ }
+ if (Value.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Value);
+ }
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
- /// Field number for the "input" field.
- public const int InputFieldNumber = 11;
- private static readonly pb::FieldCodec _repeated_input_codec
- = pb::FieldCodec.ForMessage(90, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
- private readonly pbc::RepeatedField input_ = new pbc::RepeatedField();
- ///
- /// The inputs and outputs of the graph.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Input {
- get { return input_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(StringStringEntryProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ if (other.Key.Length != 0)
+ {
+ Key = other.Key;
+ }
+ if (other.Value.Length != 0)
+ {
+ Value = other.Value;
+ }
+ _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:
+ {
+ Key = input.ReadString();
+ break;
+ }
+ case 18:
+ {
+ Value = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
- /// Field number for the "output" field.
- public const int OutputFieldNumber = 12;
- private static readonly pb::FieldCodec _repeated_output_codec
- = pb::FieldCodec.ForMessage(98, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
- private readonly pbc::RepeatedField output_ = new pbc::RepeatedField();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Output {
- get { return output_; }
}
- /// Field number for the "value_info" field.
- public const int ValueInfoFieldNumber = 13;
- private static readonly pb::FieldCodec _repeated_valueInfo_codec
- = pb::FieldCodec.ForMessage(106, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
- private readonly pbc::RepeatedField valueInfo_ = new pbc::RepeatedField();
///
- /// Information for the values in the graph. The ValueInfoProto.name's
- /// must be distinct. It is optional for a value to appear in value_info list.
+ /// Graphs
+ ///
+ /// A graph defines the computational logic of a model and is comprised of a parameterized
+ /// list of nodes that form a directed acyclic graph based on their inputs and outputs.
+ /// This is the equivalent of the "network" or "graph" in many deep learning
+ /// frameworks.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField ValueInfo {
- get { return valueInfo_; }
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as GraphProto);
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(GraphProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if(!node_.Equals(other.node_)) return false;
- if (Name != other.Name) return false;
- if(!initializer_.Equals(other.initializer_)) return false;
- if (DocString != other.DocString) return false;
- if(!input_.Equals(other.input_)) return false;
- if(!output_.Equals(other.output_)) return false;
- if(!valueInfo_.Equals(other.valueInfo_)) return false;
- return true;
- }
+ public sealed partial class GraphProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new GraphProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- hash ^= node_.GetHashCode();
- if (Name.Length != 0) hash ^= Name.GetHashCode();
- hash ^= initializer_.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- hash ^= input_.GetHashCode();
- hash ^= output_.GetHashCode();
- hash ^= valueInfo_.GetHashCode();
- return hash;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[5]; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- node_.WriteTo(output, _repeated_node_codec);
- if (Name.Length != 0) {
- output.WriteRawTag(18);
- output.WriteString(Name);
- }
- initializer_.WriteTo(output, _repeated_initializer_codec);
- if (DocString.Length != 0) {
- output.WriteRawTag(82);
- output.WriteString(DocString);
- }
- input_.WriteTo(output, _repeated_input_codec);
- output_.WriteTo(output, _repeated_output_codec);
- valueInfo_.WriteTo(output, _repeated_valueInfo_codec);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GraphProto()
+ {
+ OnConstruction();
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- size += node_.CalculateSize(_repeated_node_codec);
- if (Name.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
- }
- size += initializer_.CalculateSize(_repeated_initializer_codec);
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- size += input_.CalculateSize(_repeated_input_codec);
- size += output_.CalculateSize(_repeated_output_codec);
- size += valueInfo_.CalculateSize(_repeated_valueInfo_codec);
- return size;
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(GraphProto other) {
- if (other == null) {
- return;
- }
- node_.Add(other.node_);
- if (other.Name.Length != 0) {
- Name = other.Name;
- }
- initializer_.Add(other.initializer_);
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- input_.Add(other.input_);
- output_.Add(other.output_);
- valueInfo_.Add(other.valueInfo_);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GraphProto(GraphProto other) : this()
+ {
+ node_ = other.node_.Clone();
+ name_ = other.name_;
+ initializer_ = other.initializer_.Clone();
+ docString_ = other.docString_;
+ input_ = other.input_.Clone();
+ output_ = other.output_.Clone();
+ valueInfo_ = other.valueInfo_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10: {
- node_.AddEntriesFrom(input, _repeated_node_codec);
- break;
- }
- case 18: {
- Name = input.ReadString();
- break;
- }
- case 42: {
- initializer_.AddEntriesFrom(input, _repeated_initializer_codec);
- break;
- }
- case 82: {
- DocString = input.ReadString();
- break;
- }
- case 90: {
- input_.AddEntriesFrom(input, _repeated_input_codec);
- break;
- }
- case 98: {
- output_.AddEntriesFrom(input, _repeated_output_codec);
- break;
- }
- case 106: {
- valueInfo_.AddEntriesFrom(input, _repeated_valueInfo_codec);
- break;
- }
- }
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public GraphProto Clone()
+ {
+ return new GraphProto(this);
+ }
- }
+ /// Field number for the "node" field.
+ public const int NodeFieldNumber = 1;
+ private static readonly pb::FieldCodec _repeated_node_codec
+ = pb::FieldCodec.ForMessage(10, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.NodeProto.Parser);
+ private readonly pbc::RepeatedField node_ = new pbc::RepeatedField();
+ ///
+ /// The nodes in the graph, sorted topologically.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Node
+ {
+ get { return node_; }
+ }
- ///
- /// A message defined to store a tensor in its serialized format.
- ///
- public sealed partial class TensorProto : pb::IMessage {
- private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TensorProto());
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pb::MessageParser Parser { get { return _parser; } }
+ /// Field number for the "name" field.
+ public const int NameFieldNumber = 2;
+ private string name_ = "";
+ ///
+ /// The name of the graph.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string Name
+ {
+ get { return name_; }
+ set
+ {
+ name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static pbr::MessageDescriptor Descriptor {
- get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[6]; }
- }
+ /// Field number for the "initializer" field.
+ public const int InitializerFieldNumber = 5;
+ private static readonly pb::FieldCodec _repeated_initializer_codec
+ = pb::FieldCodec.ForMessage(42, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Parser);
+ private readonly pbc::RepeatedField initializer_ = new pbc::RepeatedField();
+ ///
+ /// A list of named tensor values, used to specify constant inputs of the graph.
+ /// Each TensorProto entry must have a distinct name (within the list) that
+ /// also appears in the input list.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Initializer
+ {
+ get { return initializer_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- pbr::MessageDescriptor pb::IMessage.Descriptor {
- get { return Descriptor; }
- }
+ /// Field number for the "doc_string" field.
+ public const int DocStringFieldNumber = 10;
+ private string docString_ = "";
+ ///
+ /// A human-readable documentation for this graph. Markdown is allowed.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public string DocString
+ {
+ get { return docString_; }
+ set
+ {
+ docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
+ }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public TensorProto() {
- OnConstruction();
- }
+ /// Field number for the "input" field.
+ public const int InputFieldNumber = 11;
+ private static readonly pb::FieldCodec _repeated_input_codec
+ = pb::FieldCodec.ForMessage(90, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
+ private readonly pbc::RepeatedField input_ = new pbc::RepeatedField();
+ ///
+ /// The inputs and outputs of the graph.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Input
+ {
+ get { return input_; }
+ }
- partial void OnConstruction();
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public TensorProto(TensorProto other) : this() {
- dims_ = other.dims_.Clone();
- dataType_ = other.dataType_;
- Segment = other.segment_ != null ? other.Segment.Clone() : null;
- floatData_ = other.floatData_.Clone();
- int32Data_ = other.int32Data_.Clone();
- stringData_ = other.stringData_.Clone();
- int64Data_ = other.int64Data_.Clone();
- name_ = other.name_;
- docString_ = other.docString_;
- rawData_ = other.rawData_;
- doubleData_ = other.doubleData_.Clone();
- uint64Data_ = other.uint64Data_.Clone();
- }
+ /// Field number for the "output" field.
+ public const int OutputFieldNumber = 12;
+ private static readonly pb::FieldCodec _repeated_output_codec
+ = pb::FieldCodec.ForMessage(98, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
+ private readonly pbc::RepeatedField output_ = new pbc::RepeatedField();
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Output
+ {
+ get { return output_; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public TensorProto Clone() {
- return new TensorProto(this);
- }
+ /// Field number for the "value_info" field.
+ public const int ValueInfoFieldNumber = 13;
+ private static readonly pb::FieldCodec _repeated_valueInfo_codec
+ = pb::FieldCodec.ForMessage(106, global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.ValueInfoProto.Parser);
+ private readonly pbc::RepeatedField valueInfo_ = new pbc::RepeatedField();
+ ///
+ /// Information for the values in the graph. The ValueInfoProto.name's
+ /// must be distinct. It is optional for a value to appear in value_info list.
+ ///
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField ValueInfo
+ {
+ get { return valueInfo_; }
+ }
- /// Field number for the "dims" field.
- public const int DimsFieldNumber = 1;
- private static readonly pb::FieldCodec _repeated_dims_codec
- = pb::FieldCodec.ForInt64(10);
- private readonly pbc::RepeatedField dims_ = new pbc::RepeatedField();
- ///
- /// The shape of the tensor.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Dims {
- get { return dims_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override bool Equals(object other)
+ {
+ return Equals(other as GraphProto);
+ }
- /// Field number for the "data_type" field.
- public const int DataTypeFieldNumber = 2;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType dataType_ = 0;
- ///
- /// The data type of the tensor.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType DataType {
- get { return dataType_; }
- set {
- dataType_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public bool Equals(GraphProto other)
+ {
+ if (ReferenceEquals(other, null))
+ {
+ return false;
+ }
+ if (ReferenceEquals(other, this))
+ {
+ return true;
+ }
+ if (!node_.Equals(other.node_)) return false;
+ if (Name != other.Name) return false;
+ if (!initializer_.Equals(other.initializer_)) return false;
+ if (DocString != other.DocString) return false;
+ if (!input_.Equals(other.input_)) return false;
+ if (!output_.Equals(other.output_)) return false;
+ if (!valueInfo_.Equals(other.valueInfo_)) return false;
+ return Equals(_unknownFields, other._unknownFields);
+ }
- /// Field number for the "segment" field.
- public const int SegmentFieldNumber = 3;
- private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment segment_;
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment Segment {
- get { return segment_; }
- set {
- segment_ = value;
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override int GetHashCode()
+ {
+ int hash = 1;
+ hash ^= node_.GetHashCode();
+ if (Name.Length != 0) hash ^= Name.GetHashCode();
+ hash ^= initializer_.GetHashCode();
+ if (DocString.Length != 0) hash ^= DocString.GetHashCode();
+ hash ^= input_.GetHashCode();
+ hash ^= output_.GetHashCode();
+ hash ^= valueInfo_.GetHashCode();
+ if (_unknownFields != null)
+ {
+ hash ^= _unknownFields.GetHashCode();
+ }
+ return hash;
+ }
- /// Field number for the "float_data" field.
- public const int FloatDataFieldNumber = 4;
- private static readonly pb::FieldCodec _repeated_floatData_codec
- = pb::FieldCodec.ForFloat(34);
- private readonly pbc::RepeatedField floatData_ = new pbc::RepeatedField();
- ///
- /// For float and complex64 values
- /// Complex64 tensors are encoded as a single array of floats,
- /// with the real components appearing in odd numbered positions,
- /// and the corresponding imaginary component apparing in the
- /// subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i]
- /// is encoded as [1.0, 2.0 ,3.0 ,4.0]
- /// When this field is present, the data_type field MUST be FLOAT or COMPLEX64.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField FloatData {
- get { return floatData_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public override string ToString()
+ {
+ return pb::JsonFormatter.ToDiagnosticString(this);
+ }
- /// Field number for the "int32_data" field.
- public const int Int32DataFieldNumber = 5;
- private static readonly pb::FieldCodec _repeated_int32Data_codec
- = pb::FieldCodec.ForInt32(42);
- private readonly pbc::RepeatedField int32Data_ = new pbc::RepeatedField();
- ///
- /// For int32, uint8, int8, uint16, int16, bool, and float16 values
- /// float16 values must be bit-wise converted to an uint16_t prior
- /// to writing to the buffer.
- /// When this field is present, the data_type field MUST be
- /// INT32, INT16, INT8, UINT16, INT8, BOOL, or FLOAT32
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Int32Data {
- get { return int32Data_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void WriteTo(pb::CodedOutputStream output)
+ {
+ node_.WriteTo(output, _repeated_node_codec);
+ if (Name.Length != 0)
+ {
+ output.WriteRawTag(18);
+ output.WriteString(Name);
+ }
+ initializer_.WriteTo(output, _repeated_initializer_codec);
+ if (DocString.Length != 0)
+ {
+ output.WriteRawTag(82);
+ output.WriteString(DocString);
+ }
+ input_.WriteTo(output, _repeated_input_codec);
+ output_.WriteTo(output, _repeated_output_codec);
+ valueInfo_.WriteTo(output, _repeated_valueInfo_codec);
+ if (_unknownFields != null)
+ {
+ _unknownFields.WriteTo(output);
+ }
+ }
- /// Field number for the "string_data" field.
- public const int StringDataFieldNumber = 6;
- private static readonly pb::FieldCodec _repeated_stringData_codec
- = pb::FieldCodec.ForBytes(50);
- private readonly pbc::RepeatedField stringData_ = new pbc::RepeatedField();
- ///
- /// For strings.
- /// Each element of string_data is a UTF-8 encoded Unicode
- /// string. No trailing null, no leading BOM. The protobuf "string"
- /// scalar type is not used to match ML community conventions.
- /// When this field is present, the data_type field MUST be STRING
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField StringData {
- get { return stringData_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public int CalculateSize()
+ {
+ int size = 0;
+ size += node_.CalculateSize(_repeated_node_codec);
+ if (Name.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
+ }
+ size += initializer_.CalculateSize(_repeated_initializer_codec);
+ if (DocString.Length != 0)
+ {
+ size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
+ }
+ size += input_.CalculateSize(_repeated_input_codec);
+ size += output_.CalculateSize(_repeated_output_codec);
+ size += valueInfo_.CalculateSize(_repeated_valueInfo_codec);
+ if (_unknownFields != null)
+ {
+ size += _unknownFields.CalculateSize();
+ }
+ return size;
+ }
- /// Field number for the "int64_data" field.
- public const int Int64DataFieldNumber = 7;
- private static readonly pb::FieldCodec _repeated_int64Data_codec
- = pb::FieldCodec.ForInt64(58);
- private readonly pbc::RepeatedField int64Data_ = new pbc::RepeatedField();
- ///
- /// For int64.
- /// When this field is present, the data_type field MUST be INT64
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Int64Data {
- get { return int64Data_; }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public void MergeFrom(GraphProto other)
+ {
+ if (other == null)
+ {
+ return;
+ }
+ node_.Add(other.node_);
+ if (other.Name.Length != 0)
+ {
+ Name = other.Name;
+ }
+ initializer_.Add(other.initializer_);
+ if (other.DocString.Length != 0)
+ {
+ DocString = other.DocString;
+ }
+ input_.Add(other.input_);
+ output_.Add(other.output_);
+ valueInfo_.Add(other.valueInfo_);
+ _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
+ }
- /// Field number for the "name" field.
- public const int NameFieldNumber = 8;
- private string name_ = "";
- ///
- /// Optionally, a name for the tensor.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string Name {
- get { return name_; }
- set {
- name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
+ [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:
+ {
+ node_.AddEntriesFrom(input, _repeated_node_codec);
+ break;
+ }
+ case 18:
+ {
+ Name = input.ReadString();
+ break;
+ }
+ case 42:
+ {
+ initializer_.AddEntriesFrom(input, _repeated_initializer_codec);
+ break;
+ }
+ case 82:
+ {
+ DocString = input.ReadString();
+ break;
+ }
+ case 90:
+ {
+ input_.AddEntriesFrom(input, _repeated_input_codec);
+ break;
+ }
+ case 98:
+ {
+ output_.AddEntriesFrom(input, _repeated_output_codec);
+ break;
+ }
+ case 106:
+ {
+ valueInfo_.AddEntriesFrom(input, _repeated_valueInfo_codec);
+ break;
+ }
+ }
+ }
+ }
- /// Field number for the "doc_string" field.
- public const int DocStringFieldNumber = 12;
- private string docString_ = "";
- ///
- /// A human-readable documentation for this tensor. Markdown is allowed.
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public string DocString {
- get { return docString_; }
- set {
- docString_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
}
- /// Field number for the "raw_data" field.
- public const int RawDataFieldNumber = 9;
- private pb::ByteString rawData_ = pb::ByteString.Empty;
///
- /// Serializations can either use one of the fields above, or use this
- /// raw bytes field. The only exception is the string case, where one is
- /// required to store the content in the repeated bytes string_data field.
- ///
- /// When this raw_data field is used to store tensor value, elements MUST
- /// be stored in as fixed-width, little-endian order.
- /// Floating-point data types MUST be stored in IEEE 754 format.
- /// Complex64 elements must be written as two consecutive FLOAT values, real component first.
- /// Complex128 elements must be written as two consecutive DOUBLE values, real component first.
- /// Boolean type MUST be written one byte per tensor element (00000001 for true, 00000000 for false).
+ /// Tensors
///
- /// Note: the advantage of specific field rather than the raw_data field is
- /// that in some cases (e.g. int data), protobuf does a better packing via
- /// variable length storage, and may lead to smaller binary footprint.
- /// When this field is present, the data_type field MUST NOT be STRING or UNDEFINED
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pb::ByteString RawData {
- get { return rawData_; }
- set {
- rawData_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
- }
- }
-
- /// Field number for the "double_data" field.
- public const int DoubleDataFieldNumber = 10;
- private static readonly pb::FieldCodec _repeated_doubleData_codec
- = pb::FieldCodec.ForDouble(82);
- private readonly pbc::RepeatedField doubleData_ = new pbc::RepeatedField();
- ///
- /// For double
- /// Complex64 tensors are encoded as a single array of doubles,
- /// with the real components appearing in odd numbered positions,
- /// and the corresponding imaginary component apparing in the
- /// subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i]
- /// is encoded as [1.0, 2.0 ,3.0 ,4.0]
- /// When this field is present, the data_type field MUST be DOUBLE or COMPLEX128
+ /// A serialized tensor value.
///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField DoubleData {
- get { return doubleData_; }
- }
-
- /// Field number for the "uint64_data" field.
- public const int Uint64DataFieldNumber = 11;
- private static readonly pb::FieldCodec _repeated_uint64Data_codec
- = pb::FieldCodec.ForUInt64(90);
- private readonly pbc::RepeatedField uint64Data_ = new pbc::RepeatedField();
- ///
- /// For uint64 and uint32 values
- /// When this field is present, the data_type field MUST be
- /// UINT32 or UINT64
- ///
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public pbc::RepeatedField Uint64Data {
- get { return uint64Data_; }
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override bool Equals(object other) {
- return Equals(other as TensorProto);
- }
-
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public bool Equals(TensorProto other) {
- if (ReferenceEquals(other, null)) {
- return false;
- }
- if (ReferenceEquals(other, this)) {
- return true;
- }
- if(!dims_.Equals(other.dims_)) return false;
- if (DataType != other.DataType) return false;
- if (!object.Equals(Segment, other.Segment)) return false;
- if(!floatData_.Equals(other.floatData_)) return false;
- if(!int32Data_.Equals(other.int32Data_)) return false;
- if(!stringData_.Equals(other.stringData_)) return false;
- if(!int64Data_.Equals(other.int64Data_)) return false;
- if (Name != other.Name) return false;
- if (DocString != other.DocString) return false;
- if (RawData != other.RawData) return false;
- if(!doubleData_.Equals(other.doubleData_)) return false;
- if(!uint64Data_.Equals(other.uint64Data_)) return false;
- return true;
- }
+ public sealed partial class TensorProto : pb::IMessage
+ {
+ private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new TensorProto());
+ private pb::UnknownFieldSet _unknownFields;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pb::MessageParser Parser { get { return _parser; } }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override int GetHashCode() {
- int hash = 1;
- hash ^= dims_.GetHashCode();
- if (DataType != 0) hash ^= DataType.GetHashCode();
- if (segment_ != null) hash ^= Segment.GetHashCode();
- hash ^= floatData_.GetHashCode();
- hash ^= int32Data_.GetHashCode();
- hash ^= stringData_.GetHashCode();
- hash ^= int64Data_.GetHashCode();
- if (Name.Length != 0) hash ^= Name.GetHashCode();
- if (DocString.Length != 0) hash ^= DocString.GetHashCode();
- if (RawData.Length != 0) hash ^= RawData.GetHashCode();
- hash ^= doubleData_.GetHashCode();
- hash ^= uint64Data_.GetHashCode();
- return hash;
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public static pbr::MessageDescriptor Descriptor
+ {
+ get { return global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.OnnxMlReflection.Descriptor.MessageTypes[6]; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public override string ToString() {
- return pb::JsonFormatter.ToDiagnosticString(this);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ pbr::MessageDescriptor pb::IMessage.Descriptor
+ {
+ get { return Descriptor; }
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void WriteTo(pb::CodedOutputStream output) {
- dims_.WriteTo(output, _repeated_dims_codec);
- if (DataType != 0) {
- output.WriteRawTag(16);
- output.WriteEnum((int) DataType);
- }
- if (segment_ != null) {
- output.WriteRawTag(26);
- output.WriteMessage(Segment);
- }
- floatData_.WriteTo(output, _repeated_floatData_codec);
- int32Data_.WriteTo(output, _repeated_int32Data_codec);
- stringData_.WriteTo(output, _repeated_stringData_codec);
- int64Data_.WriteTo(output, _repeated_int64Data_codec);
- if (Name.Length != 0) {
- output.WriteRawTag(66);
- output.WriteString(Name);
- }
- if (RawData.Length != 0) {
- output.WriteRawTag(74);
- output.WriteBytes(RawData);
- }
- doubleData_.WriteTo(output, _repeated_doubleData_codec);
- uint64Data_.WriteTo(output, _repeated_uint64Data_codec);
- if (DocString.Length != 0) {
- output.WriteRawTag(98);
- output.WriteString(DocString);
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TensorProto()
+ {
+ OnConstruction();
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public int CalculateSize() {
- int size = 0;
- size += dims_.CalculateSize(_repeated_dims_codec);
- if (DataType != 0) {
- size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DataType);
- }
- if (segment_ != null) {
- size += 1 + pb::CodedOutputStream.ComputeMessageSize(Segment);
- }
- size += floatData_.CalculateSize(_repeated_floatData_codec);
- size += int32Data_.CalculateSize(_repeated_int32Data_codec);
- size += stringData_.CalculateSize(_repeated_stringData_codec);
- size += int64Data_.CalculateSize(_repeated_int64Data_codec);
- if (Name.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
- }
- if (DocString.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeStringSize(DocString);
- }
- if (RawData.Length != 0) {
- size += 1 + pb::CodedOutputStream.ComputeBytesSize(RawData);
- }
- size += doubleData_.CalculateSize(_repeated_doubleData_codec);
- size += uint64Data_.CalculateSize(_repeated_uint64Data_codec);
- return size;
- }
+ partial void OnConstruction();
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(TensorProto other) {
- if (other == null) {
- return;
- }
- dims_.Add(other.dims_);
- if (other.DataType != 0) {
- DataType = other.DataType;
- }
- if (other.segment_ != null) {
- if (segment_ == null) {
- segment_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment();
- }
- Segment.MergeFrom(other.Segment);
- }
- floatData_.Add(other.floatData_);
- int32Data_.Add(other.int32Data_);
- stringData_.Add(other.stringData_);
- int64Data_.Add(other.int64Data_);
- if (other.Name.Length != 0) {
- Name = other.Name;
- }
- if (other.DocString.Length != 0) {
- DocString = other.DocString;
- }
- if (other.RawData.Length != 0) {
- RawData = other.RawData;
- }
- doubleData_.Add(other.doubleData_);
- uint64Data_.Add(other.uint64Data_);
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TensorProto(TensorProto other) : this()
+ {
+ dims_ = other.dims_.Clone();
+ dataType_ = other.dataType_;
+ Segment = other.segment_ != null ? other.Segment.Clone() : null;
+ floatData_ = other.floatData_.Clone();
+ int32Data_ = other.int32Data_.Clone();
+ stringData_ = other.stringData_.Clone();
+ int64Data_ = other.int64Data_.Clone();
+ name_ = other.name_;
+ docString_ = other.docString_;
+ rawData_ = other.rawData_;
+ doubleData_ = other.doubleData_.Clone();
+ uint64Data_ = other.uint64Data_.Clone();
+ _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
+ }
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public void MergeFrom(pb::CodedInputStream input) {
- uint tag;
- while ((tag = input.ReadTag()) != 0) {
- switch(tag) {
- default:
- input.SkipLastField();
- break;
- case 10:
- case 8: {
- dims_.AddEntriesFrom(input, _repeated_dims_codec);
- break;
- }
- case 16: {
- dataType_ = (global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType) input.ReadEnum();
- break;
- }
- case 26: {
- if (segment_ == null) {
- segment_ = new global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment();
- }
- input.ReadMessage(segment_);
- break;
- }
- case 34:
- case 37: {
- floatData_.AddEntriesFrom(input, _repeated_floatData_codec);
- break;
- }
- case 42:
- case 40: {
- int32Data_.AddEntriesFrom(input, _repeated_int32Data_codec);
- break;
- }
- case 50: {
- stringData_.AddEntriesFrom(input, _repeated_stringData_codec);
- break;
- }
- case 58:
- case 56: {
- int64Data_.AddEntriesFrom(input, _repeated_int64Data_codec);
- break;
- }
- case 66: {
- Name = input.ReadString();
- break;
- }
- case 74: {
- RawData = input.ReadBytes();
- break;
- }
- case 82:
- case 81: {
- doubleData_.AddEntriesFrom(input, _repeated_doubleData_codec);
- break;
- }
- case 90:
- case 88: {
- uint64Data_.AddEntriesFrom(input, _repeated_uint64Data_codec);
- break;
- }
- case 98: {
- DocString = input.ReadString();
- break;
- }
- }
- }
- }
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public TensorProto Clone()
+ {
+ return new TensorProto(this);
+ }
- #region Nested types
- /// Container for nested types declared in the TensorProto message type.
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
- public static partial class Types {
- public enum DataType {
- [pbr::OriginalName("UNDEFINED")] Undefined = 0,
- ///
- /// Basic types.
- ///
- [pbr::OriginalName("FLOAT")] Float = 1,
+ /// Field number for the "dims" field.
+ public const int DimsFieldNumber = 1;
+ private static readonly pb::FieldCodec _repeated_dims_codec
+ = pb::FieldCodec.ForInt64(10);
+ private readonly pbc::RepeatedField dims_ = new pbc::RepeatedField();
///
- /// uint8_t
+ /// The shape of the tensor.
///
- [pbr::OriginalName("UINT8")] Uint8 = 2,
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Dims
+ {
+ get { return dims_; }
+ }
+
+ /// Field number for the "data_type" field.
+ public const int DataTypeFieldNumber = 2;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType dataType_ = 0;
///
- /// int8_t
+ /// The data type of the tensor.
///
- [pbr::OriginalName("INT8")] Int8 = 3,
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.DataType DataType
+ {
+ get { return dataType_; }
+ set
+ {
+ dataType_ = value;
+ }
+ }
+
+ /// Field number for the "segment" field.
+ public const int SegmentFieldNumber = 3;
+ private global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment segment_;
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public global::Microsoft.ML.Runtime.UniversalModelFormat.Onnx.TensorProto.Types.Segment Segment
+ {
+ get { return segment_; }
+ set
+ {
+ segment_ = value;
+ }
+ }
+
+ /// Field number for the "float_data" field.
+ public const int FloatDataFieldNumber = 4;
+ private static readonly pb::FieldCodec _repeated_floatData_codec
+ = pb::FieldCodec.ForFloat(34);
+ private readonly pbc::RepeatedField floatData_ = new pbc::RepeatedField();
///
- /// uint16_t
+ /// For float and complex64 values
+ /// Complex64 tensors are encoded as a single array of floats,
+ /// with the real components appearing in odd numbered positions,
+ /// and the corresponding imaginary component apparing in the
+ /// subsequent even numbered position. (e.g., [1.0 + 2.0i, 3.0 + 4.0i]
+ /// is encoded as [1.0, 2.0 ,3.0 ,4.0]
+ /// When this field is present, the data_type field MUST be FLOAT or COMPLEX64.
///
- [pbr::OriginalName("UINT16")] Uint16 = 4,
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField FloatData
+ {
+ get { return floatData_; }
+ }
+
+ /// Field number for the "int32_data" field.
+ public const int Int32DataFieldNumber = 5;
+ private static readonly pb::FieldCodec _repeated_int32Data_codec
+ = pb::FieldCodec.ForInt32(42);
+ private readonly pbc::RepeatedField int32Data_ = new pbc::RepeatedField();
///
- /// int16_t
+ /// For int32, uint8, int8, uint16, int16, bool, and float16 values
+ /// float16 values must be bit-wise converted to an uint16_t prior
+ /// to writing to the buffer.
+ /// When this field is present, the data_type field MUST be
+ /// INT32, INT16, INT8, UINT16, INT8, BOOL, or FLOAT16
///
- [pbr::OriginalName("INT16")] Int16 = 5,
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
+ public pbc::RepeatedField Int32Data
+ {
+ get { return int32Data_; }
+ }
+
+ ///