23 lines (23 with data), 2.5 kB
3
i`â Ń @ s4 d dl Zd dljjZG ddä dâZG ddä dâZdS )Ú Nc @ s e Zd ZdZddä ZdS )┌Dicez#
N-D dice for segmentation
c C sz t |jâ jâ âd }ttd|d ââ}dtj|| |â }tj|| |â}ttjdâr^tjj ntj
}tj|||ââ}| S )NÚ Ú ┌
divide_no_nan)┌len┌ get_shape┌as_list┌list┌range┌tf┌
reduce_sum┌hasattr┌mathr ┌
div_no_nan┌reduce_mean) ┌self┌y_true┌y_pred┌ndimsZvol_axes┌top┌bottomr Zdiceę r ˙../src/utils/losses.py┌loss
s z Dice.lossN)┌__name__┌
__module__┌__qualname__┌__doc__r r r r r r s r c @ s* e Zd ZdZd
ddäZddä Zdd ä ZdS )┌Gradz█
N-D gradient loss.
loss_mult can be used to scale the loss value - this is recommended if
the gradient is computed on a downsampled vector field (where loss_mult
is equal to the downsample factor).
┌l1Nc C s || _ || _d S )N)┌penalty┌ loss_mult)r r r! r r r ┌__init__ s z
Grad.__init__c C sÔ |j â jâ ddů }t|â}d g| }xÂt|âD ]¬}|d }|ft|ât|d |d âĽ}tj||â}|dd ůdf |d důdf }td|d âdt|d |d âĽ}|ftd|âdt|d |d âĽ}tj||â||<