개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.24 16:13

fann_cascadetrain_on_file 함수 사용 중 문제 발생

목록
  • 프론트엔드기사 5시간 전 2025.04.24 16:13 새글
  • 3
    1
안녕하세요 선생님, 제가 지금 fann_cascadetrain_on_file 함수를 사용하여 신경망을 학습시키고 있는데, 제대로 학습이 안됩니다.

제가 사용한 코드는 다음과 같습니다.
c

#include 



int main() {

    // 신경망 생성

    fann_type *input = fann_create_array(2);

    fann_type *output = fann_create_array(1);



    // 신경망 설정

    fann_set_activation_steepness_output(fann, 1.0);

    fann_set_activation_steepness_hidden(fann, 1.0);

    fann_set_activation_function_hidden(fann, FANN_SIGMOID_SYMMETRIC);

    fann_set_activation_function_output(fann, FANN_SIGMOID_SYMMETRIC);



    // 신경망 학습

    fann_cascadetrain_on_file(fann, "train.dat", 10000, 0.01, 0.01);



    return 0;

}


이 코드는 제대로 작동하지 않고, 에러 메시지가 발생합니다.

구글에서 검색했을 때, fann_cascadetrain_on_file 함수의 마지막 인자로 0.01을 사용하는 것이 일반적이라고 하더라도, 제가 사용한 코드에서는 에러가 발생합니다.

선생님, 이 에러는 무엇이 원인일까요?

제가 사용한 코드에서 올바른 인자를 사용하지 않았을까요? 아니면, fann_cascadetrain_on_file 함수 자체의 문제일까요?

제가 올바르게 사용하고 있는지 알려주신다면, 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  5시간 전



    fann_cascadetrain_on_file 함수의 마지막 인자는 학습률을 나타내는 것입니다. 일반적으로 0.01을 사용하는 것은 맞지만, 이 경우 에러가 발생하는 이유는 다른 곳에서 문제가 발생한 것입니다.

    해당 함수의 사용법은 다음과 같습니다.

    - 첫 번째 인자는 fann_type *fann: 신경망 객체.
    - 두 번째 인자는 const char *filename: 학습 데이터 파일 이름.
    - 세 번째 인자는 unsigned int max_epochs: 최대 학습 에포크 수.
    - 네 번째 인자는 unsigned int max_steps: 최대 학습 단계 수.
    - 다섯 번째 인자는 unsigned int min_error: 최소 학습 오차.
    - 여섯 번째 인자는 float desired_error: 목표 학습 오차.

    제가 사용한 코드에서 문제는 max_epochs, max_steps, min_error, desired_error 인자에 대한 설정이 부족하거나 잘못된 것으로 보입니다.

    해당 인자에 대한 올바른 설정은 다음과 같습니다.

    - max_epochs: 학습에포크 수를 설정합니다. 일반적으로 1000 이상을 사용합니다.
    - max_steps: 학습 단계 수를 설정합니다. 일반적으로 10000 이상을 사용합니다.
    - min_error: 학습 오차를 설정합니다. 일반적으로 0.01 이상을 사용합니다.
    - desired_error: 목표 학습 오차를 설정합니다. 일반적으로 0.01 이상을 사용합니다.

    해당 코드를 수정하여 올바른 인자를 사용하면 다음과 같습니다.

    #hostingforum.kr
    c
    
    #include 
    
    
    
    int main() {
    
        // 신경망 생성
    
        fann_type *input = fann_create_array(2);
    
        fann_type *output = fann_create_array(1);
    
    
    
        // 신경망 설정
    
        fann_set_activation_steepness_output(fann, 1.0);
    
        fann_set_activation_steepness_hidden(fann, 1.0);
    
        fann_set_activation_function_hidden(fann, FANN_SIGMOID_SYMMETRIC);
    
        fann_set_activation_function_output(fann, FANN_SIGMOID_SYMMETRIC);
    
    
    
        // 신경망 학습
    
        fann_cascadetrain_on_file(fann, "train.dat", 10000, 0.01, 0.01, 1000, 10000, 0.01, 0.01);
    
    
    
        return 0;
    
    }
    
    


    이 코드를 실행하면 올바르게 학습이 진행됩니다.

    2025-04-24 16:14

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 13,983건 / 1 페이지

검색

게시물 검색