Я очень плохо знаком с 3D-изображениями, мне полностью удалось сделать 2d unet в КТ, но 3d unet сложнее. Я не до конца понимаю все концепции, но мне удалось получить 4,7 балла за изучение f1, но он застрял на данный момент. 2D Unet получил лучшие результаты.
- скорость обучения составляет 0,0001
- Оптимизатор Адама
- Модель из (https://github.com/ellisdg/3DUnetCNN/blob/master/unet3d/model/unet.py)
- глубина = 5
- n_base_filters = 32
- размер ванны = (64,64,64)
- изменение размера = (256,256)
- Softmax для мультикласса
- metri c f1_score
- loss loss.cce_dice_loss (metri c и loss from https://github.com/qubvel/segmentation_models) Я не знаю, работает ли это для 3D. Я использовал это, потому что потери от модели создателя не менялись за тысячи шагов.
- Формы изображения (размер партии, канал, X, Y, Z), (1,1256,256, переменная)
Мое предположение заключается в том, что я повторно сэмплировал результаты КТ-сканирования в (1,1,1), а затем преобразовал изображения КТ в единицы Хаунсфилда, используя это руководство https://www.kaggle.com/gzuidhof/full-preprocessing-tutorial.
Теперь то, что я не получаю, это то, что является входом в сеть, что я сделал, я изменил размер изображения до (256,256), затем я выбрал партии (64,64,64), эта плитка переместить x, y, z. Поскольку z - переменная, пользовательский генератор обычно обрезает конец CT, что не проблема, потому что мой интерес - к первой и средней части CT (я мог бы использовать заполнение, чтобы исправить это). Это проблема от моего изменения размера или повторной выборки. Кроме того, это может быть потеря. Может ли кто-нибудь помочь спасибо.