U
    ÷Õ/eg  ã                   @  sX   d dl mZ d dlZd dlmZmZmZmZ e ej	¡dd„ ƒZ
e ej	¡dd„ ƒZdS )é    )ÚannotationsN)Údask_deserializeÚdask_serializeÚdeserializeÚ	serializec                 C  sp   dd l }|jdk rtdƒ‚|  ¡ }|  ¡ }tttt|ƒŽ ƒ\}}||d< dd„ |D ƒ|d< dd„ |D ƒ}||fS )	Nr   z1.2.0zHNeed Keras >= 1.2.0. Try python -m pip install keras --upgrade --no-depsÚheadersc                 S  s   g | ]}t |ƒ‘qS © )Úlen)Ú.0ÚLr   r   ú>/tmp/pip-unpacked-wheel-g426oqom/distributed/protocol/keras.pyÚ
<listcomp>   s     z)serialize_keras_model.<locals>.<listcomp>Únframesc                 S  s   g | ]}|D ]}|‘qqS r   r   )r
   r   Úframer   r   r   r      s       )	ÚkerasÚ__version__ÚImportErrorZ_updated_configZget_weightsÚlistÚzipÚmapr   )Úmodelr   ÚheaderÚweightsr   Úframesr   r   r   Úserialize_keras_model   s    
ÿr   c           	      C  sn   ddl m} d}g }t| d | d ƒD ]0\}}t||||| … ƒ}| |¡ ||7 }q&|| ƒ}| |¡ |S )Nr   )Úmodel_from_configr   r   )Zkeras.modelsr   r   r   ÚappendZset_weights)	r   r   r   Únr   ÚheadÚlengthÚxr   r   r   r   Údeserialize_keras_model   s    


r!   )Ú
__future__r   r   Zdistributed.protocol.serializer   r   r   r   ÚregisterZModelr   r!   r   r   r   r   Ú<module>   s   


