pytorch forward两个参数实例

yipeiwu_com6年前Python基础

以channel Attention Block为例子

class CAB(nn.Module):
 
  def __init__(self, in_channels, out_channels):
    super(CAB, self).__init__()
    self.global_pooling = nn.AdaptiveAvgPool2d(output_size=1)
    self.conv1 = nn.Conv2d(in_channels, out_channels, kernel_size=1, stride=1, padding=0)
    self.relu = nn.ReLU()
    self.conv2 = nn.Conv2d(out_channels, out_channels, kernel_size=1, stride=1, padding=0)
    self.sigmod = nn.Sigmoid()
 
  def forward(self, x):
    x1, x2 = x # high, low
    x = torch.cat([x1,x2],dim=1)
    x = self.global_pooling(x)
    x = self.conv1(x)
    x = self.relu(x)
    x = self.conv2(x)
    x = self.sigmod(x)
    x2 = x * x2
    res = x2 + x1
    return res

以上这篇pytorch forward两个参数实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Pyramid Mako模板引入helper对象的步骤方法

原理是我们在pyramind的before render event 中插入我们的helper 1. 创建helper.py文件,在里面添加上我们常用的方法 2. 在__init__.p...

浅析python中的迭代与迭代对象

什么是python的迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。 (在Python中,迭代是...

Windows下Anaconda2安装NLTK教程

Windows下Anaconda2安装NLTK教程

本文记录了Anaconda2安装NLTK的方法,供大家参考,具体内容如下 先看我的python和Anaconda版本 启动anaconda命令窗口 开始> 所有程序> a...

pytorch 实现在预训练模型的 input上增减通道

如何把imagenet预训练的模型,输入层的通道数随心所欲的修改,从而来适应自己的任务 #增加一个通道 w = layers[0].weight layers[0] = nn.Con...

Python入门篇之数字

Python入门篇之数字

数字类型   数字提供了标量贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。当然,这个过程无论对程序员还是对用户都是透明的,并不会影响软件的开发方式。 P...