U
    f                     @   s   d dl Zd dlmZ d dlmZmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlZd dlZd dlZdejd< d	d
 Zdd ZdS )    N)	int_shape)Input
Cropping1DaddConv1DGlobalAvgPool1DDenseFlatten)Adam)Model)multinomial_nll0ZPYTHONHASHSEEDc              	   C   sx  d}d}d}t |d }t |d }t|d }t |d }t |d }	td	 td
t|  tdt|  tdt|  tdt|  tdt|  | j}
tj|
 tj|
 t	|
 t
|dfdd}t||dddd|}dd td|d D }td|d D ]}d||d  }t|dddd| |d|}t|d }t|d }|| d dksttt|| d d||d  d|}t||g}qt||ddd |}t t|d d t |	d  }|dkstt|d d dkstt|d!d|}td"d|}td#d|}t|d$d|}t|g||gd%}|jt| jd&td'gd|gd( |S ))N   K      filtersn_dil_layerscounts_loss_weightZinputlenZ	outputlenzparams:zfilters:zn_dil_layers:zconv1_kernel_size:zprofile_kernel_size:zcounts_loss_weight:   sequence)shapenamevalidZreluZbpnet_1st_conv)kernel_sizepadding
activationr   c                 S   s   g | ]}t |qS  )str).0ir   r   </tmp/pip-target-lpfmz8o1/lib/python/../../bin/bpnet_model.py
<listcomp>0   s     z;getModelGivenModelOptionsAndWeightInits.<locals>.<listcomp>zbpnet_{}conv      )r   r   r   Zdilation_rater   r   zbpnet_{}crop)r   prof_out_precrop)r   r   r   r   Z%logits_profile_predictions_preflattenZlogits_profile_predictionsgapZlogcount_predictions)inputsoutputs)learning_rateZmse)Z	optimizerZlossZloss_weights)intfloatprintr   seednprandomtfZset_seedrnr   r   rangeformatr   AssertionErrorr   r   r	   r   r   r   compiler
   r(   r   )argsZmodel_paramsZconv1_kernel_sizeZprofile_kernel_sizeZ	num_tasksr   r   r   Zsequence_lenZout_pred_lenr,   ZinpxZlayer_namesr   Zconv_layer_nameZconv_xZx_lenZ
conv_x_lenr$   ZcropsizeZprofZprofile_outZgap_combined_convZ	count_outmodelr   r   r    'getModelGivenModelOptionsAndWeightInits   s    
& r8   c                 C   s   d S )Nr   )r7   Zoutput_prefixr   r   r    save_model_without_biasd   s    r9   )numpyr-   Ztensorflow.keras.backendr   Ztensorflow.keras.layersr   r   r   r   r   r   r	   Ztensorflow.keras.optimizersr
   Ztensorflow.keras.modelsr   Z chrombpnet.training.utils.lossesr   Z
tensorflowr/   r.   r0   osenvironr8   r9   r   r   r   r    <module>   s   $
W