diff --git a/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/AzureCodeGenerator/AzureAttachModelCodeGenerator.cs b/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/AzureCodeGenerator/AzureAttachModelCodeGenerator.cs index 665644f870..37b260fb72 100644 --- a/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/AzureCodeGenerator/AzureAttachModelCodeGenerator.cs +++ b/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/AzureCodeGenerator/AzureAttachModelCodeGenerator.cs @@ -90,6 +90,7 @@ public AzureAttachModelCodeGenerator(Pipeline pipeline, ColumnInferenceResults c IncludeRecommenderPackage = false, StablePackageVersion = _settings.StablePackageVersion, UnstablePackageVersion = _settings.UnstablePackageVersion, + Target = _settings.Target, }.TransformText(), Name = $"{ _settings.OutputName }.Model.csproj", }; diff --git a/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/CodeGenerator.cs b/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/CodeGenerator.cs index 35de1a1b11..2a2dbadcc6 100644 --- a/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/CodeGenerator.cs +++ b/src/Microsoft.ML.CodeGenerator/CodeGenerator/CSharp/CodeGenerator.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Text; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.ML.AutoML; using Microsoft.ML.CodeGenerator.CodeGenerator; using Microsoft.ML.CodeGenerator.Templates.Azure.Model; @@ -144,7 +145,7 @@ private void SetRequiredNugetPackages(IEnumerable trainerNodes, re var predictProjectFileContent = GeneratPredictProjectFileContent(_settings.OutputName, includeLightGbmPackage, includeMklComponentsPackage, includeFastTreePackage, includeImageTransformerPackage, includeImageClassificationPackage, includeRecommenderPackage, includeOnnxPackage, includeResNet18Package, - _settings.StablePackageVersion, _settings.UnstablePackageVersion); + _settings.StablePackageVersion, _settings.UnstablePackageVersion, _settings.Target); var transformsAndTrainers = GenerateTransformsAndTrainers(); var modelBuilderCSFileContent = GenerateModelBuilderCSFileContent(transformsAndTrainers.Usings, transformsAndTrainers.TrainerMethod, transformsAndTrainers.PreTrainerTransforms, transformsAndTrainers.PostTrainerTransforms, namespaceValue, _pipeline.CacheBeforeTrainer, labelTypeCsharp.Name, includeOnnxPackage); @@ -175,40 +176,7 @@ private void SetRequiredNugetPackages(IEnumerable trainerNodes, re var modelProjectFileContent = GenerateModelProjectFileContent(includeLightGbmPackage, includeMklComponentsPackage, includeFastTreePackage, includeImageTransformerPackage, includeImageClassificationPackage, includeRecommenderPackage, includeOnnxModel, - _settings.StablePackageVersion, _settings.UnstablePackageVersion); - - return (modelInputCSFileContent, modelOutputCSFileContent, consumeModelCSFileContent, modelProjectFileContent); - } - - internal (string ModelInputCSFileContent, string ModelOutputCSFileContent, string ConsumeModelCSFileContent, - string ModelProjectFileContent) GenerateAzureAttachImageModelProjectContents(string namespaceValue) - { - var classLabels = GenerateClassLabels(); - - // generate ModelInput.cs - var modelInputCSFileContent = GenerateModelInputCSFileContent(namespaceValue, classLabels); - modelInputCSFileContent = Utils.FormatCode(modelInputCSFileContent); - - // generate ModelOutput.cs - var modelOutputCSFileContent = new OnnxModelOutputClass() - { - Namespace = namespaceValue, - Target = _settings.Target, - }.TransformText(); - modelOutputCSFileContent = Utils.FormatCode(modelOutputCSFileContent); - - // generate ConsumeModel.cs - var consumeModelCSFileContent = new AzureAttachImageConsumeModel() - { - Namespace = namespaceValue, - Target = _settings.Target, - }.TransformText(); - consumeModelCSFileContent = Utils.FormatCode(consumeModelCSFileContent); - - // generate Model.csproj - var modelProjectFileContent = GenerateModelProjectFileContent(false, - false, false, true, - false, false,true, _settings.StablePackageVersion, _settings.UnstablePackageVersion); + _settings.StablePackageVersion, _settings.UnstablePackageVersion, _settings.Target); return (modelInputCSFileContent, modelOutputCSFileContent, consumeModelCSFileContent, modelProjectFileContent); } @@ -366,7 +334,7 @@ internal IList GenerateClassLabels(IDictionary\r\n PreserveNewest\r\n \r\n"); } - this.Write(" \r\n \r\n\r\n"); + this.Write(" \r\n\r\n \r\n"); + if (Target==CSharp.GenerateTarget.Cli) { + this.Write(" \r\n"); +}else{ + this.Write(" \r\n"); +} + this.Write(" \r\n\r\n"); return this.GenerationEnvironment.ToString(); } @@ -85,6 +91,7 @@ public virtual string TransformText() public bool IncludeRecommenderPackage {get;set;} public string StablePackageVersion {get;set;} public string UnstablePackageVersion {get;set;} +internal CSharp.GenerateTarget Target {get;set;} } #region Base class diff --git a/src/Microsoft.ML.CodeGenerator/Templates/Console/ModelProject.tt b/src/Microsoft.ML.CodeGenerator/Templates/Console/ModelProject.tt index 79dfef3b34..adc38aeba6 100644 --- a/src/Microsoft.ML.CodeGenerator/Templates/Console/ModelProject.tt +++ b/src/Microsoft.ML.CodeGenerator/Templates/Console/ModelProject.tt @@ -44,7 +44,14 @@ <#}#> - + + +<# if (Target==CSharp.GenerateTarget.Cli) {#> + +<#}else{#> + +<#}#> + <#+ public bool IncludeLightGBMPackage {get;set;} @@ -56,4 +63,5 @@ public bool IncludeOnnxModel {get; set;} public bool IncludeRecommenderPackage {get;set;} public string StablePackageVersion {get;set;} public string UnstablePackageVersion {get;set;} +internal CSharp.GenerateTarget Target {get;set;} #> diff --git a/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.cs b/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.cs index cbde9165f2..96c4bbf124 100644 --- a/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.cs +++ b/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.cs @@ -75,7 +75,13 @@ public virtual string TransformText() this.Write(this.ToStringHelper.ToStringWithCulture(Namespace)); this.Write(".Model\\"); this.Write(this.ToStringHelper.ToStringWithCulture(Namespace)); - this.Write(".Model.csproj\" />\r\n \r\n\r\n"); + this.Write(".Model.csproj\" />\r\n \r\n\r\n \r\n"); + if (Target==CSharp.GenerateTarget.Cli) { + this.Write(" \r\n"); +}else{ + this.Write(" \r\n"); +} + this.Write(" \r\n\r\n"); return this.GenerationEnvironment.ToString(); } @@ -90,6 +96,7 @@ public virtual string TransformText() public bool IncludeRecommenderPackage {get;set;} public string StablePackageVersion {get;set;} public string UnstablePackageVersion {get;set;} +internal CSharp.GenerateTarget Target {get;set;} } #region Base class diff --git a/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.tt b/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.tt index 35ba790075..1dd932085e 100644 --- a/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.tt +++ b/src/Microsoft.ML.CodeGenerator/Templates/Console/PredictProject.tt @@ -41,6 +41,14 @@ + + +<# if (Target==CSharp.GenerateTarget.Cli) {#> + +<#}else{#> + +<#}#> + <#+ public string Namespace {get;set;} @@ -54,4 +62,5 @@ public bool IncludeResNet18Package {get; set;} public bool IncludeRecommenderPackage {get;set;} public string StablePackageVersion {get;set;} public string UnstablePackageVersion {get;set;} +internal CSharp.GenerateTarget Target {get;set;} #> diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.ConsoleApp.csproj.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.ConsoleApp.csproj.approved.txt index 23322de77b..66e5ca3695 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.ConsoleApp.csproj.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.ConsoleApp.csproj.approved.txt @@ -11,4 +11,8 @@ + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.Model.csproj.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.Model.csproj.approved.txt index e10e9a0460..7733ed6f49 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.Model.csproj.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureCodeGeneratorTest.test.Model.csproj.approved.txt @@ -16,5 +16,8 @@ PreserveNewest - + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.ConsoleApp.csproj.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.ConsoleApp.csproj.approved.txt index 29b77bdc97..23fa52e0c1 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.ConsoleApp.csproj.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.ConsoleApp.csproj.approved.txt @@ -12,4 +12,8 @@ + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.Model.csproj.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.Model.csproj.approved.txt index acb39d2ebe..98b5a2abef 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.Model.csproj.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.AzureImageCodeGeneratorTest.CodeGenTest.Model.csproj.approved.txt @@ -17,5 +17,8 @@ PreserveNewest - + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ConsoleAppProjectFileContentTest.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ConsoleAppProjectFileContentTest.approved.txt index 62f6485c94..9ef4077dee 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ConsoleAppProjectFileContentTest.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ConsoleAppProjectFileContentTest.approved.txt @@ -12,4 +12,8 @@ + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ModelProjectFileContentTestOnlyStableProjects.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ModelProjectFileContentTestOnlyStableProjects.approved.txt index c6240ac0eb..82660fc963 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ModelProjectFileContentTestOnlyStableProjects.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.ModelProjectFileContentTestOnlyStableProjects.approved.txt @@ -15,5 +15,8 @@ PreserveNewest - + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateConsoleAppProjectContents_VerifyPredictProject.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateConsoleAppProjectContents_VerifyPredictProject.approved.txt index 3251880fcf..14a45f8c0c 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateConsoleAppProjectContents_VerifyPredictProject.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateConsoleAppProjectContents_VerifyPredictProject.approved.txt @@ -11,4 +11,8 @@ + + + + diff --git a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateModelProjectContents_VerifyModelProject.approved.txt b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateModelProjectContents_VerifyModelProject.approved.txt index af2fa927e9..aee042536f 100644 --- a/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateModelProjectContents_VerifyModelProject.approved.txt +++ b/test/Microsoft.ML.CodeGenerator.Tests/ApprovalTests/ConsoleCodeGeneratorTests.Recommendation_GenerateModelProjectContents_VerifyModelProject.approved.txt @@ -13,5 +13,8 @@ PreserveNewest - + + + +