
    rhL_                        d Z ddlmZmZ ddlZddlmZ ddlm	Z	m
Z
mZ ddlmZmZmZ ddl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  ej8                  e      ZdZdZ g dZ!dZ"dZ# G d dejH                  jJ                        Z& G d dejH                  jJ                        Z' G d dejH                  jJ                        Z( G d dejH                  jJ                        Z) G d dejH                  jJ                        Z* G d dejH                  jJ                        Z+ G d dejH                  jJ                        Z, G d d ejH                  jJ                        Z-e G d! d"ejH                  jJ                               Z. G d# d$e      Z/d%Z0d&Z1 e
d'e0       G d( d)e/             Z2 e
d*e0       G d+ d,e/e             Z3g d-Z4y).zTensorFlow RegNet model.    )OptionalUnionN   )ACT2FN)add_code_sample_docstringsadd_start_docstrings%add_start_docstrings_to_model_forward) TFBaseModelOutputWithNoAttention*TFBaseModelOutputWithPoolingAndNoAttentionTFSequenceClassifierOutput)TFPreTrainedModelTFSequenceClassificationLosskeraskeras_serializableunpack_inputs)
shape_list)logging   )RegNetConfigr   zfacebook/regnet-y-040)r   i@     r   ztabby, tabby catc                   V     e Zd Z	 	 	 	 d
dedededededee   f fdZd Zdd	Z xZ	S )TFRegNetConvLayerin_channelsout_channelskernel_sizestridegroups
activationc           	      t   t        |   di | t        j                  j	                  |dz        | _        t        j                  j                  |||d|dd      | _        t        j                  j                  ddd	
      | _	        |	t        |   nt        j                  | _        || _        || _        y )N   )paddingVALIDFconvolution)filtersr   stridesr!   r   use_biasnameh㈵>?normalizationepsilonmomentumr'    )super__init__r   layersZeroPadding2Dr!   Conv2Dr#   BatchNormalizationr*   r   tfidentityr   r   r   )	selfr   r   r   r   r   r   kwargs	__class__s	           /var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/models/regnet/modeling_tf_regnet.pyr0   zTFRegNetConvLayer.__init__7   s     	"6" ||11+:J1K <<.. # / 
 #\\<<TTW^m<n0:0F&,BKK&(    c                     | j                  | j                  |            }| j                  |      }| j                  |      }|S N)r#   r!   r*   r   )r7   hidden_states     r:   callzTFRegNetConvLayer.callS   s?    ''\(BC)),7|4r;   c                    | j                   ry d| _         t        | dd       [t        j                  | j                  j
                        5  | j                  j                  d d d | j                  g       d d d        t        | dd       \t        j                  | j                  j
                        5  | j                  j                  d d d | j                  g       d d d        y y # 1 sw Y   sxY w# 1 sw Y   y xY wNTr#   r*   
builtgetattrr5   
name_scoper#   r'   buildr   r*   r   r7   input_shapes     r:   rF   zTFRegNetConvLayer.buildY       ::
4-9t//445 M  &&dD$:J:J'KLM4$/;t11667 P""(($dD<M<M)NOP P <M MP P   *C'3*C3'C03C<)r   r   r   relur=   )
__name__
__module____qualname__intr   strr0   r?   rF   __classcell__r9   s   @r:   r   r   6   s_    
 $*)) ) 	)
 ) ) SM)8	Pr;   r   c                   6     e Zd ZdZdef fdZd ZddZ xZS )TFRegNetEmbeddingszO
    RegNet Embeddings (stem) composed of a single aggressive convolution.
    configc                     t        |   di | |j                  | _        t        |j                  |j                  dd|j
                  d      | _        y )Nr   r    embedder)r   r   r   r   r   r'   r.   )r/   r0   num_channelsr   embedding_size
hidden_actrW   r7   rU   r8   r9   s      r:   r0   zTFRegNetEmbeddings.__init__j   sQ    "6""//)++..((
r;   c                     t        |      d   }t        j                         r|| j                  k7  rt	        d      t        j
                  |d      }| j                  |      }|S )Nr   zeMake sure that the channel dimension of the pixel values match with the one set in the configuration.)r   r    r   r   perm)r   r5   executing_eagerlyrX   
