@yinterian I am also unable to predict using your code, get error:
TypeError: āNoneTypeā object is not iterable
After reading what worked for @hiromi have also deleted the folder in data/dogscats/temp and tried afterwards but no luck.
Apart of setting correct test name in ImageClassifierData.from_paths( ⦠test_name = ācorrect_test_nameā )
and deleting temp folder after training, is there any obvious thing to do?
In my case the same error was caused by corrupted preprocessed validation/test set. Restarting notebook did not help. I changed image size a bit and create data object once again.
The tmp file holds the precomputed activations. Most likely the first time you ran your code you didnāt use a test folder. Therefore you had precomputed activations for train and validations. The second time you ran it with a test folder but the library didnāt realized (there is a TODO) that it had to compute the test activations so it didnāt find the test activations gave you an error.
Any idea where I can find good amount of satellite data which I can use to train a whole network then fine tune as in transfer learning for iceberg challenge.
This paper (https://arxiv.org/pdf/1704.02965.pdf) has suggestions for aerial imagery benchmark datasets. They also suggest generating datasets from the Google Maps API.
My approach for this competition might include using a Generative Adversarial Network to generate more training data.
@sermakarevich Great work! Iām also working on this comp and my accuracy levels looks good on train/valid sets but when I run the predictions with test_preds = learn.predict(is_test=True) the values I get are all negative. My original assumption was that the value closest to 0 (i.e. np.argmax) was the the one with the highest probability. But, for softmax Iām used to the values being probabilities between 0 and 1 (with probs for all possible classes adding up to 1) and I think that is the format that Kaggle is looking for so just wondering how did you get the probabilities?
And always check data.classes before submitting, itās ordering alphabetically I assume using sorted function. So, iceberg will be 0 and ships will be 1. Another thing to keep on mind. Hope this also helps.
@sermakarevich I also started working on dog breed competition but I am unable to get lesser than 0.55 loss on validation set(~2000 images). As of now, I have only tried resnet34. But it seems that validation loss has saturated and stopped reducing beyond 0.55. I started with learning rate of 0.1 based on lr_find and gradually moved to cyclical rate with data augmentation and unfrozen earlier layers. Earlier I trained the network with just 2-3 epochs and stopped as I could see training and validation loss diverging. But to test the capability of model, I ran for 10 epochs and could see the training loss reduced to 0.09 ā sign of clear overfitting. The network so far has achieved 82.6 % accuracy on validation set. What was the accuracy that you could achieve using any of the resnet models?
Thanks that worked great for getting the probabilities! But my kaggle score is crazy low so I think there is some other issueā¦Iāll keep investigating.
@yinterian It looks like the training labels are not being one-hot encoded when I use ImageClassifierData.from_csv.
If I look at whats getting returned from csv_source it should be fnames,y,classes but when I look at y it is just the index of the class not one-hot encoded which it should be according to this label_arr = nhot_labels(label2idx, csv_labels, fnames, len(all_labels))
Thanks @jeremy for clarifying, in that case I donāt know why my test preds are so bad lol I was getting over 94% on training/validation. Iāll dig into it furtherā¦