2018/09/22(土)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に変更してビルドしたら大量のエラー。
メゲメゲ(^^;)。
0.6.0-preview-26912-3を取得する方法が判明。英語ですがもろそのもの。
nugetじゃなくてmygetしろと。nugetツールにパッケージソースを追加する方法で無事0.6.0-preview-26912-3を取得できました。
ところが実行すると全く同じエラー。
仕方なくメッセージを読むとtensorflow.dllもしくはその依存関係が見つかっていない。
dllがちゃんとあるかどうか確認しようとしたら、プロジェクト内にnuget関連のdllが一つもなし。
調べたらユーザーフォルダにマイドキュメント等と並んで.nugetフォルダが存在しその中にありました。
プロジェクトをいじったり別のパッケージを入れようとしたり穢れている気がしたのでnugetのキャッシュのクリアを試しました。
改めてダウンロードしたプロジェクトを解凍するところから始めましたが、結局同じエラー。
何か手順がもれているのか、環境(Win7 64bit)のせいなのか。
まあ時間が解決してくれると思うので待ちます。