o ^d{@s(ddlZddlmZGdddeZdS)N)BaseCAMcs*eZdZ  dfdd ZddZZS)XGradCAMFNcstt|||||dS)N)superr__init__)selfmodel target_layersuse_cudareshape_transform __class__8/workspace/mcreu/convmixer/pytorch_grad_cam/xgrad_cam.pyrszXGradCAM.__init__c CsFtj|dd}d}|||ddddddf|}|jdd}|S)N))axisgHz>)npsum) r input_tensor target_layertarget_category activationsgradsZsum_activationsepsweightsr r rget_cam_weightss zXGradCAM.get_cam_weights)FN)__name__ __module__ __qualname__rr __classcell__r r r rrs r)numpyrpytorch_grad_cam.base_camrrr r r rs