Learn ML.NETのGet started in 10 minutesをやってみた
某氏と話していて「ML.NETいけるんじゃね?」(←だいぶ省略)と興味が湧いてきたのだが、Machine Learningよくわからないマンなので、、、
とりあえず、Get startedがあったので、Windowsでやってみました。
- Visual Studioをインストール → VS2019 16.2.3
- ML.NET Model Builder拡張をインストール → 16.0.1908.1402
- コンソールアプリ(.NET Core)プロジェクトを新規作成 → このときにソリューションとプロジェクトを同じディレクトリに配置しないこと
- プロジェクトにMachine Learningを追加 → Sentiment Analysisを選択
Time to trainの時間内に、さまざまなModelを試すみたい。
10秒
30秒
60秒
最後にCodeを選択すると、自動的にソリューションにプロジェクトが2つ追加されました。
ML.NET Model BuilderでTrainして、その結果がmyMLAppML.Modelライブラリとして生成されているようです。
で、myMLAppML.Modelライブラリを利用して推論するサンプルアプリがmyMLAppML.ConsoleAppアプリ。
myMLAppML.ConsoleAppアプリのProgram.csを見ると、
MLContext mlContext = new MLContext(); ITransformer mlModel = mlContext.Model.Load(GetAbsolutePath(MODEL_FILEPATH), out DataViewSchema inputSchema); var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel);
で、MODEL_FILEPATHからpredEngineを生成して、
ModelInput sampleData = CreateSingleDataSample(mlContext, DATA_FILEPATH); ModelOutput predictionResult = predEngine.Predict(sampleData);
で、ModelInputをpredEngineに通してModelOutputを得ています。
MODEL_FILEPATHはMLModel.zipを指しており、これが学習済みモデルのようです。
MLModel.zipの中身は、
なんだろ?
ML.NETのクラスをシリアライズした感じなのかな?
Visual Studioさえ入っていれば、VS拡張でササッとできてお手軽でした。