其他
【他山之石】反卷积和上采样
“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
地址:https://www.zhihu.com/people/lun-wen-guai-85
最近对于分割中decoder部分扩大图像尺寸的操作困惑,特记录一下
01
nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1)
#in_channels(int) – 输入信号的通道数
#out_channels(int) – 卷积产生的通道数
#kerner_size(int or tuple) - 卷积核的大小
#stride(int or tuple,optional) - 卷积步长,即要将输入扩大的倍数。
#padding(int or tuple, optional) - 输入的每一条边补充0的层数,高宽都增加2*padding
#output_padding(int or tuple, optional) - 输出边补充0的层数,高宽都增加padding
#groups(int, optional) – 从输入通道到输出通道的阻塞连接数
#bias(bool, optional) - 如果bias=True,添加偏置
#dilation(int or tuple, optional) – 卷积核元素之间的间距
反卷积的具体操作
反卷积核的确定
# 定义 bilinear kernel
def bilinear_kernel(in_channels, out_channels, kernel_size):
#return a bilinear filter tensor
factor = (kernel_size + 1) // 2
if kernel_size % 2 == 1:
center = factor - 1
else:
center = factor - 0.5
og = np.ogrid[:kernel_size, :kernel_size]
filt = (1 - abs(og[0] - center) / factor) * (1 - abs(og[1] - center) / factor)
weight = np.zeros((in_channels, out_channels, kernel_size, kernel_size), dtype='float32')
weight[range(in_channels), range(out_channels), :, :] = filt
return torch.from_numpy(weight)
02
torch.nn.Upsample(size=None, scale_factor=None, mode='nearest', align_corners=None)
size :目标输出大小
03
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“他山之石”历史文章
PyTorch vs LibTorch:网络推理速度谁更快?
MMOCR:OpenMMLab 全流程的文字检测识别理解工具箱
Pytorch技巧:DataLoader的collate_fn参数使用详解
Pytorch优化器及其内置优化算法原理介绍
神经网络学习 | 鸢尾花分类的实现
Pytorch 基础-tensor 数据结构
Transformer风险评分:实体嵌入+注意力机制
Pytorch:eval()的用法比较
ONNX模型文件->可执行文件 C Runtime通路 具体实现方法
Pytorch mixed precision 概述(混合精度)
Weights & Biases (兼容多种深度学习框架的可视化工具WB中文简介)
GCN实现及其中的归一化
Pytorch Lightning 完全攻略
Tensorflow之TFRecord的原理和使用心得
从零开始实现一个卷积神经网络
更多他山之石专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!