当前位置: 首页 > news >正文

上海建站网站的企业成都人高清影院品牌加盟

上海建站网站的企业,成都人高清影院品牌加盟,网站的二次开发,想自己做一个网站应该怎么弄思路 获取想要解释的那一层的特征图#xff0c;然后根据特征图梯度计算出权重值#xff0c;加在原图上面。 Demo 加上类激活(cam) 可以看到#xff0c;cam将模型认为有利于分类的特征标注了出来。 下面以ResNet50为例: Trick: 使用 for i in model._modules.items():可以…思路 获取想要解释的那一层的特征图然后根据特征图梯度计算出权重值加在原图上面。 Demo 加上类激活(cam) 可以看到cam将模型认为有利于分类的特征标注了出来。 下面以ResNet50为例: Trick: 使用 for i in model._modules.items():可以获得模型名称和对应层。 # coding: utf-8 import os import cv2 import numpy as np from PIL import Image import matplotlib.pyplot as pltimport torch import torch.autograd as autograd import torchvision.transforms as transformsimport torchvision.models as models# 训练过的模型路径 #resume_path rD:\TJU\GBDB\set113\cross_validation\test1\epoch_0257_checkpoint.pth.tar # 输入图像路径 single_img_path rbicycle.jpg # 绘制的热力图存储路径 save_path rheatmap/bicycle_layer4.jpg# 网络层的层名列表, 需要根据实际使用网络进行修改 layers_names [conv1, bn1, relu, maxpool, layer1, layer2, layer3, layer4, avgpool] # 指定层名 out_layer_name layer4features_grad 0# 为了读取模型中间参数变量的梯度而定义的辅助函数 def extract(g):global features_gradfeatures_grad gdef draw_CAM(model, img_path, save_path, transformNone, visual_heatmapFalse, out_layerNone):绘制 Class Activation Map:param model: 加载好权重的Pytorch model:param img_path: 测试图片路径:param save_path: CAM结果保存路径:param transform: 输入图像预处理方法:param visual_heatmap: 是否可视化原始heatmap调用matplotlib:return:# 读取图像并预处理global layer2img Image.open(img_path).convert(RGB)if transform:img transform(img)img img.unsqueeze(0) # (1, 3, 448, 448)# model转为eval模式model.eval()# 获取模型层的字典layers_dict {layers_names[i]: None for i in range(len(layers_names))}for name,module in model._modules.items():#print(i, (name, module))layers_dict[name] module# 遍历模型的每一层, 获得指定层的输出特征图# features: 指定层输出的特征图, features_flatten: 为继续完成前端传播而设置的变量features imgstart_flatten Falsefeatures_flatten Nonefor name, layer in layers_dict.items():if name ! out_layer and start_flatten is False: # 指定层之前features layer(features)elif name out_layer and start_flatten is False: # 指定层features layer(features)start_flatten Trueelse: # 指定层之后if name fc:breakif features_flatten is None:features_flatten layer(features)else:features_flatten layer(features_flatten)#print(features_flatten.shape)features_flatten torch.flatten(features_flatten, 1)#print(features_flatten.shape)output model.fc(features_flatten)# 预测得分最高的那一类对应的输出scorepred torch.argmax(output, 1).item()pred_class output[:, pred]# 求中间变量features的梯度# 方法1# features.register_hook(extract)# pred_class.backward()# 方法2features_grad autograd.grad(pred_class, features, allow_unusedTrue)[0]grads features_grad # 获取梯度pooled_grads torch.nn.functional.adaptive_avg_pool2d(grads, (1, 1))# 此处batch size默认为1所以去掉了第0维batch size维pooled_grads pooled_grads[0]features features[0]print(pooled_grads:, pooled_grads.shape)print(features:, features.shape)# features.shape[0]是指定层feature的通道数for i in range(features.shape[0]):features[i, ...] * pooled_grads[i, ...]# 计算heatmapheatmap features.detach().cpu().numpy()heatmap np.mean(heatmap, axis0)heatmap np.maximum(heatmap, 0)heatmap / np.max(heatmap)# 可视化原始热力图if visual_heatmap:plt.matshow(heatmap)plt.show()img cv2.imread(img_path) # 用cv2加载原始图像heatmap cv2.resize(heatmap, (img.shape[1], img.shape[0])) # 将热力图的大小调整为与原始图像相同heatmap np.uint8(255 * heatmap) # 将热力图转换为RGB格式heatmap cv2.applyColorMap(heatmap, cv2.COLORMAP_JET) # 将热力图应用于原始图像superimposed_img heatmap * 0.7 img # 这里的0.4是热力图强度因子cv2.imwrite(save_path, superimposed_img) # 将图像保存到硬盘if __name__ __main__:model models.resnet50(pretrainedTrue)#model.eval()transform transforms.Compose([transforms.Resize(448),transforms.ToTensor(),transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])])# 构建模型并加载预训练参数#seresnet50 FineTuneSEResnet50(num_class113).cuda()#checkpoint torch.load(resume_path)#seresnet50.load_state_dict(checkpoint[state_dict])draw_CAM(model, single_img_path, save_path, transformtransform, visual_heatmapTrue, out_layerout_layer_name)
http://www.pierceye.com/news/241074/

相关文章:

  • 黄页网站推广公司网站建设公司包括哪些内容
  • 网站平台建设目标修改网站j广州网络公司
  • 网站制作商城正规免费发布信息网站
  • 建设企业网站的人员组成莱芜网站建设费用
  • 长春建站网站西宁做网站君博专注
  • 学校实验室网站建设现状怎么做网站 ppt
  • 网站建设骗子公司新开传奇网站发布网
  • 智能模板网站建设方案深圳团购网站设计
  • 网站建设和网页设计用wordpress做网站页面显示404
  • 网站首页百度收录怎么做做装修公司网站
  • 湛江网站排名提升免费网站空间有什么用
  • 装修公司网站 源码绍兴市交通建设检测中心网站
  • 企业建设网站流程图珠海网站建设 旭洁
  • 企业商城网站开发互联网行业公司
  • 中国建设人才服务信息网是正规网站wordpress文章分享
  • 渭南网站建设公司电话央美老师做的家具网站
  • 机械网站建设栏目内容怎么欣赏一个网站设计图
  • 帝国cms 网站搬家wordpress 购物 插件下载
  • 怎么做ppt教程网站手机能访问asp网站
  • 电子商务网站建设与管理教材评价织梦网站地图调用全站文章
  • 020网站开发多少钱汕尾建设网站首页
  • 桓台县建设局网站做弹幕网站有哪些
  • 淘宝客导购网站源码iis默认网站属性
  • 做网站用矢量图还是位图安徽省住房和建设厅网站
  • 彭阳网站建设多少钱嘉兴专业的嘉兴专业网站建设项目
  • 网站建设导航分哪几类公司网站大全
  • 网站建设 实训题安能建设总公司网站打不开
  • 莱西网站建设龙岗中心城有学网站建设
  • 重庆技术网站建设宝安做网站哪家好
  • 仿制网站建设写网站建设的软文