Ë
    ÄÓ^jê  ã                   ó„   — d dl mZ d dlZdgZ G d„ dej                  j
                  j                  j                  «      Zy)é    )ÚAnyNÚLSTMc                   ó  — e Zd ZdZej
                  j                  j                  j                  Z	de
fd„Zedededdfd„«       Zeded    d	ej
                  j                  j                  j                  dd fd
„«       Zy)r   ar  A quantized long short-term memory (LSTM).

    For the description and the argument types, please, refer to :class:`~torch.nn.LSTM`

    Attributes:
        layers : instances of the `_LSTMLayer`

    .. note::
        To access the weights and biases, you need to access them per layer.
        See examples in :class:`~torch.ao.nn.quantizable.LSTM`

    Examples::
        >>> # xdoctest: +SKIP
        >>> custom_module_config = {
        ...     'float_to_observed_custom_module_class': {
        ...         nn.LSTM: nn.quantizable.LSTM,
        ...     },
        ...     'observed_to_quantized_custom_module_class': {
        ...         nn.quantizable.LSTM: nn.quantized.LSTM,
        ...     }
        ... }
        >>> tq.prepare(model, prepare_custom_module_class=custom_module_config)
        >>> tq.convert(model, convert_custom_module_class=custom_module_config)
    Úreturnc                  ó   — y)NÚQuantizedLSTM© )Úselfs    úl/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/ao/nn/quantized/modules/rnn.pyÚ	_get_namezLSTM._get_name'   s   € Øó    ÚargsÚkwargsNc                 ó   — t        d«      ‚)NzrIt looks like you are trying to convert a non-observed LSTM module. Please, see the examples on quantizable LSTMs.)ÚNotImplementedError)Úclsr   r   s      r   Ú
from_floatzLSTM.from_float*   s   € ô "ð1ó
ð 	
r   r   Úotherc                 óà   — t        || j                  «      s$t        d| j                  › dt        |«      › �«      ‚t        j
                  j                  j                  |dd¬«      }| |_        |S )NzExpected module type z, got FT)ÚinplaceÚremove_qconfig)	Ú
isinstanceÚ_FLOAT_MODULEÚAssertionErrorÚtypeÚtorchÚaoÚquantizationÚconvertÚ	__class__)r   r   Ú	converteds      r   Úfrom_observedzLSTM.from_observed4   sr   € ä˜% ×!2Ñ!2Ô3Ü Ø'¨×(9Ñ(9Ð':¸&ÄÀeÃÀÐNóð ô —H‘H×)Ñ)×1Ñ1Ø˜5°ð 2ó 
ˆ	ð "ˆ	ÔØÐr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚnnÚquantizabler   r   Ústrr   Úclassmethodr   r   r   r"   r	   r   r   r   r      s™   „ ñð2 —H‘H—K‘K×+Ñ+×0Ñ0€Mð˜3ó ð ð
˜sð 
¨cð 
°dò 
ó ð
ð ð	˜4 ™<ð 	°·±·±×0GÑ0G×0LÑ0Lð 	ÐQWò 	ó ñ	r   )Útypingr   r   Ú__all__r   r'   r(   r   r	   r   r   ú<module>r-      s7   ðÝ ã ð ð€ô
3ˆ5�8‰8�;‰;×"Ñ"×'Ñ'õ 3r   