ValueError	transposerW   )r7   pixel_valuesrX   r>   s       r:   r?   zTFRegNetEmbeddings.callv   s`    !,/2!ld6G6G&Gw  ||L|D}}\2r;   c                     | j                   ry d| _         t        | dd       Nt        j                  | j                  j
                        5  | j                  j                  d        d d d        y y # 1 sw Y   y xY w)NTrW   )rC   rD   r5   rE   rW   r'   rF   rG   s     r:   rF   zTFRegNetEmbeddings.build   si    ::
4T*6t}}112 *##D)* * 7* *   A11A:r=   )	rL   rM   rN   __doc__r   r0   r?   rF   rQ   rR   s   @r:   rT   rT   e   s    

| 

*r;   rT   c                   x     e Zd ZdZddededef fdZddej                  dedej                  fd	Z	dd
Z
 xZS )TFRegNetShortCutz
    RegNet shortcut, used to project the residual features to the correct size. If needed, it is also used to
    downsample the input using `stride=2`.
    r   r   r   c                     t        |   d	i | t        j                  j	                  |d|dd      | _        t        j                  j                  ddd      | _        || _        || _	        y )
Nr   Fr#   )r$   r   r%   r&   r'   r(   r)   r*   r+   r.   )
r/   r0   r   r1   r3   r#   r4   r*   r   r   )r7   r   r   r   r8   r9   s        r:   r0   zTFRegNetShortCut.__init__   sm    "6" <<.. a%Vc / 
 #\\<<TTW^m<n&(r;   inputstrainingreturnc                 F    | j                  | j                  |      |      S )Nrj   )r*   r#   )r7   ri   rj   s      r:   r?   zTFRegNetShortCut.call   s#    !!$"2"26":X!NNr;   c                    | j                   ry d| _         t        | dd       [t        j                  | j                  j
                        5  | j                  j                  d d d | j                  g       d d d        t        | dd       \t        j                  | j                  j
                        5  | j                  j                  d d d | j                  g       d d d        y y # 1 sw Y   sxY w# 1 sw Y   y xY wrA   rB   rG   s     r:   rF   zTFRegNetShortCut.build   rI   rJ   )r    )Fr=   )rL   rM   rN   re   rO   r0   r5   Tensorboolr?   rF   rQ   rR   s   @r:   rg   rg      sN    
)C )s )C )O299 O O O	Pr;   rg   c                   :     e Zd ZdZdedef fdZd ZddZ xZS )TFRegNetSELayerz
    Squeeze and Excitation layer (SE) proposed in [Squeeze-and-Excitation Networks](https://huggingface.co/papers/1709.01507).
    r   reduced_channelsc                 "   t        |   d
i | t        j                  j	                  dd      | _        t        j                  j                  |ddd      t        j                  j                  |ddd	      g| _        || _        || _	        y )NTpoolerkeepdimsr'   r   rK   zattention.0)r$   r   r   r'   sigmoidzattention.2r.   )
r/   r0   r   r1   GlobalAveragePooling2Dru   r3   	attentionr   rs   )r7   r   rs   r8   r9   s       r:   r0   zTFRegNetSELayer.__init__   s    "6"ll994h9WLL(8aTZanoLLy_lm
 ' 0r;   c                 d    | j                  |      }| j                  D ]
  } ||      } ||z  }|S r=   )ru   rz   )r7   r>   pooledlayer_modules       r:   r?   zTFRegNetSELayer.call   s=    \* NN 	*L!&)F	*#f,r;   c                    | j                   ry d| _         t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d       d d d        t        | dd       t        j                  | j                  d   j
                        5  | j                  d   j                  d d d | j                  g       d d d        t        j                  | j                  d   j
                        5  | j                  d   j                  d d d | j                  g       d d d        y y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   y xY w)NTru   NNNNrz   r   r   )
rC   rD   r5   rE   ru   r'   rF   rz   r   rs   rG   s     r:   rF   zTFRegNetSELayer.build   s.   ::
44(4t{{//0 <!!":;<4d+7t~~a0556 Nq!''tT4;K;K(LMNt~~a0556 Sq!''tT4;P;P(QRS S 8< <N NS Ss$   E (-E	-E E	EE!r=   )	rL   rM   rN   re   rO   r0   r?   rF   rQ   rR   s   @r:   rr   rr      s&    1C 13 1Sr;   rr   c            	       D     e Zd ZdZd	dedededef fdZd Zd
dZ xZ	S )TFRegNetXLayerzt
    RegNet's layer composed by three `3x3` convolutions, same as a ResNet bottleneck layer with reduction = 1.
    rU   r   r   r   c           	         t        |   di | ||k7  xs |dk7  }t        d||j                  z        }|rt	        |||d      n t
        j                  j                  dd      | _        t        ||d|j                  d      t        |||||j                  d	      t        ||dd d
      g| _        t        |j                     | _        y )Nr   shortcutr   r'   linearr'   layer.0r   r   r'   layer.1r   r   r   r'   layer.2r.   )r/   r0   maxgroups_widthrg   r   r1   
Activationr   r   rZ   r   r   	r7   rU   r   r   r   r8   should_apply_shortcutr   r9   s	           r:   r0   zTFRegNetXLayer.__init__   s    "6" +| ; Jv{Q(;(;;< % [,vJW((
(C 	 k<QSYSdSdktul6&U[UfUfmv lLaTX_hi
 !!2!23r;   c                     |}| j                   D ]
  } ||      } | j                  |      }||z  }| j                  |      }|S r=   r1   r   r   r7   r>   residualr}   s       r:   r?   zTFRegNetXLayer.call   P     KK 	6L'5L	6==* |4r;   c                    | j                   ry d| _         t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d        d d d        t        | dd       K| j                  D ];  }t        j                  |j
                        5  |j                  d        d d d        = y y # 1 sw Y   bxY w# 1 sw Y   UxY wNTr   r1   rC   rD   r5   rE   r   r'   rF   r1   r7   rH   layers      r:   rF   zTFRegNetXLayer.build       ::
4T*6t}}112 *##D)*44(4 &]]5::. &KK%& && 5* *& &   C*CCC	r   r=   
rL   rM   rN   re   r   rO   r0   r?   rF   rQ   rR   s   @r:   r   r      4    4| 4# 4S 4Z] 4&
&r;   r   c            	       D     e Zd ZdZd	dedededef fdZd Zd
dZ xZ	S )TFRegNetYLayerzC
    RegNet's Y layer: an X layer with Squeeze and Excitation.
    rU   r   r   r   c                    t        |   di | ||k7  xs |dk7  }t        d||j                  z        }|rt	        |||d      n t
        j                  j                  dd      | _        t        ||d|j                  d      t        |||||j                  d	      t        |t        t        |d
z              d      t        ||dd d      g| _        t        |j                     | _        y )Nr   r   r   r   r   r   r   r   r      r   )rs   r'   zlayer.3r.   )r/   r0   r   r   rg   r   r1   r   r   r   rZ   rr   rO   roundr   r   r   s	           r:   r0   zTFRegNetYLayer.__init__  s    "6" +| ; Jv{Q(;(;;< % [,vJW((
(C 	 k<QSYSdSdktul6&U[UfUfmv L3u[ST_?U;V]fglLaTX_hi
 !!2!23r;   c                     |}| j                   D ]
  } ||      } | j                  |      }||z  }| j                  |      }|S r=   r   r   s       r:   r?   zTFRegNetYLayer.call  r   r;   c                    | j                   ry d| _         t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d        d d d        t        | dd       K| j                  D ];  }t        j                  |j
                        5  |j                  d        d d d        = y y # 1 sw Y   bxY w# 1 sw Y   UxY wr   r   r   s      r:   rF   zTFRegNetYLayer.build  r   r   r   r=   r   rR   s   @r:   r   r      r   r;   r   c                   J     e Zd ZdZ	 d
dededededef
 fdZd Zdd	Z xZ	S )TFRegNetStagez4
    A RegNet stage composed by stacked layers.
    rU   r   r   r   depthc                     t        	|   di | |j                  dk(  rt        nt        } |||||d      gt        |dz
        D cg c]  } ||||d|dz           c}| _        y c c}w )Nxzlayers.0r   r   zlayers.r   r.   )r/   r0   
layer_typer   r   ranger1   )
r7   rU   r   r   r   r   r8   r   ir9   s
            r:   r0   zTFRegNetStage.__init__1  s     	"6""("3"3s": &+|FT
 Z__dgh_hYijTUeFL,wq1ug=NOj
 ks   	A,c                 8    | j                   D ]
  } ||      } |S r=   )r1   )r7   r>   r}   s      r:   r?   zTFRegNetStage.call=  s%     KK 	6L'5L	6r;   c                     | j                   ry d| _         t        | dd       K| j                  D ];  }t        j                  |j
                        5  |j                  d        d d d        = y y # 1 sw Y   IxY w)NTr1   )rC   rD   r1   r5   rE   r'   rF   r   s      r:   rF   zTFRegNetStage.buildB  sp    ::
44(4 &]]5::. &KK%& && 5& &s   A..A7	)r    r    r=   r   rR   s   @r:   r   r   ,  sF    
 hi

"

14

DG

QT

ad


&r;   r   c            	       \     e Zd Zdef fdZ	 d	dej                  dededefdZ	d
dZ
 xZS )TFRegNetEncoderrU   c                    t        |   di | g | _        | j                  j                  t	        ||j
                  |j                  d   |j                  rdnd|j                  d   d             t        |j                  |j                  dd        }t        t        ||j                  dd              D ]:  \  }\  \  }}}| j                  j                  t	        ||||d|dz                 < y )	Nr   r    r   zstages.0)r   r   r'   zstages.)r   r'   r.   )r/   r0   stagesappendr   rY   hidden_sizesdownsample_in_first_stagedepthszip	enumerate)	r7   rU   r8   in_out_channelsr   r   r   r   r9   s	           r:   r0   zTFRegNetEncoder.__init__M  s    "6"%%##A&"<<q!mmA&		
 f1163F3Fqr3JK7@_V\VcVcdedfVgAh7i 	v3A3+lUKK}V[,V[dklmpqlqkrbstu	vr;   r>   output_hidden_statesreturn_dictrk   c                     |rdnd }| j                   D ]  }|r||fz   } ||      } |r||fz   }|st        d ||fD              S t        ||      S )Nr.   c              3   &   K   | ]	  }||  y wr=   r.   ).0vs     r:   	<genexpr>z'TFRegNetEncoder.call.<locals>.<genexpr>n  s     SqQ]Ss   )last_hidden_statehidden_states)r   tupler
   )r7   r>   r   r   r   stage_modules         r:   r?   zTFRegNetEncoder.call_  sq     3 KK 	6L# - ?'5L		6  )\O;MS\=$ASSS/,^kllr;   c                     | j                   ry d| _         | j                  D ];  }t        j                  |j                        5  |j                  d        d d d        = y # 1 sw Y   HxY w)NT)rC   r   r5   rE   r'   rF   )r7   rH   stages      r:   rF   zTFRegNetEncoder.buildr  s\    ::
[[ 	"Euzz* "D!" "	"" "s   A  A)	)FTr=   )rL   rM   rN   r   r0   r5   ro   rp   r
   r?   rF   rQ   rR   s   @r:   r   r   L  sK    v| v& `dmIIm=AmX\m	)m&"r;   r   c                   x     e Zd ZeZ fdZe	 	 	 d	dej                  de	e
   de	e
   de
