U
    ̎`                     @   s8   d dl mZ d dlmZ d dlmZ G dd deZdS )    )autocast)AutoModelWithLMHead)Modulec                       s,   e Zd Zded fddZdd Z  ZS )GPT2LMHeadModelF)use_ampc                    s$   t t|   || _td| _d S )N
distilgpt2)superr   __init__r   r   from_pretrainedtransformer)selfr   	__class__ ,/mnt/c/Rosko/projects/ood/src/models/gpt2.pyr	      s    zGPT2LMHeadModel.__init__c              
   O   s0   t | j | jj||W  5 Q R  S Q R X d S )N)r   r   r   forward)r   argskwargsr   r   r   r      s    zGPT2LMHeadModel.forward)F)__name__
__module____qualname__boolr	   r   __classcell__r   r   r   r   r      s   r   N)Ztorch.cuda.ampr   transformersr   torch.nnr   r   r   r   r   r   <module>   s   