a
    ==ic                     @   s,   d dl mZ d dlmZ G dd deZdS )    )schema)
ModelLayerc                       s&   e Zd Zd fdd	Zdd Z  ZS )	Split   splitNc                    sZ  t tj|||fi | |_|d8 }|dks6J t|tjsPJ d|| j	}t
||ksjJ |d u r|| | dksJ nt
|}|| t|ksJ |d u rt|t| | |< n0g t|D ]"}	t|}
||	 |
|< |
 q| j |d u r* fddt|D }n fddt|D }tj| _|_d S )Nr   r   z8Incorrect input type. Expected Scalar, but received: {0}c              
      s(   g | ] }t  fd |qS z	output_{}r   ScalarZget_next_blob_referenceformat.0i	data_typeZoutput_shapeself k/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/layers/split.py
<listcomp>3   s
   z"Split.__init__.<locals>.<listcomp>c              
      s,   g | ]$}t  | fd |qS r   r   r   r   r   r   r   ;   s
   
)superr   __init__axis
isinstancer   r	   r
   Z
field_typeshapelensumlistintrangeappendbaseTupleoutput_schemar   )r   modelinput_recordZ
num_splitsr   namer   kwargsZinput_shaper   Zoutput_shape_iZoutput_scalars	__class__r   r   r      sB    


zSplit.__init__c                 C   s&   |j | j | j | j| jd d S )N)r   r   )r   r#   Zfield_blobsr!   r   r   )r   netr   r   r   add_opsE   s    zSplit.add_ops)r   r   r   N)__name__
__module____qualname__r   r)   __classcell__r   r   r&   r   r      s     5r   N)Zcaffe2.pythonr   Zcaffe2.python.layers.layersr   r   r   r   r   r   <module>   s   