pytorch 获取模型中间层输出的方法
admin
2024-01-18 11:39:37
0

1.使用hook钩子函数

获取resnet50中Avgpool层的输出,通过model.avgpool.register_forward_hook(hook_t)函数,可以获取到Avgpool层的输出

class ModelConfigure():def __init__(self, learning_rate = 1e-4):self.model = wide_resnet50_2(pretrained=pretrained_flag, progress=True)self.model.to('cpu')self.model.eval()none_layer = nn.Sequential()self.model.fc = none_layer  # delete fc layerdef hook_t(module, input, output):self.output_feature = outputself.model.avgpool.register_forward_hook(hook_t)self.optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate)self.mse_loss = torch.nn.MSELoss()def model_inference_and_train(self,x,target):self.model.forward(x)self.optimizer.zero_grad()loss = self.mse_loss(self.output_feature, target)print('mse_loss:',loss)loss.backward()self.optimizer.step()

2.使用model.named_children()

通过模块的名称判断是否为想要的输出

class ModelConfigure():def __init__(self, learning_rate = 1e-4):self.model = wide_resnet50_2(pretrained=pretrained_flag, progress=True)self.model.to('cpu')self.model.eval()none_layer = nn.Sequential()self.model.fc = none_layer  # delete fc layerself.optimizer = torch.optim.SGD(self.model.parameters(), lr=learning_rate)self.mse_loss = torch.nn.MSELoss()def model_inference_and_train(self,x,target):output = Nonefor submodule_name, submodule in self.model.named_children():x = submodule(x)# print('-----submodule_name:',submodule_name)if submodule_name in ['avgpool']:output = xself.optimizer.zero_grad()loss = self.mse_loss(output, target)print('mse_loss:',loss)loss.backward()self.optimizer.step()

相关内容

热门资讯

uu模拟器安卓系统,uu模拟器... 你有没有想过,在手机上玩电脑游戏是多么神奇的事情?想象你可以在小小的手机屏幕上,操控着那些庞大的游戏...
安卓连车载系统吗,创新科技引领... 你有没有想过,你的安卓手机和车载系统之间是不是也能来个亲密接触呢?想象当你开车在路上,手机上的导航、...
安卓换ios系统的感想,系统切... 你知道吗?我最近经历了一次大变身,把我的安卓手机换成了苹果的iOS系统。这可不是一个小决定,毕竟手机...
海尔电视怎么装安卓系统,解锁更... 亲爱的电视迷们,你是否对家里的海尔电视充满了好奇,想要给它来个“大变身”,让它从传统电视摇身一变,成...
安卓系统的几大分别 你知道吗?在智能手机的世界里,安卓系统可是当之无愧的“人气王”呢!它就像一位多才多艺的魔术师,总能变...
安卓机照片导入苹果系统,轻松实... 你有没有想过,把安卓手机里的照片导入到苹果系统里呢?这听起来可能有点复杂,但其实,只要掌握了正确的方...
安卓系统刷成miui系统软件 你有没有想过给你的安卓手机换换口味呢?没错,就是那种焕然一新的感觉!今天,就让我来带你一起探索如何将...
雷鸟安卓系统官网登录,解锁智能... 你有没有听说最近雷鸟安卓系统官网登录变得超级方便啦?没错,就是那个让无数手机用户爱不释手的系统,现在...
安卓系统的tf管理,功能解析与... 你有没有发现,你的安卓手机里藏着一个小秘密?那就是TF卡管理!别小看这个小功能,它可是让你的手机存储...
三星安卓系统转鸿蒙系统,跨越生... 你知道吗?最近有个大动作在手机圈里引起了不小的轰动呢!那就是三星安卓系统转鸿蒙系统的事情。是不是觉得...
安卓是用哪个系统,基于Linu... 你有没有想过,安卓手机里那些炫酷的功能,背后其实都离不开一个强大的系统支撑呢?没错,就是那个让安卓手...
橘子4.0系统是安卓几,深度解... 你有没有听说过橘子4.0系统?最近这个话题在手机圈里可是火得一塌糊涂呢!很多人都在问,这个橘子4.0...
安卓系统解锁文件在哪里,安卓系... 你是不是也和我一样,对安卓系统的解锁文件充满了好奇?想知道这些神秘的文件藏在哪里吗?那就跟着我一起探...
安卓系统为啥不要钱,技术开源的... 你有没有想过,为什么安卓系统这么神奇,竟然不要钱就能用?这背后可是有着不少故事呢,让我们一起揭开这个...
安卓系统播放器apk,安卓系统... 你有没有发现,手机里那个小小的播放器,竟然能承载我们那么多美好的回忆?今天,就让我带你一起探索安卓系...
安卓系统微信突然没了,原因揭秘... 最近我的安卓手机上微信突然不见了,这可真是让人头疼啊!微信可是我日常生活中必不可少的社交工具,这下可...
安卓系统点网页链接,探索便捷信... 你有没有遇到过这种情况?手机里打开了一个网页链接,点进去一看,哇,竟然是安卓系统的页面!是不是瞬间觉...
安卓系统起名好听吗 说到安卓系统,你是不是也和我一样,每次看到那些手机屏幕上跳出来的系统名称,就会忍不住想:这名字听起来...
氢os系统是安卓吗,安卓的革新... 你有没有想过,手机操作系统界最近又出现了一个新面孔——氢OS系统?它和安卓系统有什么关系呢?是不是安...
安卓系统如何改密码,安卓系统密... 手机里的安卓系统密码丢了?别急,让我来给你支个招,让你轻松找回或者重置密码,让你的手机安全无忧!一、...