2016-07-29 3 views
0

신경망 예제에서 dlib를 사용하고 있습니다.dlib mlp :: kernel_1a_c 클래스 내부 멤버 초기화

오류 : 'dlib :: mlp_kernel_c :: mlp_kernel_c()

나는

을 초기화하기 위해 노력하고 있어요 "로 호출 일치 기능 dlib neural network

나는 오류를 얻을 mlp :: kernel_1a_c net (2,5); "

변수는 클래스 내에 있지만 모든 종류의 오류가 발생합니다. 여기에 내 문제에 코드 관련 의 조각 :

private: 
    mlp_trainer_type mouth_neural_network_(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 

내가 할 경우에도 작동하지 않습니다. 어떻게이 문제를 해결할 수 있습니까? 나는 전역 변수를 원하지 않는다.

또한 dlib의 SVM 라이브러리를 사용하며 클래스 내에서 작동합니다. 그것은 작동하지 않는 MLP입니다.

오늘은 신경 개인 변수가 포함될 때까지 dlib의 SVM을 사용하여 프로그램이 작동했습니다.

+0

링크 문제보다 C++ 구문이 더 많은 것으로 보입니다. 난 그냥 그것을 초기화하는 적절한 방법을 알아낼 수 없습니다. – Pototo

답변

1

mlp_kernel_c을 (를) 사용하려는 클래스에 기본 생성자가 없습니다. 생성자 본문을 입력하기 전에 멤버 변수를 초기화해야합니다.

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

S ***. 그건 까다 롭습니다. 나는 적어도 하나의 constructure를 가진 클래스를 만드는데 익숙하다. 그래서 나는 전에이 에러를 본 적이 없었다. – Pototo

+0

하지만 잠깐 ... 기본 구성이 있습니다. 이유는 위의 구문을 초기화 목록에서 비 정적 데이터 멤버를 초기화 할 수 있기 때문에 작동합니다 – Pototo

관련 문제