# [34th place] My first silver solution :P

First of all, thanks a lot to the hosts for organizing such an interesting competition! Also, congrats to all the participants, especially to the winners.
Thanks to
[@shonenkov](https://www.kaggle.com/shonenkov)
with his fantastic kernel
[here](https://www.kaggle.com/shonenkov/train-inference-gpu-baseline)
, I (and maybe many others) had a great approach to the problem. I mainly used his kernel as baseline of my solution, with some modification. Here are details.
Augmentation
Horizontal + vertical flip
Rotate 90
Cutout
Crop + padding
From my understandings, when applying DCT changes, the errors will be spread along all the pixels. We use DL model to catch those changes in the pixel domain. So, any augmentation without interpolation (by interpolation I mean some image processing like resize, rotate non-90, etc) can be used (discussion).
Modeling
I've tried quite a few backbone for this competition:
Se-ResNeXt, DenseNet, NASNet, etc. They might work as well, but converge very slowly in comparison to EfficientNet
EfficientNet B3, B4, B5 (B6, B7 or B8 seem forever for me :((… ). They worked quite well!
I used 2 kinds of input: RGB and YCrCb. Their performance are toe to toe to each other, but together they boost my score.
Optimizer: RAdam along with Lookahead
Inference
TTAx8: flip + transpose
Weight ensemble: 7 models, comprise of B3, B4, B5 with RGB, YCrCb input:
------------------------------------
EfficientNet-B3 RGB, YCrCb, fold 0
EfficientNet-B3 RGB, whole dataset
EfficientNet-B4 RGB, YCrCb, fold 4 
EfficientNet-B5 RGB, YCrCb, fold 2
------------------------------------
Result
My best single model score: 0.92
My best ensemble score: 0.924
I will update this post if I remember something interesting to share. Thank you all again!