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

网站上传wordpress百度官网首页入口

网站上传wordpress,百度官网首页入口,个人做门户网站,职业生涯规划大赛提问进行特征图可视化的时候,修改模型的forward函数来进行可视化十分麻烦,还需要想办法把特征图传出来,在模型层层调用的时候更加麻烦,要修改多个无关的嵌套,还容易引起bug。这里提供了一个简单的范式,只需要一…
  • 进行特征图可视化的时候,修改模型的forward函数来进行可视化十分麻烦,还需要想办法把特征图传出来,在模型层层调用的时候更加麻烦,要修改多个无关的嵌套,还容易引起bug。这里提供了一个简单的范式,只需要一个vis.py文件(可从train.py或者test.py修改而来),无需修改模型的定义文件,即可实现特征图的可视化。
  • 该做法的核心思想是两点,第一点是利用vis.py里面的全局变量来存储特征图以及网络层数等,第二点是直接在vis.py里面重写需要可视化特征图的module的forward函数,以用最小的改动将特征图传递出来。
  • 这段代码还提供了利用sns.heatmap可视化特征图的例子,整体代码如下:
# vis talor mod
import argparse
import os
import math
from functools import partialimport yaml
import torch
from torch.utils.data import DataLoader
from tqdm import tqdmimport datasets
import models
import utils
from torchvision import transforms
from PIL import Image
import random
import numpy as npimport matplotlib.pyplot as plt
import seaborn as sns
from models.models_meta import mGAttn
from einops import rearrange as rearrange@torch.no_grad()
def vis_mod(mod_dict, path, name):for i in [3, 13]:#[3,5,19]:scale = mod_dict[f'layer_{i}_scale'] offset = mod_dict[f'layer_{i}_offset']name_scale_i = name+f'scale_{i}_avg.png'vis_feature(scale, path, name_scale_i)vis_feature_each_channel(scale, path, name_scale_i)name_offset_i = name+f'offset_{i}_avg.png'vis_feature(offset, path, name_offset_i)   vis_feature_each_channel(offset, path, name_offset_i)   return def vis_feature(feature, path, name):feature = feature[0, ...]# lower_percentile = 0.1# upper_percentile = 0.9# for i in range(feature.shape[0]):#     feature_i = feature[i].view(-1)#     lower_bound = torch.quantile(feature_i, lower_percentile)#     upper_bound = torch.quantile(feature_i, upper_percentile)#     feature[i,...] = torch.clamp(feature[i,...], lower_bound, upper_bound)# plt.figure()plt.figure(figsize=(1.58, 1.58))ax = sns.heatmap(torch.mean(feature, dim=0).cpu().detach().numpy(), cbar=False, annot=False, xticklabels=[], yticklabels=[], cmap='rainbow')ax.tick_params(axis='both', which='both', length=0)plt.tight_layout()plt.savefig(os.path.join(path, name))plt.close()for i in range(feature.size(0)//32):plt.figure(figsize=(1.58, 1.58))ax = sns.heatmap(torch.mean(feature[i*32:(i+1)*32, :, :], dim=0).cpu().detach().numpy(), cbar=False, annot=False, xticklabels=[], yticklabels=[], cmap='rainbow')ax.tick_params(axis='both', which='both', length=0)plt.tight_layout()plt.savefig(os.path.join(path, name.replace('avg', f'avg_{i}')))plt.close()def vis_feature_each_channel(feature, path, name):feature = feature[0, ...]# lower_percentile = 0.1# upper_percentile = 0.9# for i in range(feature.shape[0]):#     feature_i = feature[i].view(-1)#     lower_bound = torch.quantile(feature_i, lower_percentile)#     upper_bound = torch.quantile(feature_i, upper_percentile)#     feature[i,...] = torch.clamp(feature[i,...], lower_bound, upper_bound)for i in range(feature.shape[0]):# plt.figure()plt.figure(figsize=(1.58, 1.58))ax = sns.heatmap(feature[i].cpu().detach().numpy(), cbar=False, annot=False, xticklabels=[], yticklabels=[], cmap='rainbow')ax.tick_params(axis='both', which='both', length=0)plt.tight_layout()plt.savefig(os.path.join(path, name.replace('avg', f'channel_{i}')))plt.close()global_feature_maps = {}
def modify_forward_for_mGAttn(module):if isinstance(module, mGAttn):# original_forward = module.forwarddef modified_forward(self, x):"""x: b * c * h * w"""# 这里省略了模型原有的一些forward过程curr_layer = global_feature_maps['curr_layer']if curr_layer in [3, 13]:#[1,5,19]:B, h, Ch, N = offset.shapeglobal_feature_maps[f'layer_{curr_layer}'] = feature.view(B, h, He, We)global_feature_maps['curr_layer'] = curr_layer+1# 这里省略了模型原有的一些forward过程return outmodule.forward =  modified_forward.__get__(module)for child_module in module.children():modify_forward_for_mGAttn(child_module)if __name__ == '__main__':# 这里省略了一些模型的定义过程# modify forward for mGAttnmodify_forward_for_mGAttn(model)# 接着按自己的方式直接调用模型即可myeval(model)
http://www.dtcms.com/wzjs/196146.html

相关文章:

  • 做企业网站代码那种好免费手机网站自助建站
  • 公司网站建设价格表免费网站安全软件大全
  • 做公司官方网站关键词排名查询软件
  • 网站建好怎么发布网站查询工具seo
  • 日报做的地方网站宁波网站推广找哪家公司
  • 肇庆网站开发哪家专业厦门seo公司
  • 企业如何在工商网站上做公示百度企业查询
  • 做外汇网站卖判刑多少年厦门关键词优化网站
  • 公司的网站建设规划书百度提交网址多久才会收录
  • 网站建设文化代理商现在最好的免费的建站平台
  • 类似建设b站网站百度竞价排名推广
  • wordpress哪个主题广东seo推广哪里好
  • 比较好看的网站广州谷歌seo
  • 做营销策划要用到哪些网站重庆seo技术分享
  • 上海企乐网站制作公司软文发稿网
  • 做最好的美食分享网站互联网产品推广
  • 网站开发的中期工作seo优化网站网页教学
  • wordpress订阅插件上海seo有哪些公司
  • 中兴建设 基金管理有限公司网站线上运营推广
  • dz论坛网站建设百度小说搜索风云榜排行榜
  • 好的高端企业网站建设公司怎样进行seo
  • 南昌网站备案网站推广引流最快方法
  • 凡科做的网站怎么改壁纸推广和竞价代运营
  • 换网站了吗品牌推广公司
  • 上海php网站开发公司域名解析
  • 关于旅行的网站怎样做怎么让网站排名上去
  • 企业网站seo服务靠谱seo整站优化外包
  • 自己创办网站央视新闻的新闻
  • 能够做代理的网站有哪些无锡seo培训
  • 青州做网站的网络公司网站搭建平台都有哪些