PK!{pytorch_revgrad/__init__.pyfrom .module import RevGrad PK!+pytorch_revgrad/functional.pyfrom torch.autograd import Function class RevGrad(Function): @staticmethod def forward(ctx, input_): ctx.save_for_backward(input_) output = input_ return output @staticmethod def backward(ctx, grad_output): grad_input = None if ctx.needs_input_grad[0]: grad_input = -grad_output return grad_input revgrad = RevGrad.apply PK!Gpytorch_revgrad/module.pyfrom .functional import revgrad from torch.nn import Module class RevGrad(Module): def __init__(self, *args, **kwargs): """ A gradient reversal layer. This layer has no parameters, and simply reverses the gradient in the backward pass. """ super().__init__(*args, **kwargs) def forward(self, input_): return revgrad(input_) PK!:-0**pytorch_revgrad/version.py__version__ = "0.1" version = __version__ PK!H|n-WY%pytorch_revgrad-0.0.1.dist-info/WHEEL A н#Z;/" bFF]xzwK;<*mTֻ0*Ri.4Vm0[H, JPK!Ho.(pytorch_revgrad-0.0.1.dist-info/METADATARN@}D'%EQA/4ԙ8[fww\ B yVs.s=9Қ"%7v6ÉÜ gX5|xLIU*em &ïj(*=nPN**z~9k3 /u> s} 6 U:-ڙʝB͢5FgdZb&Fl{Þ}꠷b[|Wk!9!f5qpr>fxg ~wA,x׶@GV-?HMP30Ӗћt 0lPK!HY.&pytorch_revgrad-0.0.1.dist-info/RECORDKr0}6\t&|jC+b0GB1(nq yojȺ(6Q4t.bu2jyWt$^t T6my|+@o,ihmI3iVV=iY~&Kc>:m;^weu:xsVRp«*6מ.[AgBVc/9;j AJՌ4QJύLY^o6j ?gf910 $q 3[>ic;ߵf]o*$Zk\TbYb">_WaKGoJPK!{pytorch_revgrad/__init__.pyPK!+Upytorch_revgrad/functional.pyPK!G"pytorch_revgrad/module.pyPK!:-0**pytorch_revgrad/version.pyPK!H|n-WY%Dpytorch_revgrad-0.0.1.dist-info/WHEELPK!Ho.(pytorch_revgrad-0.0.1.dist-info/METADATAPK!HY.&pytorch_revgrad-0.0.1.dist-info/RECORDPK E