
    |j	                    l    d dl mZ d dlmZ d dlZd dlmZ erd dlmZ g Z G d dej                  Z	dS )    )annotations)TYPE_CHECKINGN)nn)Tensorc                  :     e Zd ZU dZded<   dd fdZdd
Z xZS )LeNeta  LeNet model from
    `"Gradient-based learning applied to document recognition" <https://ieeexplore.ieee.org/document/726791>`_.

    Args:
        num_classes (int, optional): Output dim of last fc layer. If num_classes <= 0, last fc layer
            will not be defined. Default: 10.

    Returns:
        :ref:`api_paddle_nn_Layer`. An instance of LeNet model.

    Examples:
        .. code-block:: pycon

            >>> import paddle
            >>> from paddle.vision.models import LeNet

            >>> model = LeNet()

            >>> x = paddle.rand([1, 1, 28, 28])
            >>> out = model(x)

            >>> print(out.shape)
            paddle.Size([1, 10])
    intnum_classes
   returnNonec                6   t                                                       || _        t          j        t          j        ddddd          t          j                    t          j        dd          t          j        ddddd          t          j                    t          j        dd                    | _        |dk    rVt          j        t          j	        d	d
          t          j	        d
d          t          j	        d|                    | _
        d S d S )N         )stridepadding         r   i  x   T   )super__init__r
   r   
SequentialConv2DReLU	MaxPool2DfeaturesLinearfc)selfr
   	__class__s     j/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/paddle/vision/models/lenet.pyr   zLeNet.__init__:   s    &IaAa333GIILAIaQq!444GIILA
 
 ??m	#s##	#r""	"k** DGGG ?    inputsr   c                    |                      |          }| j        dk    r*t          j        |d          }|                     |          }|S )Nr   r   )r   r
   paddleflattenr!   )r"   r&   xs      r$   forwardzLeNet.forwardM   sF    MM&!!aq!$$A

Ar%   )r   )r
   r	   r   r   )r&   r   r   r   )__name__
__module____qualname____doc____annotations__r   r+   __classcell__)r#   s   @r$   r   r      sp          2       &       r%   r   )

__future__r   typingr   r(   r   r   __all__Layerr    r%   r$   <module>r7      s    # " " " " "             
5 5 5 5 5BH 5 5 5 5 5r%   