0

I am using a Convolutional Neural Network and I am saving it and loading it via the model serializer class.

What I want to do is to be able to come back at a later time and continue training the model on new data provided to it.

What I am doing is I load it using ComputationGraph net = ModelSerializer.restoreComputationGraph(modelFileName);

and then I give it the data like before with net.train(dataSetIterator);

This seems to work, but it makes my accuracy really bad. It was about 89% before I did this, and, using the same data, it gets to be around 50% accurate after a few iterations (using the same data it just trained itself on, so if anything it should be getting stupidly more accurate right?).

Am I missing a step?

1 Answers1

0

I think it'll be difficult to answer based on the information given, but I'll give you an example. I had this exact problem. I had based my app on the GravesLSTMCharModellingExample (which is LSTM). I had saved my model after running for a couple of epochs (at which point it generated legible sentences), but when loading it, it produced garbage. I thought everything was the same, but in the end it turned out I didn't initialize the CharacterIterator the same. When I fixed it, it worked as expected.

So to cut a long story short; Check your values when initializing the auxiliary classes.

reden
  • 968
  • 7
  • 14