{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments/245214766","pull_request_review_id":189268464,"id":245214766,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0NTIxNDc2Ng==","diff_hunk":"@@ -0,0 +1,38 @@\n+﻿using System.Collections.Generic;\n+using Microsoft.ML.Core.Data;\n+using Microsoft.ML.Data;\n+using Microsoft.ML.UniversalModelFormat.Onnx;\n+\n+namespace Microsoft.ML.Model.Onnx\n+{\n+    public class TransformerChainOnnxConverter\n+    {\n+        public static ModelProto Convert<T>(TransformerChain<T> chain, IDataView inputData, HashSet<string> inputColumnNamesToDrop=null, HashSet<string> outputColumnNamesToDrop=null) where T : class, ITransformer","path":"src/Microsoft.ML.Onnx/TransformerChainOnnxConverter.cs","position":10,"original_position":10,"commit_id":"54a8856d3349181f38f05f558c66c785be651193","original_commit_id":"54a8856d3349181f38f05f558c66c785be651193","user":{"login":"TomFinley","id":8295757,"node_id":"MDQ6VXNlcjgyOTU3NTc=","avatar_url":"https://avatars1.githubusercontent.com/u/8295757?v=4","gravatar_id":"","url":"https://api.github.com/users/TomFinley","html_url":"https://github.com/TomFinley","followers_url":"https://api.github.com/users/TomFinley/followers","following_url":"https://api.github.com/users/TomFinley/following{/other_user}","gists_url":"https://api.github.com/users/TomFinley/gists{/gist_id}","starred_url":"https://api.github.com/users/TomFinley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TomFinley/subscriptions","organizations_url":"https://api.github.com/users/TomFinley/orgs","repos_url":"https://api.github.com/users/TomFinley/repos","events_url":"https://api.github.com/users/TomFinley/events{/privacy}","received_events_url":"https://api.github.com/users/TomFinley/received_events","type":"User","site_admin":false},"body":">TransformerChain<T> chain [](start = 44, length = 25)\r\n\r\nIs there a reason to do this? If you wanted specialized behavior for the transformer chain, would it be sufficient to just check if it is a transformer chain in the other method, and not make this public?\r\n\r\nThe presence of a specialized overload for transformer chain specifically makes me suspect that you're having different behavior for that. But this makes me wonder, since a `TransformerChain<T>` is also an `ITransformer`, does this mean that if I were to just feed it in as such below, that it would not work, or have a flaw of some kind? In which case, the method below we'd say is buggy. (Since it purports to work over any `ITransformer`. But if it *does* work, then why have a separate method anyway? So I'd put that logic (if indeed any must exist) on the second method, and *not* expose whatever implementation specific type polymorphism to the user. Since they shouldn't have to care about that.","created_at":"2019-01-04T06:01:24Z","updated_at":"2019-01-04T06:01:24Z","html_url":"https://github.com/dotnet/machinelearning/pull/2013#discussion_r245214766","pull_request_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments/245214766"},"html":{"href":"https://github.com/dotnet/machinelearning/pull/2013#discussion_r245214766"},"pull_request":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013","id":242125865,"node_id":"MDExOlB1bGxSZXF1ZXN0MjQyMTI1ODY1","html_url":"https://github.com/dotnet/machinelearning/pull/2013","diff_url":"https://github.com/dotnet/machinelearning/pull/2013.diff","patch_url":"https://github.com/dotnet/machinelearning/pull/2013.patch","issue_url":"https://api.github.com/repos/dotnet/machinelearning/issues/2013","number":2013,"state":"open","locked":false,"title":"Prototype of new ONNX converter and two end-to-end tests","user":{"login":"wschin","id":3524474,"node_id":"MDQ6VXNlcjM1MjQ0NzQ=","avatar_url":"https://avatars1.githubusercontent.com/u/3524474?v=4","gravatar_id":"","url":"https://api.github.com/users/wschin","html_url":"https://github.com/wschin","followers_url":"https://api.github.com/users/wschin/followers","following_url":"https://api.github.com/users/wschin/following{/other_user}","gists_url":"https://api.github.com/users/wschin/gists{/gist_id}","starred_url":"https://api.github.com/users/wschin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wschin/subscriptions","organizations_url":"https://api.github.com/users/wschin/orgs","repos_url":"https://api.github.com/users/wschin/repos","events_url":"https://api.github.com/users/wschin/events{/privacy}","received_events_url":"https://api.github.com/users/wschin/received_events","type":"User","site_admin":false},"body":"This PR create a ONNX converter targeting TransformerChain. A full example is added as a test; we train a pipeline (normalize + SDCA) using new APIs, convert the trained model, and call ONNXRuntime to evaluate it.","created_at":"2019-01-03T22:13:53Z","updated_at":"2019-01-04T06:01:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d7bdd934aea0bb25e3c4eb63aa35ca11df3e0816","assignee":null,"assignees":[],"requested_reviewers":[{"login":"codemzs","id":1211949,"node_id":"MDQ6VXNlcjEyMTE5NDk=","avatar_url":"https://avatars3.githubusercontent.com/u/1211949?v=4","gravatar_id":"","url":"https://api.github.com/users/codemzs","html_url":"https://github.com/codemzs","followers_url":"https://api.github.com/users/codemzs/followers","following_url":"https://api.github.com/users/codemzs/following{/other_user}","gists_url":"https://api.github.com/users/codemzs/gists{/gist_id}","starred_url":"https://api.github.com/users/codemzs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codemzs/subscriptions","organizations_url":"https://api.github.com/users/codemzs/orgs","repos_url":"https://api.github.com/users/codemzs/repos","events_url":"https://api.github.com/users/codemzs/events{/privacy}","received_events_url":"https://api.github.com/users/codemzs/received_events","type":"User","site_admin":false},{"login":"artidoro","id":11949572,"node_id":"MDQ6VXNlcjExOTQ5NTcy","avatar_url":"https://avatars1.githubusercontent.com/u/11949572?v=4","gravatar_id":"","url":"https://api.github.com/users/artidoro","html_url":"https://github.com/artidoro","followers_url":"https://api.github.com/users/artidoro/followers","following_url":"https://api.github.com/users/artidoro/following{/other_user}","gists_url":"https://api.github.com/users/artidoro/gists{/gist_id}","starred_url":"https://api.github.com/users/artidoro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/artidoro/subscriptions","organizations_url":"https://api.github.com/users/artidoro/orgs","repos_url":"https://api.github.com/users/artidoro/repos","events_url":"https://api.github.com/users/artidoro/events{/privacy}","received_events_url":"https://api.github.com/users/artidoro/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013/commits","review_comments_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013/comments","review_comment_url":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/machinelearning/issues/2013/comments","statuses_url":"https://api.github.com/repos/dotnet/machinelearning/statuses/54a8856d3349181f38f05f558c66c785be651193","head":{"label":"wschin:upgrade-onnx-cvt","ref":"upgrade-onnx-cvt","sha":"54a8856d3349181f38f05f558c66c785be651193","user":{"login":"wschin","id":3524474,"node_id":"MDQ6VXNlcjM1MjQ0NzQ=","avatar_url":"https://avatars1.githubusercontent.com/u/3524474?v=4","gravatar_id":"","url":"https://api.github.com/users/wschin","html_url":"https://github.com/wschin","followers_url":"https://api.github.com/users/wschin/followers","following_url":"https://api.github.com/users/wschin/following{/other_user}","gists_url":"https://api.github.com/users/wschin/gists{/gist_id}","starred_url":"https://api.github.com/users/wschin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wschin/subscriptions","organizations_url":"https://api.github.com/users/wschin/orgs","repos_url":"https://api.github.com/users/wschin/repos","events_url":"https://api.github.com/users/wschin/events{/privacy}","received_events_url":"https://api.github.com/users/wschin/received_events","type":"User","site_admin":false},"repo":{"id":142626704,"node_id":"MDEwOlJlcG9zaXRvcnkxNDI2MjY3MDQ=","name":"machinelearning","full_name":"wschin/machinelearning","private":false,"owner":{"login":"wschin","id":3524474,"node_id":"MDQ6VXNlcjM1MjQ0NzQ=","avatar_url":"https://avatars1.githubusercontent.com/u/3524474?v=4","gravatar_id":"","url":"https://api.github.com/users/wschin","html_url":"https://github.com/wschin","followers_url":"https://api.github.com/users/wschin/followers","following_url":"https://api.github.com/users/wschin/following{/other_user}","gists_url":"https://api.github.com/users/wschin/gists{/gist_id}","starred_url":"https://api.github.com/users/wschin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wschin/subscriptions","organizations_url":"https://api.github.com/users/wschin/orgs","repos_url":"https://api.github.com/users/wschin/repos","events_url":"https://api.github.com/users/wschin/events{/privacy}","received_events_url":"https://api.github.com/users/wschin/received_events","type":"User","site_admin":false},"html_url":"https://github.com/wschin/machinelearning","description":"ML.NET is an open source and cross-platform machine learning framework for .NET.","fork":true,"url":"https://api.github.com/repos/wschin/machinelearning","forks_url":"https://api.github.com/repos/wschin/machinelearning/forks","keys_url":"https://api.github.com/repos/wschin/machinelearning/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wschin/machinelearning/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wschin/machinelearning/teams","hooks_url":"https://api.github.com/repos/wschin/machinelearning/hooks","issue_events_url":"https://api.github.com/repos/wschin/machinelearning/issues/events{/number}","events_url":"https://api.github.com/repos/wschin/machinelearning/events","assignees_url":"https://api.github.com/repos/wschin/machinelearning/assignees{/user}","branches_url":"https://api.github.com/repos/wschin/machinelearning/branches{/branch}","tags_url":"https://api.github.com/repos/wschin/machinelearning/tags","blobs_url":"https://api.github.com/repos/wschin/machinelearning/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wschin/machinelearning/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wschin/machinelearning/git/refs{/sha}","trees_url":"https://api.github.com/repos/wschin/machinelearning/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wschin/machinelearning/statuses/{sha}","languages_url":"https://api.github.com/repos/wschin/machinelearning/languages","stargazers_url":"https://api.github.com/repos/wschin/machinelearning/stargazers","contributors_url":"https://api.github.com/repos/wschin/machinelearning/contributors","subscribers_url":"https://api.github.com/repos/wschin/machinelearning/subscribers","subscription_url":"https://api.github.com/repos/wschin/machinelearning/subscription","commits_url":"https://api.github.com/repos/wschin/machinelearning/commits{/sha}","git_commits_url":"https://api.github.com/repos/wschin/machinelearning/git/commits{/sha}","comments_url":"https://api.github.com/repos/wschin/machinelearning/comments{/number}","issue_comment_url":"https://api.github.com/repos/wschin/machinelearning/issues/comments{/number}","contents_url":"https://api.github.com/repos/wschin/machinelearning/contents/{+path}","compare_url":"https://api.github.com/repos/wschin/machinelearning/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wschin/machinelearning/merges","archive_url":"https://api.github.com/repos/wschin/machinelearning/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wschin/machinelearning/downloads","issues_url":"https://api.github.com/repos/wschin/machinelearning/issues{/number}","pulls_url":"https://api.github.com/repos/wschin/machinelearning/pulls{/number}","milestones_url":"https://api.github.com/repos/wschin/machinelearning/milestones{/number}","notifications_url":"https://api.github.com/repos/wschin/machinelearning/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wschin/machinelearning/labels{/name}","releases_url":"https://api.github.com/repos/wschin/machinelearning/releases{/id}","deployments_url":"https://api.github.com/repos/wschin/machinelearning/deployments","created_at":"2018-07-27T21:54:54Z","updated_at":"2018-12-11T21:42:24Z","pushed_at":"2019-01-04T04:37:42Z","git_url":"git://github.com/wschin/machinelearning.git","ssh_url":"git@github.com:wschin/machinelearning.git","clone_url":"https://github.com/wschin/machinelearning.git","svn_url":"https://github.com/wschin/machinelearning","homepage":"https://dot.net/ml","size":33589,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"1d864c4311aa5201bbd67e7108d21dd4199b1d6d","user":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":132021166,"node_id":"MDEwOlJlcG9zaXRvcnkxMzIwMjExNjY=","name":"machinelearning","full_name":"dotnet/machinelearning","private":false,"owner":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/dotnet/machinelearning","description":"ML.NET is an open source and cross-platform machine learning framework for .NET.","fork":false,"url":"https://api.github.com/repos/dotnet/machinelearning","forks_url":"https://api.github.com/repos/dotnet/machinelearning/forks","keys_url":"https://api.github.com/repos/dotnet/machinelearning/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/machinelearning/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/machinelearning/teams","hooks_url":"https://api.github.com/repos/dotnet/machinelearning/hooks","issue_events_url":"https://api.github.com/repos/dotnet/machinelearning/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/machinelearning/events","assignees_url":"https://api.github.com/repos/dotnet/machinelearning/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/machinelearning/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/machinelearning/tags","blobs_url":"https://api.github.com/repos/dotnet/machinelearning/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/machinelearning/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/machinelearning/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/machinelearning/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/machinelearning/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/machinelearning/languages","stargazers_url":"https://api.github.com/repos/dotnet/machinelearning/stargazers","contributors_url":"https://api.github.com/repos/dotnet/machinelearning/contributors","subscribers_url":"https://api.github.com/repos/dotnet/machinelearning/subscribers","subscription_url":"https://api.github.com/repos/dotnet/machinelearning/subscription","commits_url":"https://api.github.com/repos/dotnet/machinelearning/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/machinelearning/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/machinelearning/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/machinelearning/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/machinelearning/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/machinelearning/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/machinelearning/merges","archive_url":"https://api.github.com/repos/dotnet/machinelearning/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/machinelearning/downloads","issues_url":"https://api.github.com/repos/dotnet/machinelearning/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/machinelearning/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/machinelearning/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/machinelearning/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/machinelearning/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/machinelearning/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/machinelearning/deployments","created_at":"2018-05-03T16:20:42Z","updated_at":"2019-01-04T02:31:47Z","pushed_at":"2019-01-04T05:42:39Z","git_url":"git://github.com/dotnet/machinelearning.git","ssh_url":"git@github.com:dotnet/machinelearning.git","clone_url":"https://github.com/dotnet/machinelearning.git","svn_url":"https://github.com/dotnet/machinelearning","homepage":"https://dot.net/ml","size":33564,"stargazers_count":4707,"watchers_count":4707,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":891,"mirror_url":null,"archived":false,"open_issues_count":403,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":891,"open_issues":403,"watchers":4707,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013"},"html":{"href":"https://github.com/dotnet/machinelearning/pull/2013"},"issue":{"href":"https://api.github.com/repos/dotnet/machinelearning/issues/2013"},"comments":{"href":"https://api.github.com/repos/dotnet/machinelearning/issues/2013/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/machinelearning/pulls/2013/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/machinelearning/statuses/54a8856d3349181f38f05f558c66c785be651193"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"TomFinley"}}