caffe.protoで変数を定義すると「'xxxParameter'has no member named'xxx'」という問題の解決
847 ワード
caffe.protoのメッセージにメンバー変数を追加する場合は、大文字は避けたほうがいいです.コンパイル中にmessageのメンバー変数名が自動的にすべてのアルファベットを小文字にします.C++コードで大文字の変数がまだ使用されている場合、定義が見つからないという問題が発生します.
たとえば、caffe.protoのAccuracyParameter定義:
C++コードでは次のように使用されます.
「AccuracyParameter」has no member named'top_K’の問題.この場合、正しい方法は次のとおりです.
違いは変数名の大文字と小文字の問題です.
たとえば、caffe.protoのAccuracyParameter定義:
optional uint32 top_K = 1 [default = 1]; //K
C++コードでは次のように使用されます.
this->layer_param_.accuracy_param().top_K(); //K
「AccuracyParameter」has no member named'top_K’の問題.この場合、正しい方法は次のとおりです.
this->layer_param_.accuracy_param().top_k(); //k
違いは変数名の大文字と小文字の問題です.