def
d       Zd
dZ xZS )TFRegNetMainLayerc                     t        |   di | || _        t        |d      | _        t        |d      | _        t        j                  j                  dd      | _
        y )NrW   r   encoderTru   rv   r.   )r/   r0   rU   rT   rW   r   r   r   r1   ry   ru   r[   s      r:   r0   zTFRegNetMainLayer.__init__  sQ    "6"*6
C&vI>ll994h9Wr;   rb   r   r   rj   rk   c           	         ||n| j                   j                  }||n| j                   j                  }| j                  ||      }| j	                  ||||      }|d   }| j                  |      }t        j                  |d      }t        j                  |d      }|r1t        |d   D 	cg c]  }	t        j                  |	d       c}	      }
|s
||f|dd  z   S t        |||r
      S |j                        S c c}	w )Nrm   r   r   rj   r   )r   r   r   r    r]   r   r   pooler_outputr   )rU   r   use_return_dictrW   r   ru   r5   ra   r   r   r   )r7   rb   r   r   rj   embedding_outputencoder_outputsr   pooled_outputhr   s              r:   r?   zTFRegNetMainLayer.call  s"    %9$D $++JjJj 	 &1%<k$++B]B]===I,,3GU`ks ' 
 ,A.$56 ]FLL):N  !_`Oa"b!2<<#E"bcM%}58KKK9/'+?-
 	
 FUEbEb
 	
 #cs   /Dc                    | j                   ry d| _         t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d        d d d        t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d        d d d        t        | dd       Nt        j                  | j                  j
                        5  | j                  j                  d       d d d        y y # 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   y xY w)NTrW   r   ru   r   )	rC   rD   r5   rE   rW   r'   rF   r   ru   rG   s     r:   rF   zTFRegNetMainLayer.build  s   ::
4T*6t}}112 *##D)*4D)5t||001 )""4()44(4t{{//0 <!!":;< < 5* *) )< <s$   D%%D1?D=%D.1D:=ENNFr=   )rL   rM   rN   r   config_classr0   r   r5   ro   r   rp   r   r?   rF   rQ   rR   s   @r:   r   r   {  so    LX  04&*$
ii$
 'tn$
 d^	$

 $
 
4$
 $
L<r;   r   c                   ,    e Zd ZdZeZdZdZed        Z	y)TFRegNetPreTrainedModelz
    An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
    models.
    regnetrb   c                     dt        j                  d | j                  j                  ddft         j                        iS )Nrb      )shapedtype)r5   
TensorSpecrU   rX   float32)r7   s    r:   input_signaturez'TFRegNetPreTrainedModel.input_signature  s4    T4;;;S;SUXZ]4^fhfpfp qrrr;   N)
rL   rM   rN   re   r   r   base_model_prefixmain_input_namepropertyr   r.   r;   r:   r   r     s-    
  L $Os sr;   r   ad  
    This model is a Tensorflow
    [keras.layers.Layer](https://www.tensorflow.org/api_docs/python/tf/keras/layers/Layer) sub-class. Use it as a
    regular Tensorflow Module and refer to the Tensorflow documentation for all matter related to general usage and
    behavior.

    Parameters:
        config ([`RegNetConfig`]): Model configuration class with all the parameters of the model.
            Initializing with a config file does not load the weights associated with the model, only the
            configuration. Check out the [`~TFPreTrainedModel.from_pretrained`] method to load the model weights.
a>  
    Args:
        pixel_values (`tf.Tensor` of shape `(batch_size, num_channels, height, width)`):
            Pixel values. Pixel values can be obtained using [`AutoImageProcessor`]. See
            [`ConveNextImageProcessor.__call__`] for details.
        output_hidden_states (`bool`, *optional*):
            Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
            more detail.
        return_dict (`bool`, *optional*):
            Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
zOThe bare RegNet model outputting raw features without any specific head on top.c                        e Zd Zdef fdZe ee       ee	e
ede      	 	 	 ddej                  dee   dee   ded	ee
eej                     f   f
d
                     ZddZ xZS )TFRegNetModelrU   c                 P    t        |   |g|i | t        |d      | _        y )Nr   r   )r/   r0   r   r   r7   rU   ri   r8   r9   s       r:   r0   zTFRegNetModel.__init__  s(    3&3F3'X>r;   vision)
checkpointoutput_typer   modalityexpected_outputrb   r   r   rj   rk   c                    ||n| j                   j                  }||n| j                   j                  }| j                  ||||      }|s|d   f|dd  z   S t	        |j
                  |j                  |j                        S )N)rb   r   r   rj   r   r   r   )rU   r   r   r   r   r   r   r   )r7   rb   r   r   rj   outputss         r:   r?   zTFRegNetModel.call  s    " %9$D $++JjJj 	 &1%<k$++B]B]++%!5#	  
 AJ=712;..9%77!//!//
 	
r;   c                     | j                   ry d| _         t        | dd       Nt        j                  | j                  j
                        5  | j                  j                  d        d d d        y y # 1 sw Y   y xY w)NTr   )rC   rD   r5   rE   r   r'   rF   rG   s     r:   rF   zTFRegNetModel.build  si    ::
44(4t{{//0 (!!$'( ( 5( (rd   r   r=   )rL   rM   rN   r   r0   r   r	   REGNET_INPUTS_DOCSTRINGr   _CHECKPOINT_FOR_DOCr   _CONFIG_FOR_DOC_EXPECTED_OUTPUT_SHAPEr5   ro   r   rp   r   r   r?   rF   rQ   rR   s   @r:   r   r     s    
?| ? *+BC&>$. 04&*
ii
 'tn
 d^	

 
 
95;KK	L
 D 
6(r;   r   z
    RegNet Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for
    ImageNet.
    c                        e Zd Zdef fdZe ee       ee	e
ee      	 	 	 	 	 ddeej                     deej                     dee   dee   ded	ee
eej                     f   fd
                     ZddZ xZS )TFRegNetForImageClassificationrU   c                 Z   t        |   |g|i | |j                  | _        t        |d      | _        t
        j                  j                         |j                  dkD  r2t
        j                  j                  |j                  d      g| _        y t        j                  g| _        y )Nr   r   r   zclassifier.1)r/   r0   
num_labelsr   r   r   r1   FlattenDenser5   r6   
classifierr   s       r:   r0   z'TFRegNetForImageClassification.__init__"  s    3&3F3 ++'X> LL  "JPJ[J[^_J_ELLv00~F
egepep
r;   )r   r   r   r   rb   labelsr   r   rj   rk   c                    ||n| j                   j                  }||n| j                   j                  }| j                  ||||      }|r|j                  n|d   } | j
                  d   |      } | j
                  d   |      }	|dn| j                  ||	      }
|s|	f|dd z   }|
|
f|z   S |S t        |
|	|j                        S )a)  
        labels (`tf.Tensor` of shape `(batch_size,)`, *optional*):
            Labels for computing the image classification/regression loss. Indices should be in `[0, ...,
            config.num_labels - 1]`. If `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
        Nr   r   r   )r   logitsr    )lossr   r   )	rU   r   r   r   r   r   hf_compute_lossr   r   )r7   rb   r   r   r   rj   r   r   flattened_outputr   r   outputs               r:   r?   z#TFRegNetForImageClassification.call,  s    , %9$D $++JjJj 	 &1%<k$++B]B]++/CQ\go  
 2=--'!*-4??1-m<##$45~t4+?+?vV\+?+]Y,F)-)9TGf$EvE)tFRYRgRghhr;   c                    | j                   ry d| _         t        | dd       Mt        j                  | j                  j
                        5  | j                  j                  d        d d d        t        | dd       ot        j                  | j                  d   j
                        5  | j                  d   j                  d d d | j                  j                  d   g       d d d        y y # 1 sw Y   xY w# 1 sw Y   y xY w)NTr   r   r   )
