B ´$5bWã@s,ddlZddlmZGdd„dejjƒZdS)éN)ÚGPT2ForSequenceClassificationcs,eZdZdZd‡fdd„ Zd dd„Z‡ZS) ÚClassificationHeadz-Classification Head for transformer encodersFcsòtt|ƒ ¡||_||_||_||_||_|rbtj   |d¡|_ tj   dd¡|_ tj   d|¡|_ nŒ|r¸tj   |d¡|_ tj   dd¡|_ tj   dd¡|_ tj   dd¡|_tj   d|¡|_n6|rÞt d¡|_tj j d|dd|_ntj   ||¡|_dS) Né€é@iézmicrosoft/DialogRPT-updownéT)Úbias)ÚsuperrÚ__init__Ú class_sizeÚ embed_sizeÚis_deepÚ is_deeperÚ use_xlnetÚtorchÚnnÚLinearÚmlp1Úmlp2Úmlp3Úmlp4Úmlp5rÚfrom_pretrainedÚgptÚmlp)Úselfr r r rr)Ú __class__©úq/content/drive/.shortcut-targets-by-id/1md1b0pDH2IfxHsQ0eLBIOFz0l5695HaL/COSIW04/PPLM/pplm_classification_head.pyr s( zClassificationHead.__init__NcCsÎ|jr:tjj | |¡¡}tjj | |¡¡}| |¡}n|jrœtjj | |¡¡}tjj | |¡¡}tjj | |¡¡}tjj |  |¡¡}|  |¡}n.|j rÀ|j ||d\}}|  |¡}n |  |¡}|S)N)Ú input_idsÚ inputs_embeds)r rrÚ functionalÚrelurrrrrrrrr)rÚ hidden_stater ÚlogitsÚ_rrrÚforwards    zClassificationHead.forward)FFF)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__r r&Ú __classcell__rr)rrrsr)rÚ transformersrrÚModulerrrrrÚs