ó
¾÷Xc           @@  s  d  d l  m Z d  d l Z d d l m Z d d l m Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e Z Z e	 Z Z e
 Z Z e Z Z e Z Z e Z d „  Z d d „ Z! d „  Z" d S(   i    (   t   absolute_importNi   (   t   backend(   t   deserialize_keras_objectc         C@  s    t  j t  j | |  ƒ d d ƒS(   Nt   axisiÿÿÿÿ(   t   Kt   meant   square(   t   y_truet   y_pred(    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   mean_squared_error   s    c         C@  s    t  j t  j | |  ƒ d d ƒS(   NR   iÿÿÿÿ(   R   R   t   abs(   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   mean_absolute_error   s    c         C@  sL   t  j |  | t  j t  j |  ƒ t  j ƒ  d  ƒ ƒ } d t  j | d d ƒS(   Ng      Y@R   iÿÿÿÿ(   R   R
   t   clipt   epsilont   NoneR   (   R   R   t   diff(    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   mean_absolute_percentage_error   s    	c         C@  sp   t  j t  j | t  j ƒ  d  ƒ d ƒ } t  j t  j |  t  j ƒ  d  ƒ d ƒ } t  j t  j | | ƒ d d ƒS(   Ng      ð?R   iÿÿÿÿ(   R   t   logR   R   R   R   R   (   R   R   t	   first_logt
   second_log(    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   mean_squared_logarithmic_error   s    ((c         C@  s0   t  j t  j t  j d |  | d ƒ ƒ d d ƒS(   Ng      ð?g        R   iÿÿÿÿ(   R   R   R   t   maximum(   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   squared_hinge   s    c         C@  s'   t  j t  j d |  | d ƒ d d ƒS(   Ng      ð?g        R   iÿÿÿÿ(   R   R   R   (   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   hinge    s    c         C@  s   t  j | |  ƒ S(   N(   R   t   categorical_crossentropy(   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyR   $   s    c         C@  s   t  j | |  ƒ S(   N(   R   t   sparse_categorical_crossentropy(   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyR   (   s    c         C@  s   t  j t  j | |  ƒ d d ƒS(   NR   iÿÿÿÿ(   R   R   t   binary_crossentropy(   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyR   ,   s    c         C@  sZ   t  j |  t  j ƒ  d ƒ }  t  j | t  j ƒ  d ƒ } t  j |  t  j |  | ƒ d d ƒS(   Ni   R   iÿÿÿÿ(   R   R   R   t   sumR   (   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   kullback_leibler_divergence0   s    c         C@  s.   t  j | |  t  j | t  j ƒ  ƒ d d ƒS(   NR   iÿÿÿÿ(   R   R   R   R   (   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   poisson6   s    c         C@  sB   t  j |  d d ƒ}  t  j | d d ƒ} t  j |  | d d ƒS(   NR   iÿÿÿÿ(   R   t   l2_normalizeR   (   R   R   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   cosine_proximity:   s    c         C@  s   |  j  S(   N(   t   __name__(   t   loss(    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt	   serializeJ   s    c         C@  s   t  |  d t ƒ  d | d d ƒS(   Nt   module_objectst   custom_objectst   printable_module_names   loss function(   R   t   globals(   t   nameR$   (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   deserializeN   s    		c         C@  s[   |  d  k r d  St |  t j ƒ r8 t |  ƒ }  t |  ƒ St |  ƒ rH |  St d |  ƒ ‚ d  S(   Ns-   Could not interpret loss function identifier:(   R   t
   isinstancet   sixt   string_typest   strR(   t   callablet
   ValueError(   t
   identifier(    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   getU   s    
(#   t
   __future__R    R*   t    R   R   t   utils.generic_utilsR   R	   R   R   R   R   R   R   R   R   R   R   R   t   mset   MSEt   maet   MAEt   mapet   MAPEt   mslet   MSLEt   kldt   KLDt   cosineR"   R   R(   R0   (    (    (    s+   /tmp/pip-build-isqEY4/keras/keras/losses.pyt   <module>   s0   												




	