pytorch获取vgg16-feature层输出的例子
实际应用时可能比较想获取VGG中间层的输出,
那么就可以如下操作:
import numpy as np import torch from torchvision import models from torch.autograd import Variable import torchvision.transforms as transforms class CNNShow(): def __init__(self, model): self.model = model self.model.eval() self.created_image = self.image_for_pytorch(np.uint8(np.random.uniform(150, 180, (224, 224, 3)))) def show(self): x = self.created_image for index, layer in enumerate(self.model): print(index,layer) x = layer(x) def image_for_pytorch(self,Data): transform = transforms.Compose([ transforms.ToTensor(), # range [0, 255] -> [0.0,1.0] transforms.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)) ] ) imData = transform(Data) imData = Variable(torch.unsqueeze(imData, dim=0), requires_grad=True) return imData if __name__ == '__main__': pretrained_model = models.vgg16(pretrained=True).features CNN = CNNShow(pretrained_model) CNN.show()
以上这篇pytorch获取vgg16-feature层输出的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
pytorch在fintune时将sequential中的层输出方法,以vgg为例
有时候我们在fintune时发现pytorch把许多层都集合在一个sequential里,但是我们希望能把中间层的结果引出来做下一步操作,于是我自己琢磨了一个方法,以vgg为例,有点僵硬哈! 首先pytorch自带的vgg16模型的网络结构如下: VGG( (features): Sequential( (0): Conv2d (3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (1): ReLU(inplace) (2): Co
-
Pytorch抽取网络层的Feature Map(Vgg)实例
这边我是需要得到图片在Vgg的5个block里relu后的Feature Map (其余网络只需要替换就可以了) 索引可以这样获得 vgg = models.vgg19(pretrained=True).features.eval() print (vgg) Feature Map可利用下面的class class Vgg16(nn.Module): def __init__(self, pretrained=True): super(Vgg16, self).__init__() self.n
-
Pytorch 抽取vgg各层并进行定制化处理的方法
工作中有时候需要对vgg进行定制化处理,比如有些时候需要借助于vgg的层结构,但是需要使用的是2 channels输入,等等需求,这时候可以使用vgg的原始结构用class重写一遍,但是这样的方式比较慢,并且容易出错,下面给出一种比较简单的方式 def define_vgg(vgg,input_channels,endlayer,use_maxpool=False): vgg_ad = copy.deepcopy(vgg) model = nn.Sequential() i = 0 for la
-
pytorch 可视化feature map的示例代码
之前做的一些项目中涉及到feature map 可视化的问题,一个层中feature map的数量往往就是当前层out_channels的值,我们可以通过以下代码可视化自己网络中某层的feature map,个人感觉可视化feature map对调参还是很有用的. 不多说了,直接看代码: import torch from torch.autograd import Variable import torch.nn as nn import pickle from sys import path
-
pytorch获取vgg16-feature层输出的例子
实际应用时可能比较想获取VGG中间层的输出, 那么就可以如下操作: import numpy as np import torch from torchvision import models from torch.autograd import Variable import torchvision.transforms as transforms class CNNShow(): def __init__(self, model): self.model = model self.model
-
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
如下所示: #获取模型权重 for k, v in model_2.state_dict().iteritems(): print("Layer {}".format(k)) print(v) #获取模型权重 for layer in model_2.modules(): if isinstance(layer, nn.Linear): print(layer.weight) #将一个模型权重载入另一个模型 model = VGG(make_layers(cfg['E']), **kw
-
分享Pytorch获取中间层输出的3种方法
目录 [1]方法一:获取nn.Sequential的中间层输出 [2]方法二:IntermediateLayerGetter [3]方法三:钩子 [1]方法一:获取nn.Sequential的中间层输出 import torch import torch.nn as nn model = nn.Sequential( nn.Conv2d(3, 9, 1, 1, 0, bias=False), nn.BatchNorm2d(9),
-
Python 从subprocess运行的子进程中实时获取输出的例子
有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的.在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和使用. 同时,对于在子进程里的程序,我们希望能够实时获取其输出,以在主进程中打印相关信息,使我们能够了解当前子程序的执行进度.对此,subprocess模块也提供了相应的参数,能够将子程序的标准输出和标准错误输出返回给主程序. 下面,我们就通过一个例子来说明这个功能.首先,我们需要一个用于模拟标准输
-
Pytorch 实现自定义参数层的例子
注意,一般官方接口都带有可导功能,如果你实现的层不具有可导功能,就需要自己实现梯度的反向传递. 官方Linear层: class Linear(Module): def __init__(self, in_features, out_features, bias=True): super(Linear, self).__init__() self.in_features = in_features self.out_features = out_features self.weight = Pa
-
layui 弹出层回调获取弹出层数据的例子
如下所示: // 弹出楼栋负责人信息页面 layer.open({ type: 2, title:'请选择楼栋负责人', maxmin: false, area: ['60%', '80%'], offset: '0px', content: '${ctx}/life/houserInsertion/headBuildingInfo?pkProject='+pkProject, btn: ['确定','关闭'], yes: function(index){ //当点击'确定'按钮的时候,获取弹出
-
keras 获取某层输出 获取复用层的多次输出实例
官方文档很全面,搜索功能也很好.但是如果你想单独实现某个功能,根本无从搜寻.于是我写了这个笔记.从功能出发. 两个tensor经过一个layer实例会产生两个输出. a = Input(shape=(280, 256)) b = Input(shape=(280, 256)) lstm = LSTM(32) encoded_a = lstm(a) encoded_b = lstm(b) lstm.output 这个代码有错误,因为最后一行没有指定lstm这个layer实例的那个输出. >> A
-
人工智能学习PyTorch实现CNN卷积层及nn.Module类示例分析
目录 1.CNN卷积层 2. 池化层 3.数据批量标准化 4.nn.Module类 ①各类函数 ②容器功能 ③参数管理 ④调用GPU ⑤存储和加载 ⑥训练.测试状态切换 ⑦ 创建自己的层 5.数据增强 1.CNN卷积层 通过nn.Conv2d可以设置卷积层,当然也有1d和3d. 卷积层设置完毕,将设置好的输入数据,传给layer(),即可完成一次前向运算.也可以传给layer.forward,但不推荐. 2. 池化层 池化层的核大小一般是2*2,有2种方式: maxpooling:选择数据中最大
随机推荐
- pycharm 使用心得(九)解决No Python interpreter selected的问题
- Python使用shelve模块实现简单数据存储的方法
- JavaScript实现的Tween算法及缓冲特效实例代码
- vue.js学习笔记:如何加载本地json文件
- JS数组排序方法实例分析
- [vbs]每一行的最后一个字符转换成_
- c# 获取数据库中所有表名称的方法
- javascript 一个函数对同一元素的多个事件响应
- node.js中的fs.mkdirSync方法使用说明
- win2008 r2 IIS7.5 设置强制所有文件直接下载
- 将Linux代码移植到Windows的简单方法
- JS Select下拉框(支持输入模糊查询)
- jquery简单倒计时实现方法
- jQuery语法总结和注意事项小结
- android通过代码的形式来实现应用程序的方法
- JavaScript关于select的相关操作说明
- JAVA中实现原生的 socket 通信机制原理
- C#如何实现图片的剪裁并保存
- C#实现随机数产生类实例
- Android中使用Toast.cancel()方法优化toast内容显示的解决方法