possibly fixed crash boost caused by the recent modification; slightly improved mlp params in letter_recog sample

pull/2/head
Vadim Pisarevsky 13 years ago
parent e86f0aaea1
commit 1e14d84008
  1. 2
      modules/ml/src/boost.cpp
  2. 15
      samples/cpp/letter_recog.cpp

@ -1250,7 +1250,7 @@ CvBoost::update_weights( CvBoostTree* tree )
if( have_subsample ) if( have_subsample )
{ {
float* values = (float*)cur_buf_pos; float* values = (float*)cur_buf_pos;
cur_buf_pos = (uchar*)(values + data->buf->step); cur_buf_pos = (uchar*)(values + data->buf->cols);
uchar* missing = cur_buf_pos; uchar* missing = cur_buf_pos;
cur_buf_pos = missing + data->buf->step; cur_buf_pos = missing + data->buf->step;
CvMat _sample, _mask; CvMat _sample, _mask;

@ -437,13 +437,20 @@ int build_mlp_classifier( char* data_filename,
cvMat( 1, (int)(sizeof(layer_sz)/sizeof(layer_sz[0])), CV_32S, layer_sz ); cvMat( 1, (int)(sizeof(layer_sz)/sizeof(layer_sz[0])), CV_32S, layer_sz );
mlp.create( &layer_sizes ); mlp.create( &layer_sizes );
printf( "Training the classifier (may take a few minutes)...\n"); printf( "Training the classifier (may take a few minutes)...\n");
mlp.train( &train_data, new_responses, 0, 0,
CvANN_MLP_TrainParams(cvTermCriteria(CV_TERMCRIT_ITER,300,0.01),
#if 1 #if 1
CvANN_MLP_TrainParams::BACKPROP,0.001)); int method = CvANN_MLP_TrainParams::BACKPROP;
double method_param = 0.001;
int max_iter = 300;
#else #else
CvANN_MLP_TrainParams::RPROP,0.05)); int method = CvANN_MLP_TrainParams::RPROP;
double method_param = 0.1;
int max_iter = 1000;
#endif #endif
mlp.train( &train_data, new_responses, 0, 0,
CvANN_MLP_TrainParams(cvTermCriteria(CV_TERMCRIT_ITER,max_iter,0.01),
method, method_param));
cvReleaseMat( &new_responses ); cvReleaseMat( &new_responses );
printf("\n"); printf("\n");
} }

Loading…
Cancel
Save