def _do_test_3D_models(recognizer, target_layer_name, input_shape, num_classes=400): blended_imgs_target_shape, preds_target_shape = _get_target_shapes( input_shape, num_classes=num_classes, model_type='3D') demo_inputs = generate_gradcam_inputs(input_shape, '3D') # parrots 3dconv is only implemented on gpu if torch.__version__ == 'parrots': if torch.cuda.is_available(): recognizer = recognizer.cuda() demo_inputs['imgs'] = demo_inputs['imgs'].cuda() demo_inputs['label'] = demo_inputs['label'].cuda() gradcam = GradCAM(recognizer, target_layer_name) blended_imgs, preds = gradcam(demo_inputs) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape blended_imgs, preds = gradcam(demo_inputs, True) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape else: gradcam = GradCAM(recognizer, target_layer_name) blended_imgs, preds = gradcam(demo_inputs) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape blended_imgs, preds = gradcam(demo_inputs, True) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape
def _do_test_2D_models(recognizer, target_layer_name, input_shape, num_classes=400, device='cpu'): demo_inputs = generate_gradcam_inputs(input_shape) demo_inputs['imgs'] = demo_inputs['imgs'].to(device) demo_inputs['label'] = demo_inputs['label'].to(device) recognizer = recognizer.to(device) gradcam = GradCAM(recognizer, target_layer_name) blended_imgs_target_shape, preds_target_shape = _get_target_shapes( input_shape, num_classes=num_classes, model_type='2D') blended_imgs, preds = gradcam(demo_inputs) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape blended_imgs, preds = gradcam(demo_inputs, True) assert blended_imgs.size() == blended_imgs_target_shape assert preds.size() == preds_target_shape