U
    d                     @   s(   d dl Zd dlmZ dd Zdd ZdS )    N)CRFWithLossc                 C   s   t | j| j|j||jS )N)	apply_crfZparam_init_netnettransitionsnum_classes)modelZcrf_with_lossclasses r	   =/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/crf_predict.pycrf_update_predictions   s    r   c                 C   s   t || ||}|||g}|||g}|j|gddd}tddgtj}	tddgtj}
|j	g dg|	d}	|j	g dg|
d}
|
||	|
g}|S )N   )Zpadding_widthZend_padding_widthr      )shapevalues)r   Zpad_predictionsZViterbiPathZSwapBestPathZRemovePaddingnparrayZastypeZint32ZGivenTensorIntFillZSlice)Zinit_netr   r   Zpredictionsr   Zpadded_classesZbestPathZnew_padded_classesZnew_classesZslice_startsZ
slice_endsr	   r	   r
   r      s&         r   )Znumpyr   Zcaffe2.python.crfr   r   r   r	   r	   r	   r
   <module>   s   