rC   rD   r5   rE   r   r'   rF   r   rU   r   rG   s     r:   rF   z$TFRegNetForImageClassification.buildW  s    ::
44(4t{{//0 (!!$'(4t,8tq1667 ["(($dDKK<T<TUW<X)YZ[ [ 9( ([ [s   C,(:C8,C58D)NNNNFr=   )rL   rM   rN   r   r0   r   r	   r   r   _IMAGE_CLASS_CHECKPOINTr   r   _IMAGE_CLASS_EXPECTED_OUTPUTr   r5   ro   rp   r   r   r?   rF   rQ   rR   s   @r:   r   r     s    
| 
 *+BC*.$4	 -1&*/3&*!iryy)!i #!i 'tn	!i
 d^!i !i 
)5+;;	<!i D !iF	[r;   r   )r   r   r   )5re   typingr   r   
tensorflowr5   activations_tfr   
file_utilsr   r   r	   modeling_tf_outputsr
   r   r   modeling_tf_utilsr   r   r   r   r   tf_utilsr   utilsr   configuration_regnetr   
get_loggerrL   loggerr   r   r   r  r  r1   Layerr   rT   rg   rr   r   r   r   r   r   r   REGNET_START_DOCSTRINGr   r   r   __all__r.   r;   r:   <module>r     s    "  $ q q 
  #  . 
		H	% ! . (  2 1 ,P** ,P^%*++ %*PPu||)) P<"Sell(( "SJ+&U\\'' +&\+&U\\'' +&\&ELL&& &@,"ell(( ,"^ =<** =< =<@s/ s
 
  U/(+ /(	/(d  ?[%<>Z ?[?[D Yr;   