bonlime / pytorch-tools

Tool box for PyTorch
MIT License
186 stars 16 forks source link

Организация loss функций #12

Closed zakajd closed 5 years ago

zakajd commented 5 years ago

Аннотацию типов нужно убрать потому, что она не нужна и отсутствует в остальном коде, с этим я согласен.

Зачем разносить лоссы по разным файлам и при этом всё равно иметь общий файл с их реализацией?

bonlime commented 5 years ago

Это совершенно нормальная практика. Таким образом у тебя не смешиваются реализцаии разных лоссов, но в то же время конечному пользователю на это пофиг, потому что они все импортируются в __init__.py и можно (считай рекомендуется) писать from pytorch_tools.losses import BinaryDiceLoss

bonlime commented 5 years ago

@zakajd Предлагаю завести для метрик отдельный модуль и так его и назвать metrics вместо того чтобы запихивать все в utils.metrics. Как минимум в метрики можно добавить

  1. Dice score
  2. Jaccard score
  3. Accuracy@k
  4. PSNR и SSIM Мне не очень нравится вариант вызывать метрики через calculate_ssim. Предлагаю сделать такой же интерфейс через классы как сейчас есть в losses
zakajd commented 5 years ago

Ты хочешь весь файл functional из папки loss перенести?

bonlime commented 5 years ago

Нет. Можно просто в модуле metrics внутри импортить что-то из losses.functional

bonlime commented 5 years ago

@zakajd Перепиши JoinLoss чтобы он принимал любое количество метрик и весов и можно будет закрыть этот issue

zakajd commented 5 years ago

Готово