o
    *j                     @   s   d dl mZ d dlZd dlm  mZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ ejejejdG d	d
 d
e
ZdS )    )DictN)nn)Heads)	TorchHead)HEADS)Tasks)module_namec                       sL   e Zd Z fddZdd ZdddZdejd	ee	ejf fd
dZ
  ZS )TextGenerationHeadc                    s6   t  jdi | | j}tj|d |d dd| _d S )NZhidden_sizeZ
vocab_sizeF)Zbias )super__init__configr   ZLinearlinear)selfkwargsr   	__class__r
   q/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/nlp/heads/text_generation_head.pyr      s
   zTextGenerationHead.__init__c                 C   s   | j S Nr   )r   r
   r
   r   get_output_embeddings   s   z(TextGenerationHead.get_output_embeddingsNc                 K   s   |  |}|S r   r   )r   Zinputsr   logitsr
   r
   r   forward   s   
zTextGenerationHead.forwardr   returnc                 C   s   t ||S r   )FZcross_entropy)r   r   labelsr
   r
   r   compute_loss   s   zTextGenerationHead.compute_lossr   )__name__
__module____qualname__r   r   r   torchZTensorr   strr   __classcell__r
   r
   r   r   r	      s    
r	   )typingr   r    Ztorch.nn.functionalr   Z
functionalr   Zmodelscope.metainfor   Zmodelscope.models.baser   Zmodelscope.models.builderr   Zmodelscope.utils.constantr   Zregister_moduleZtext_generationr	   r
   r
   r
   r   <module>   s   