# 62th Solution: 5.19 MB ResNet18 2D to 3D UNet , 0.740/0.735

References
[[lb0.748] experiment resuts on cyroET foundation model build with synthetic data](https://www.kaggle.com/competitions/czii-cryo-et-object-identification/discussion/545221)
[if you are stuck below the benchmark.csv, read this!](https://www.kaggle.com/competitions/czii-cryo-et-object-identification/discussion/547350)
[Has Anyone Been Successful With Anything But Denoised Data?](https://www.kaggle.com/competitions/czii-cryo-et-object-identification/discussion/555247)
[Does anyone have results with the 10441 external dataset works?](https://www.kaggle.com/competitions/czii-cryo-et-object-identification/discussion/556103)
Thanks to autors for their insights.
[Training](https://www.kaggle.com/code/sacuscreed/czii-2dto3d-exp)
7 fold CV with experimental data only (0.808)
Normalization between 1 and 99 percentiles
64x128x128 voxels with hard masks at .5 particle radius
Augmentations: yz Rot90, contrast, brigthness and yz flips
Loss: Unweighted
[Zhang Shuai](https://github.com/shuaizzZ/Dice-Loss-PyTorch/blob/master/dice_loss.py)
Dice Loss. It has a small bug on weights implementation (the multiplication should be outside dtype check).
This initially led to 0.741/0.733, one more epoch of
[fine tune](https://www.kaggle.com/code/sacuscreed/czii-2dto3d-ft)
with weights [2,1,2,1,2,1] led to 0.740/0.735 (I'm not sure what to think about that)
[Inference](https://www.kaggle.com/code/sacuscreed/czii-submission-2dto3d)
A rotatory scan through the seven folds of 64x640x640 voxels each 16 slices so overlaps get 1,2,3,4,4,3,2,1 different rotation readings.
What didn't worked
[Synthetic data](https://www.kaggle.com/code/sacuscreed/czii-2d-to-3d-synthetic-data-pretraining)
[Denoise synthetic data](https://www.kaggle.com/code/sacuscreed/czii-synth-denoiset)
by training DenoisET that feeds freezed models already trained on experimental data.
[Synthetic denoised data with real masks](https://www.kaggle.com/code/sacuscreed/czii-realmask-2dto3d-synth)
[Home made](https://www.kaggle.com/code/sacuscreed/czii-2d-to-3d-homemade-data-training)
data by folding different small voxels into a bigger one masking inter-voxel particles
Augmentations: Fliping z or omelette rotation and free yz rotations
Pseudo relabel some false positives as positives trying to emulate beta at same time than correct possible wrong annotations
Post processing: Filter by voxel_counts or discriminate false positves
[Try to emulate F-Beta metric in loss](https://www.kaggle.com/code/sacuscreed/translating-metric-into-a-loss)
Final Curiosity
I knew the data was already highly standardized, but that surprised me.
![](assets/949c0b9f64834795147d1eb5.png)