2018/09/22(土)ML.NET 0.5でディープラーニング

そういえばその後ML.NETはどうなった?と思って調べたらいつの間にか0.5になっていました。
C#でTensorFlowを使ったディープラーニングが可能になってました。
サンプル(TensorFlowのサンプルは samples / csharp / examples / DeepLearning_TensorFlowMLNETInceptionv3ModelScoring / )が公開されているのでダウンロードし試してみようとしたら、NU1102エラーが出てNugetで失敗します。
未公開のML.NET 0.6.0-preview-26912-3が参照されているので、パッケージマネージャで
PM>  Install-Package Microsoft.ML -Version 0.6.0-preview-26912-3 
しても404エラー。
プロジェクトファイルを直接編集して0.6.0-preview-26912-3を0.5.0に変えるとNugetは成功しますが、ビルドで下記のエラー。
'TensorFlowScorer' に 'OutputColumns' の定義がありません
定義にとんでいくとOutputColumnはあるけれどOutputColumnsはありません。
//OutputColumns = new[] { InceptionSettings.outputTensorName }
//↓
OutputColumn = InceptionSettings.outputTensorName
に変更してビルドしたら大量のエラー。
mldl020.png

メゲメゲ(^^;)。

0.6.0-preview-26912-3を取得する方法が判明。英語ですがもろそのもの。
nugetじゃなくてmygetしろと。nugetツールにパッケージソースを追加する方法で無事0.6.0-preview-26912-3を取得できました。
nugetprev010.png

ところが実行すると全く同じエラー。
仕方なくメッセージを読むとtensorflow.dllもしくはその依存関係が見つかっていない。
dllがちゃんとあるかどうか確認しようとしたら、プロジェクト内にnuget関連のdllが一つもなし。
調べたらユーザーフォルダにマイドキュメント等と並んで.nugetフォルダが存在しその中にありました。
tensorflow010.png

プロジェクトをいじったり別のパッケージを入れようとしたり穢れている気がしたのでnugetのキャッシュのクリアを試しました。
改めてダウンロードしたプロジェクトを解凍するところから始めましたが、結局同じエラー。
何か手順がもれているのか、環境(Win7 64bit)のせいなのか。
まあ時間が解決してくれると思うので待ちます。

2018/05/31(木)我が家のアヤメは本当にアヤメか?

iris_sanguinea2.jpg

我が家のアヤメです。乾いたところに生えているのでアヤメだと思っていますがハナショウブかカキツバタではなく間違いなくアヤメであることを確かめるため、機械学習で判定してもらおうと、ML.NETとiris-dataで検索したらオフィシャルにありました。

前回の続きなので既に環境は整っているので、.NET Coreのコンソールアプリを作成し、NuGetでMicrosoft.MLを追加。
iris-dataをダウンロードしてプロジェクトに追加し、プロパティを変更。
iris010.png


コードをコピペしてデバッグなしで実行。
すんなり動き、あとは休みの日に我が家のアヤメのサイズを測るだけ!どれがどれか分かりやすいように分類を日本語にと思ったら、「アヤメ」「カキツバタ」「ハナショウブ」ではなくどれもアヤメ??
Iris setosa:ヒオウギアヤメ
Iris versicolor:ブルーフラッグ
Iris virginica:?

ちょっとショック(^^;)。

2018/05/18(金)C#で機械学習(ML.NET)

ML.NETを使った感情分析のチュートリアルを試してみました。
AIに興味はありましたが、Pythonの環境どうしようかと迷ってたところなので、初めての機械学習です。

実行結果は全く同じ。
ml100.png

データもロジックも全く同じなら結果も全く同じ。
違ったら怖いけれどちょっと安心しました(^^;)。

基本、サンプルのページをコピペでペタペタしていくだけですが、はまったポイントが幾つか。

その1 ライブラリの追加

NuGetで Microsoft ML.NET を探せ、と書かれていますが検索窓にMicrosoft ML.NETと入れても出てきません。Microsoft.MLで検索すると直ぐに出てきます。
コメントにもあるので、修正されると思いますが。

その2 C#のバージョン

言語バージョン 7.1 以上をお使いくださいというエラーが出る。

その3 データファイルのパス

二つも上の階層に遡る必要ないでしょ、と思いパスを修正したらファイルが見つからないと怒られました。
netcoreapp2.0というフォルダの下にファイル(拡張子dll)ができてました。
(そういえば初めての.NET Coreアプリでもあります)
ml110.png

OK キャンセル 確認 その他