1. ホーム
  2. c++

[解決済み] InitGoogleLogging "は何をするものですか?

2022-02-14 12:15:37

質問

を改造しています。 C++プログラム例 にあるこのコードに気づきました。 234行目 というのがありますが、これはもう参照されていないようです。

::google::InitGoogleLogging(argv[0]);

提供された引数は、私が呼び出している深層学習モデルのパラメータを定義しているprototxtファイルです。混乱するのは、この行からの結果がどこに行くのか、ということです。もし私がprototxtファイルで間違いを犯すと、プログラムがクラッシュしてしまうので、それらが最終的にプログラムで使われることは知っています。しかし、データが分類タスクを実行するクラスにどのように渡されるのかがわかりません。

どのように解決するのですか?

まず最初に argv[0] ではない は、実行ファイルに渡す最初の引数ではなく 実行ファイル名 . つまり、あなたは ::google::InitGoogleLogging は実行ファイル名であって、prototxtファイルではありません。
'glog' モジュール (google logging) が出力するログエントリを装飾するためにこの名前を使用しています。

次に、caffeはgoogle logging ( 別名 'glog' ) をロギングモジュールとして使用するため、このモジュールはcaffeの実行時に一度だけ初期化される必要があります。そのため、このような

::google::InitGoogleLogging(argv[0]);

をあなたのコードに追加してください。