0

There are 350 samples for each of 50 letters. Neural network has 3 layers. Input layer 400(20*20 images), hidden 200 and output 50. The training parameters I've used are:

max_steps = 1000
max_err = 0.000001

condition = cv2.TERM_CRITERIA_COUNT | cv2.TERM_CRITERIA_EPS

criteria = (condition, max_steps, max_err)

train_params = dict(term_crit = criteria, 
              train_method = cv2.ANN_MLP_TRAIN_PARAMS_BACKPROP, 
              bp_dw_scale = 0.1, 
              bp_moment_scale = 0.1)

What are the the optimal values I can use for this situation?

sope
  • 86
  • 2
  • 9

1 Answers1

1

I fear you'll have to choose them manually by trial & error.

These values depend on lots of factors and, as far as I know, there's no formula to compute them. When I start training a new ANN, I just run it over and over again changing these parameters slightly each time.

ForceBru
  • 43,482
  • 10
  • 63
  • 98
  • Isn't there at least a way to narrow down the range of values for each? – sope Feb 28 '16 at 17:59
  • @sope, with backpropagation - I'm not aware of any. You can use [BFGS](https://en.wikipedia.org/wiki/Broyden–Fletcher–Goldfarb–Shanno_algorithm), it could perform better. – ForceBru Feb 28 '16 at 18:04