ML.netでModel Builderを使ってみる その4
昨日のコード、そのままコンパイルします。
特に問題が無いと思いたいのですが、どうでしょうか。
C#のクラスライブラリー、ModelBuilder.csにコンパイルエラーが発生します。
致命的なエラーなのかなと思いましたが、特に問題無さそうです。
以下のように修正しておきました。
なんてお手軽な問題なんでしょうか。
//FileInfo _dataRoot = new FileInfo(typeof(Program).Assembly.Location);
FileInfo _dataRoot = new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location);
再度、コンパイルして実行してみます。
動き出して数秒後、例外エラーが発生します。
いいね、こういう問題、どんとこい。
例外が出るのは良いことですが、内容が問題です。
DllNotFoundException: DLL 'tensorflow' を読み込めません:指定されたモジュールが見つかりません。 (HRESULT からの例外:0x8007007E)
なんでtensorflowが動かないのか。
この手のエラー、tensorflow.dllが必要とする、何かしらのDLLが足りない模様です。
もしかして、以前に悩んでいたサンプルソースコードそのものが動作しない問題、根っこは同じなのかも知れません。
こういう時、tensorflowとdllでインターネット検索してみます。
おそらく、tensorflowをWindowsで使っている人のアドバイスがありそうです。
日本語のtensorflowのページ、よく見ると怪しい記述あります。
https://www.tensorflow.org/install/source_windows?hl=ja
Visual C++ Build Tools 2019 をインストールします。これは Visual Studio 2019 に付属していますが、別々にインストールすることもできます。
Visual Studio のダウンロード サイトに移動します。
[再頒布可能パッケージおよびビルドツール] を選択します。
以下をダウンロードしてインストールします。
Microsoft Visual C++ 2019 再頒布可能ファイル
Visual Studioを使っているのにMSVC++ 2019のDLLが無いんかいと思いました。
そして、私が使っているVisual Studioは2017だったのです。
Microsoft Visual C++ 2019 再頒布可能ファイルの64ビット版をダウンロードしてインストールしました。
PCを再起動して、もう一度プログラムを実行します。
プログラムの最後まで実行して、例外エラー発生しました。
アプリケーションにコンソールがないとき、またはコンソール入力がファイルからリダイレクトされているとき、キーを読み取ることはできません。Console.Read を使用してください。
この例外エラーはコンソールからの入力部分なので、実際にプログラムを作る段階では問題になりません。
ついにVB.netからC#のクラスライブラリーを利用し、機械学習を利用して画像判定が出来るようになったのです。
Microsoft Visual C++ 2019 再頒布可能ファイルの64ビット版が問題だったとは。
この情報、他では見かけないので、とても貴重な情報だと思います。
#学習 #勉強 #AI #機械学習 #プログラミング #Visual #CSharp #BASIC #ソースコード #Windows #自動判定
#画像 #判定 #検査