Not getting enough accuracy
When I tried to train on the whole dataset which of almost 20Gb's then I ran out of Memory! so I split the dataset into 4 batches each contain 26600 images i.e 26600 + 26600 + 26600 + 26586 = 106,386. And so I have to split the dataset into 4 batches and make a slight adjustment in the code.
To load the save model with trained weights from the previous batch I use the keas load_weight() method. Here, I'm working on cnn.py for all 5 classes
model.add(Dense(nb_classes, activation = 'softmax')) model.summary() model.load_weights(model_name + '.h5' ) model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
When I train on the first batch which contain 26600 images I got
loss: 1.0042 - acc: 0.6248 - val_loss: 1.0625 - val_acc: 0.6029
For the second batch of 26600 images I got
loss: 0.9026 - acc: 0.6563 - val_loss: 1.1008 - val_acc: 0.6114
For the third batch of 26600 images I got
loss: 0.8860 - acc: 0.6666 - val_loss: 0.9988 - val_acc: 0.6330
For the fourth batch of 26586 images I got
loss: 0.8227 - acc: 0.6888 - val_loss: 1.0289 - val_acc: 0.6356
Question 1: If you see there is not a much significant change in the score. Can you identify where's the problem is occurring? If you want then I can provide you the code which I have slightly altered from the original.
Question 2: As I have split the dataset into individual .npy arrays could this be a reason for not seeing much improvement in the score?
Question 3; In your video you train on Floydhub. Have you trained on the whole dataset on Floyd? Or you go for AWS for GC? Because when I try to load the whole 20Gb's array into 61Gb's RAM then I got MemoryError
Question 4: I think you followed VGG arch but the VGG contain more layers then you have used in cnn.py OR cnn_multi.py could it be the reason that model is not extracting enough feature to learn?
Question 5: When I try to train the cnn.py for binary classification on the first batch which contains 26600 images then I got the 99% accuracy after epoch which shows that model is obviously overfitting. Again, As I have split the dataset into individual arrays could this be the reason for getting 99% accuracy? How can I solve this problem? And how can I achieve the result you showed in the video?
O/p after first epoch using binary classification :
loss: 0.0088 - acc: 0.9934 - val_loss: 8.1185e-05 - val_acc: 1.0000
Question 6: Do you still have that project on Floyd? Can you provide the link? so that I can identify what changes I have to make in order to achieve the output you showed in the video
Thanks! Please do answer Sir! :)