2016-07-29 7 views
0

私はニューラルネットワークの例でdlibを使用しています。 dlib neural networkdlib mlp :: kernel_1a_cクラス内のメンバの初期化

私はエラーを取得する:

エラー:「DLIB :: mlp_kernel_c :: mlp_kernel_c(への呼び出しに該当する機能)

私は「

を初期化しようとしていますmlp :: kernel_1a_c net(2,5); "

クラス内の変数ですが、すべての種類のエラーが発生します。ここに私の問題に関連するコードの作品は次のとおりです。

#ifndef MYCLASS_H 
#define MYCLASS_H 
#include <dlib/mlp.h> 
typedef dlib::mlp::kernel_1a_c mlp_trainer_type; 
Class MyClass: 
public: 
    MyClassConstructure() 
    { 
    /// After declaration, how do I initialize my_neural_network_ here? 
    // my_neural_network_(5, 5); ???? 
    } 
private: 
    /* this part fails, even without using the typedef. */ 
    mlp_trainer_type mouth_neural_network_; 
#end 

私がそうしても動作しません。

private: 
    mlp_trainer_type mouth_neural_network_(2,5); 

それとも私が宣言して、パブリック変数として定義した場合。 この問題を解決するにはどうすればよいですか?グローバル変数は必要ありません。

また、私はdlibのSVMライブラリを使用しています。これは私のクラスの中で動作します。 MLPだけで動作しません。

このプログラムは、今日私がその神経固有変数を含むまで、dlibのSVMを使って機能しました。

+0

リンクの問題よりもC++構文のほうが多いようです。私はちょうどそれを初期化するための適切な方法を理解できません。 – Pototo

答えて

1

mlp_kernel_cを使用しようとしているクラスには、デフォルトのコンストラクタがありません。

MyConstructor() : mouth_neural_network_(2,5) 
{ 
    //Other stuff 
} 
+0

S ***。それは難しいものでした。私は少なくとも1つの構造を持つクラスを作成するのに慣れているので、以前はこのエラーを見たことがなかった。 – Pototo

+0

しかし、待って...それはデフォルトの構造を持っています。その理由は、上記で示唆した構文である、初期化リスト内の非静的なデータメンバーのみを初期化できるからです – Pototo

関連する問題