B íßåa ã @ s® d dl mZ d dlZd dlm mZ d dlmZ G dd dejZG dd dejZ G dd dejZ G d d d ejZG dd dejZdddZ dddZdddZdS )é N)Úoptimc s$ e Zd Z fddZdd Z ZS )Úencoderc sf t t| ¡ t |d¡| _t ¡ | _tjdddd| _ tj dd| _t d|¡| _t d|¡| _ d S )Né gñhãµøä>g¹?)ÚepsÚmomentum)Úp)Úsuperr Ú__init__ÚnnÚLinearÚf1ÚReLUÚactÚBatchNorm1dÚbn1ÚDropoutÚdropoutÚmuÚ log_sigma)ÚselfÚx_dimÚz_dim)Ú __class__© ú4C:\Users\Xin\Desktop\mscETM\Demo code\build_model.pyr s zencoder.__init__c C s@ | | | | |¡¡¡¡}| |¡}| |¡ dd¡}||fS )Niöÿÿÿé )r r r r r r Úclamp)r ÚxÚhr r r r r Úforward s zencoder.forward)Ú__name__Ú __module__Ú__qualname__r r Ú __classcell__r r )r r r s r c s$ e Zd Z fddZdd Z ZS )Údecoderc s t t| ¡ t t ||¡¡| _t t ||¡¡| _t t ||¡¡| _ t t ||¡¡| _ t t ||¡¡| _d | _d | _ d S )N)r r$ r r Ú ParameterÚtorchÚrandnÚ alpha_mod1Ú alpha_mod2ÚbetaÚmod1_batch_biasÚmod2_batch_biasÚ Topic_mod1Ú Topic_mod2)r Úmod1_dimÚmod2_dimr Úemd_dimÚ num_batch)r r r r s zdecoder.__init__c C s t | j| j ¡ ¡ ¡ | _t | j| j ¡ ¡ ¡ | _t || j¡}|| j| 7 }t j |dd}t || j¡}|| j| 7 }t j |dd}||fS )Néÿÿÿÿ)Údim)r&