U Ad @sXddlmZddlmZmZGdddejZGdddejZd dd Zd d d Z dS)N)remove_weight_norm weight_normcs6eZdZdfdd Zdd Zd d Zd d ZZS)Depthwise_Separable_Conv1DrTzerosNc sHttj|||||||||| | d |_tj||d|| | d|_dS)N) in_channels out_channels kernel_sizegroupsstridepaddingdilationbias padding_modedevicedtyperrrr rrr)super__init__nnConv1d depth_conv point_conv) selfrrr r r r rrrr __class__@C:\Green_Program_Files\So-VITS-SVC-Shengshuyan\modules\DSConv.pyrs "z#Depthwise_Separable_Conv1D.__init__cCs|||SNrrrinputrrrforwardsz"Depthwise_Separable_Conv1D.forwardcCs$t|jdd|_t|jdd|_dSNweight)namerrrrrrrrsz&Depthwise_Separable_Conv1D.weight_normcCs$t|jdd|_t|jdd|_dSr#rrrr'rrrrsz-Depthwise_Separable_Conv1D.remove_weight_norm)rrrTrNN__name__ __module__ __qualname__rr"rr __classcell__rrrrrsrcs6eZdZdfdd Zdd Zd d Zd d ZZS)#Depthwise_Separable_TransposeConv1DrrTrNc sJttj|||||||||| | | d |_tj||d|| | d|_dS)N) rrr r r output_paddingr r rrrrrr)rrrConvTranspose1drrr) rrrr r r r/rr rrrrrrr#s $z,Depthwise_Separable_TransposeConv1D.__init__cCs|||Srrr rrrr"5sz+Depthwise_Separable_TransposeConv1D.forwardcCs$t|jdd|_t|jdd|_dSr#r&r'rrrr8sz/Depthwise_Separable_TransposeConv1D.weight_normcCs t|jddt|jdddSr#r(r'rrrr<sz6Depthwise_Separable_TransposeConv1D.remove_weight_norm)rrrTrrNNr)rrrrr."sr.r$cCs0t|tst|tr ||St|||SdSr) isinstancerr.r)moduler%dimrrrweight_norm_modulesAsr4cCs,t|tst|tr|n t||dSr)r1rr.r)r2r%rrrremove_weight_norm_modulesHs r5)r$r)r$) torch.nnrtorch.nn.utilsrrModulerr.r4r5rrrrs