20 lines (20 with data), 2.6 kB
B
Y®eN ã @ sh d dl Z d dlmZ d dlm mZ d dlmZ G dd deZdd Z dd Z
G d d
d
ejZdS )é N)ÚFunctionc @ s e Zd ZdZdd Zdd ZdS )Ú DiceCoeffz"Dice coeff for individual examplesc C sl | ||¡ d}t | ¡ d¡| ¡ d¡¡| _t |¡t |¡ | | _d| j ¡ | | j ¡ }|S )Ng-Cëâ6?éÿÿÿÿé ) Úsave_for_backwardÚtorchÚdotÚ
contiguousÚviewÚinterÚsumÚunionÚfloat)ÚselfÚinputÚtargetÚepsÚt© r ú@/Users/hanxuegu/Documents/Documents/bone/bone_paper_codes/dsc.pyÚforward s "zDiceCoeff.forwardc C sV | j \}}d }}| jd r@|d || j | j | j| j }| jd rNd }||fS )Nr r é )Úsaved_variablesÚneeds_input_gradr
r )r Úgrad_outputr r Ú
grad_inputZgrad_targetr r r Úbackward s
$
zDiceCoeff.backwardN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r r r r r r r s r c C sj | j rt d¡ ¡ ¡ }nt d¡ ¡ }x4tt| |D ]"\}}|t |d |d ¡ }q8W ||d S )zDice coeff for batchesr r ) Úis_cudar ÚFloatTensorÚcudaÚzero_Ú enumerateÚzipr r )r r ÚsÚiÚcr r r Ú
dice_coeff"