定义一个特征提取的类:

参考pytorch论坛:How to extract features of an image from a trained model

from torchvision.models import resnet18
import torch.nn as nn
myresnet=resnet18(pretrained=True)
print (myresnet) class FeatureExtractor(nn.Module):
def __init__(self, submodule, extracted_layers):
super(FeatureExtractor, self).__init__()
self.submodule = submodule
self.extracted_layers = extracted_layers def forward(self, x):
outputs = []
for name, module in self.submodule._modules.items():
if name is "fc": x = x.view(x.size(0), -1)
x = module(x) # last layer output put into current layer input
print(name)
if name in self.extracted_layers:
outputs.append(x)
return outputs exact_list=["conv1","layer1","avgpool"]
myexactor=FeatureExtractor(myresnet,exact_list).cuda() x = Variable(torch.rand(5, 3, 224, 224), requires_grad=True).cuda() y=myexactor(x) # 5x64x112x112 5x64x56x56 5x512x1x1
print (myexactor) print(type(y))
print(type(y[0]))
for i in range(len(y)):
print y[i].data.cpu().numpy().size
print y[i].data.cpu().numpy().shape # <type 'list'>
# <class 'torch.autograd.variable.Variable'>
#
# (5, 64, 112, 112)
#
# (5, 64, 56, 56)
#
# (5, 512, 1, 1)
#特征输出可视化
import matplotlib.pyplot as plt
for i in range(64):
ax = plt.subplot(8, 8, i + 1)
ax.set_title('Sample #{}'.format(i))
ax.axis('off')
plt.imshow(x[0].data.numpy()[0,i,:,:],cmap='jet')
plt.show()

最新文章

  1. MyEclipse 2014跟2015破解
  2. Linux高级编程--04.GDB调试程序(查看数据)
  3. HDU 5056 Boring Count --统计
  4. ESXi云管理平台
  5. zookeeper的 目录加密
  6. 如何处理JSON数据中含有双引号
  7. Remove Nth Node From End of List 解答
  8. Lua的元方法__newindex元方法
  9. 基于TypeScript的FineUIMvc组件式开发(概述)
  10. 详解Java中的clone方法
  11. Android开发——BroadcastReceiver广播的使用
  12. 精通CSS+DIV网页样式与布局--CSS文字效果
  13. swift 粒子效果
  14. springboot (spring mvc)集成swagger
  15. [Shell]Bash基本功能:历史命令 &amp; 别名 &amp; Bash快捷键
  16. mysql补充(3)优化sql语句查询常用的30种方法
  17. 机器学习之step by step实战及知识积累笔记
  18. JavaScript(select onchange)的网页跳转的简单实现
  19. html个人网页
  20. 三十分钟理解:线性插值,双线性插值Bilinear Interpolation算法

热门文章

  1. 最详细的vue-cli安装教程 &amp;^没有之一 ^&amp; 大神亲测。。╮( ̄▽  ̄)╭
  2. CodeForces - 600C Make Palindrome 贪心
  3. 在Tomcat中部署web项目的三种方式
  4. 深入理解ajax系列第九篇
  5. [UOJ422]小Z的礼物
  6. zoj 3469 区间dp **
  7. python开发_tkinter_图形随鼠标移动
  8. python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐
  9. SPOJ 10232. Distinct Primes
  10. PAT甲级1114. Family Property