12.13 深度学习-空间注意力仿射变换STN

server/2024/12/14 12:13:15/

# 就是对图像做一个仿射 变换 仿射变换的参数要去学习 直接用nn.Linear()就行

# 仿射变换的原理就是 线性变换

# 这个仿射变换要加在模型最开始的地方

import torch

import torch.nn as nn

import torch.nn.functional as F


 

class STN(nn.Module):

    def __init__(self, c, h, w):

        super(STN, self).__init__()

        # 定义线性变换 要输出 1,6的矩阵 然后变为2,3的 然后 这个2,3的矩阵 通过affine_grid变为一个 仿射变换矩阵 然后 通过grid_sample 把 数据 和仿射变换矩阵  完成仿射变换

        # 两个线性层是根据图来的

        self.fc = nn.Sequential(

            nn.Linear(in_features=c * h * w, out_features=32),

            nn.Tanh(),

            nn.Linear(in_features=32, out_features=6),

            nn.Tanh(),

        )

    def forward(self, x):

        batch_size, c, h, w = x.size()

        # 2行3列的矩阵

        theta = self.fc(x.view(batch_size, -1)).view(batch_size, 2, 3)

        # 仿射变换矩阵

        grid = F.affine_grid(

            theta, torch.Size((batch_size, c, h, w)), align_corners=False

        )

        # 开始采样

        sample = F.grid_sample(x, grid, align_corners=False)

        return sample


http://www.ppmy.cn/server/150088.html

相关文章

【Unity高级】如何获取着色器(Shader)的关键词

在动态设置Shader时,会需要通过EnableKeyword, DisableKeyword来完成。但一个Shader有哪些关键词呢?Unity的文档中并没有列出来,但我们可以通过遍历Shader的KeywordSpace来查看。 1. 代码如下 using UnityEngine;public class KeywordExamp…

中信建投张青减持交易课堂:金融智慧与公益的交响曲

在当今瞬息万变的金融市场中,中信建投张青减持交易课堂如同一股清流,不仅以其专业的金融培训体系引领行业风向,更将公益精神深深融入教育之中,谱写了一曲金融智慧与公益情怀的华美乐章。张青,这位在金融界享有盛誉的投…

游戏引擎学习第44天

仓库: https://gitee.com/mrxiao_com/2d_game 向量数学的重要性 矢量数学非常重要,因为 它在某种程度上类似于将C和C视为高于汇编语言的语言,从而使得我们能够以略高的层次思考问题,同时保留大部分性能好处和直接访问的类型。这种思维方式就…

设置了pointer-events: none;后,鼠标悬停不会触发el-tooltip的显示逻辑

问题: el-tooltip是一个提供文字提示的组件,通常依赖于鼠标悬停(hover)事件来显示提示信息。当内层元素设置了pointer-events: none;后,鼠标悬停事件会穿过这个内层元素,不会触发el-tooltip的显示逻辑。如…

如果你想在 Android 上使用 Python 开发应用

如果你想在 Android 上使用 Python 开发应用,以下是一些常见的工具和框架,可以帮助你将 Python 与 Android 结合起来实现应用开发: 1. Kivy Kivy 是一个开源 Python 库,支持快速开发跨平台应用,包括 Android。Kivy 适…

vue依据下拉框选择其余信息

下拉框选择内容后&#xff0c;其余input框与该下拉框相关的内容实时回显,用change加方法 <el-row><el-col :span"12"><el-form-item label"选择站点" prop"resourcesId"><el-select v-model"form.resourcesId" …

kali黑客-利用searchsploit搜索exp一键化攻击

一、帮助手册 二、搜索的参数 2.1. 区分大小写的搜索 2.2. 精确匹配 2.3. 严格搜索 2.4.仅根据特定exp和排除指定的值 三、结果的输出方式 3.1. 以JSON格式显示结果 3.2. 允许利用标题溢出到其列中 3.3. 显示利用的完整路径 3.4. 显示更多输出信息 3.5. 显示指向地址…

计算机网络:数据链路层(三)

网课资源&#xff1a; 湖科大教书匠 1、以太网交换机 本质是一个多接口的网桥&#xff0c;执行自学习 算法 习题1 1 以太网交换机的自学习是指 A. 记录帧的源MAC地址与该帧进入交换机的端口号 B. 记录帧的目的MAC地址与该帧进入交换机的端口号 C. 记录数据包的源IP地址与…