Hi Mike!



 mkmitchell:

…
I do a little augmentation in the form of setting no data to a specific values in my channels and in my mask.  I also normalize my data.  I do this for ALL tiles (training, validation, and test).
…
To run my “production” model I’ve written another script that does tiling, a little augmentation described above (no data removal and normalization), applies the model, then outputs the prediction to a tile.  I merge all tiles and it’s done.
I figured I could feed this production model classification script one of my initial satellite images and I should get pretty good results.  This is where I’m getting 60% accuracy.  As I would imagine, and you said, it should be much higher.  Maybe I need to dig into my classification script more.


Well, as you say, since your classification script is separate from
your training script, it would certainly make sense to check that no
outright error has crept into  one or the other.
You do, however, say one thing that caught my eye.  You normalize
your training (and test) data, but you don’t normalize your data in
the classification script.  I could well believe that training on
normalized data would give you a model that performs much less
well on unnormalized data.  (Without seeing your data or how you
normalize I don’t really have an expectation one way or the other,
but it wouldn’t surprise me for this to be the issue.)
(The same comments apply to the “data removal” you mentioned.)
By the way, there’s nothing the matter with having your final
production classification pipeline start with a normalization step
so that it matches how you did your training.  If normalization
helps you train your model, I would normalize the production
data to be classified, as well.
Best.
K. Frank