-1

I've been training a convolutional network with 7 learnable layers for about 20 hours. What are some general ways to tell if the network has converged or still needs training?

Here's a histogram of the parameters of the first convolutional layer:

enter image description here

Here's a graph of the loss and accuracy of the training and test set:

enter image description here

rodrigo-silveira
  • 12,607
  • 11
  • 69
  • 123
  • You can get an idea by plotting training and validation/test loss. Train your model until the distance between two graph is decreasing or constant but when it starts increasing, you should stop it. – Tushar Gupta Dec 07 '17 at 09:36

1 Answers1

1

Obviously while you are getting score rising (train and test) it's meaning you on the right way and you are going to local/global minimum. When you'll see changing of direction score moving (traing still going down, test going up) or both scores go in stagnation, then it's time to stop.

BUT

While you are using accuracy as metric of evaluating you can just get anomal behavior of model. for ex: all result of network output would be number of most valuable classes. Explanation. This problem can be solved by using another metric of evaluating like f1, logloss and so on and you'll see any problems on learning period.

Also for imbalanced data you can use any strategies for avoiding negative effects of imbalance. Like weights in softmax_cross_entropy in tensorflow. Implementation you can find there.

Anton Alekseev
  • 542
  • 8
  • 18