[4cda31]: / utils / __pycache__ / losses.cpython-36.pyc

Download this file

23 lines (23 with data), 2.5 kB

3

i`âŃ@s4ddlZddljjZGddädâZGddädâZdS)ÚNc@seZdZdZddäZdS)┌Dicez#
    N-D dice for segmentation
    c	Cszt|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┌bottomrZdiceęr˙../src/utils/losses.py┌loss
sz	Dice.lossN)┌__name__┌
__module__┌__qualname__┌__doc__rrrrrrsrc@s*eZdZdZd
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).
    ┌l1NcCs||_||_dS)N)┌penalty┌	loss_mult)rr r!rrr┌__init__sz
Grad.__init__c	CsÔ|jâjâddů}t|â}dg|}xÂt|âD]¬}|d}|ft|ât|d|dâĽ}tj||â}|ddůdf|ddůdf}td|dâdt|d|dâĽ}|ftd|âdt|d|dâĽ}tj||â||<q0W|S)	Nrr.rÚ    r#)r)r)rrrr
┌K┌permute_dimensions)	r┌yZ	vol_shaper┌df┌i┌d┌rZdfirrr┌_diffs#s
 ""zGrad._diffscCsä|jdkr ddä|j|âDâ}n,|jdks8td|jâéddä|j|âDâ}ddä|Dâ}tj|ât|â}|jdk	rÇ||j9}|S)NrcSsg|]}tj|âĹqSr)r┌abs)┌.0┌frrr˙
<listcomp>;szGrad.loss.<locals>.<listcomp>┌l2z%penalty can only be l1 or l2. Got: %scSsg|]}||ĹqSrr)r-r.rrrr/>scSs g|]}tjtj|âddŹĹqS)r)┌axisr#)rrr$┌
batch_flatten)r-r.rrrr/@s)r r+┌AssertionErrorr┌add_nrr!)r┌_r┌difr'┌gradrrrr8s


z	Grad.loss)rN)rrrrr"r+rrrrrrs
r)┌
tensorflowrZtensorflow.keras.backend┌keras┌backendr$rrrrrr┌<module>s