2024 2.17~2.23 周报

一、本周计划

学习如何缝合模块,跑代码InversionNet、想idea并实验,准备开题报告,学习python基础语法

二、完成情况

1 学习如何在代码中加入模块

可添加的模块如:

通道注意力CA
空间注意力SA
self attention变体
频域快速傅里叶FFT
卷积模块变体
特征融合
下采样

在你想要添加的网络模块进行添加,例如在InversionNet网络中的上采样的第一层添加CBAM。

        CBAM(Convolutional Block Attention Module)结合了通道注意力和空间注意力。CBAM从通道和空间两个维度计算feature map的attention map,然后将attention map与输入的feature map相乘来进行特征的自适应学习。CBAM模块如下图所示。

图:CBAM模块

# 定义一个包含CBAM模块的卷积层
class CBAMBlock(nn.Module):def __init__(self, in_channels, reduction=16):super(CBAMBlock, self).__init__()self.in_channels = in_channelsself.reduction = reduction# 通道注意力计算self.channel_attention = nn.Sequential(nn.AdaptiveAvgPool2d(1),nn.Conv2d(in_channels, in_channels // reduction, kernel_size=1, padding=0),nn.ReLU(inplace=True),nn.Conv2d(in_channels // reduction, in_channels, kernel_size=1, padding=0),nn.Sigmoid())# 空间注意力计算self.spatial_attention = nn.Sequential(nn.Conv2d(in_channels, in_channels // reduction, kernel_size=1, stride=1),nn.BatchNorm2d(in_channels // reduction),nn.ReLU(inplace=True),nn.Conv2d(in_channels // reduction, in_channels // reduction, kernel_size=3, stride=1, padding=1),nn.BatchNorm2d(in_channels // reduction),nn.ReLU(inplace=True),nn.Conv2d(in_channels // reduction, 1, kernel_size=1, stride=1),nn.Sigmoid())def forward(self, x):# 计算通道注意力系数channel_att = self.channel_attention(x)out = x * channel_att# 计算空间注意力系数spatial_att = self.spatial_attention(out)out = out * spatial_attreturn out

缝合模块时会出现的问题:输入参数、数据维度不匹配

在网络中加上CBAM不一定带来性能上的提升,影响因素可能有数据集、网络自身、注意力所在的位置等。

2. 跑代码——InversionNet

很久没看代码会生疏,重新去看了InversionNet并复现,结果如下。

InversionNet:epoch180,batchsize50,数据量1000

(未解决)当数据量过大时出现问题:_pickle.UnpicklingError: pickle data was truncated


对比试验(待修改):修改上采样部分,需要注意参数

  • ConvTranspose2d:创建反卷积层进行上采样(U-Net使用的则是这一种);
  • UpsamplingBilinear2d:传统的双线性插值上采样(FCN使用的是这一种); 

图像上采样的主要目的是放大图像,主要包括:

(1)内插值法,即在原有图像像素的基础上,在像素点值之间采用合适的插值算法插入新的元素;

(2)反卷积方法(Deconvolution),又称转置卷积法(Transposed Convolution);

(3)反池化方法(Unpooling)。

        在图像处理上面,插值是指利用已知邻近像素点的灰度值或RGB中的三色值产生未知像素点的灰度值或RGB三色值,也就是说用来填充图像变换时像素之间的空隙。目的是由原始图像再生出具有更高分辨率的图像

        线性插值法是指使用连接两个已知量的直线来确定在这个两个已知量之间的一个未知量的值的方法。他的几何意义为利用过A点和B点的直线(y=kx+b) 来近似表示原函数。

        双线性插值是插值算法中的一种,是线性插值的扩展。利用原图像中目标点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,其核心思想是在两个方向分别进行一次线性插值。 「解析」双线性插值-CSDN博客

        线性插值法利用原图像中两个点计算像素值进行插值,双线性插值法利用原图像中四个点计算目标像素值进行插值。

在 Pytorch 中实现,双线性插值处理即 'bilinear' 模式

import torch.nn.functional as FF.interpolate(x, size=input_shape, mode='bilinear', align_corners=False)mode (str) – 
algorithm used for upsampling: 'nearest' | 'linear' | 'bilinear' | 
'bicubic' | 'trilinear' | 'area' | 'nearest-exact'. 
Default: 'nearest'

3 学python 

代码能力比较薄弱,准备系统学习python语法,以便于之后跑实验修改代码等等。

Python入门学习——基础语法-CSDN博客

 三、下周计划

1.学习师兄的论文DD-Net、

2.修改并跑代码 将注意力机制加入网络中,对比实验

3.完善开题报告,准备开题答辩等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2804348.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

第九节HarmonyOS 常用基础组件25-QRCode

1、描述 用于显示单个二维码的组件。 2、接口 QRCode(value:string) 3、参数 参数名 参数类型 必填 描述 value string 是 二维码内容字符串。 4、属性 名称 参数类型 描述 color ResourceColor 设置二维码颜色。默认值:Color.Black backgroundCo…

CondaValueError: Malformed version string ‘~‘: invalid character(s)

使用conda 安装一些库时出现以下报错: CondaValueError: Malformed version string ~: invalid character(s)尝试进行更新conda conda upgrade -n base conda或者如果是环境方面的问题, conda upgrade -n base -c defaults --override-channels conda如…

opengl pyqt 显示文字

目录 效果图 效果图 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QOpenGLWidgetfrom OpenGL.GL import * from OpenGL.GLUT import * from OpenGL.GLU import *class OpenGLWidget(QOpenGLWidget):def __init__(self, parentNone):super(OpenGLWidget…

PS移轴模糊做逼真物体投影

以下这种模糊投影,就是用ps的移轴模糊来实现的,哈哈哈,今天又学到个知识点 首先将扣好的物体放在ps里面,然后新建一个图层,用矩形选框工具画一个矩形,并填充前景色(黑色) 2.取消选区后,将该矩形…

轻松制作商业画册的秘籍

对于许多商业人士来说,制作一本精美的商业画册是一个重要的任务,它不仅代表了公司的形象,也是与客户和潜在客户建立联系的重要工具。然而,制作一本商业画册并不像看起来那么简单。有许多因素需要考虑,包括设计、布局、…

【C语言】指针变量未初始化

我们知道:全局变量未赋初值,编译器会直接赋值为0;局部变量如果未赋初值,则会维持上一状态保存在该地址上的值,这个值是随机的。把这个值赋值给局部变量是没有意义的。 但是指针变量是如何解决不赋初值? 指…

系列五十二、idea中统一配置生成Java类的作者信息

一、idea中统一配置生成Java类的作者信息 1.1、位置 1.2、脚本 /*** Author : 一叶浮萍归大海* Date: ${DATE} ${TIME}* Model Description: * Description:*/

【misc | CTF】攻防世界 simple_transfer

天命:这题其实不简单啊 拿到流量包,丢进去wireshare,题目都说了flag在里面 ctrl f 直接搜索字符串 右键,追踪流 -> TCP流 查找 .pdf 文件,其实这里思路是比较奇怪的,毕竟是的确比较多内容&#xff0c…

【Wio Terminal】使用WiFi(1)- 更新无线核心固件

使用WiFi(1)- 更新无线核心固件 一、概述1、更新无线核心固件步骤 1 - 擦除初始出厂固件步骤 2 - 刷入最新的固件 2、从Arduino IDE检查RTL8720固件版本安装rpcWiFi库验证 3、更新 SAMD ArduinoCore 一、概述 这篇wiki介绍了如何为Wio Terminal上的Real…

「C语言进阶1」动态内存分配

目录 一、动态内存分配是什么? 二、为什么需要动态内存分配? 三、怎么进行动态内存分配? 1. malloc 2. calloc 3. realloc a. realloc功能解析 b. 内存泄漏和内存块被截断问题 c. 总结 4. free 四、使用动态内存分配常见的问题 【面试题】 一…

.netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项

1、SqlSugarCore 相关 1.1 主项目添加数据&#xff0c;否则会报数据库连接错误&#xff1a; <InvariantGlobalization>false</InvariantGlobalization> <PropertyGroup><TargetFramework>net8.0</TargetFramework><Nullable>enable</…

MES系统中的手动排产和自动排产-助力生产效率

企业在排产管理中面临的问题&#xff1a; 大多数的企业在调度排产过程中&#xff0c;都会遇到以下问题。首先是插单非常的多&#xff0c;计划调整困难&#xff0c;会经常性的发生原材料、零部件的备货不足。计划按MRP或库存展示计算出需求后将产生大量工单&#xff0c;这些工单…

代码随想录算法训练营day20||二叉树part07、● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先

530.二叉搜索树的最小绝对差 【需要领悟一下二叉树遍历上双指针操作&#xff0c;优先掌握递归】 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 思路 题目中要求在二叉…

【Java】类与对象(实验二)

目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 掌握类的定义与对象的创建。理解构造方法和this关键字的用法。掌握对象对于属性及方法的引用。 二、实验内容 1、编写一个Java程序&#xff0c;定义一个表示学生的类Student&#xff0c;该类包括: (1)这个类的…

【SelectIO】bitslice原语学习记录

基本概念 在Ultrascale (plus)系列上的FPGA中&#xff0c;Xilinx引入了bitslice硬核&#xff0c;它取代了7系列上的IDELAYCTRL/IODELAY/IOSERDES/IODDR系列硬核&#xff0c;用于为HP&#xff08;High Performance&#xff09;类型Bank上的IO接口提供串并转化、信号延时、三态控…

读取7400MB/s!华为发布eKitStor Xtreme M.2闪存条

今日&#xff0c;华为举行数据存储新春新品发布会&#xff0c;不仅发布全新数据湖解决方案&#xff0c;华为还针对商业市场与分销市场发布了全闪存存储新品。 据介绍&#xff0c;面向游戏加速、影视编辑、户外作业等场景&#xff0c;华为发布eKitStor Xtreme系列高性能M.2闪存条…

静态时序分析:SDC约束命令set_driving_cell详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 在上文中&#xff0c;我们不建议使用set_drive命令而是使用set_driving_cell命令&#xff0c;这是一个描述输入端口驱动能力更精确的方法。因为大多数情况下&…

【Java网络编程06】HTTPS原理

1. HTTPS基本概念 HTTPS&#xff1a;HTTPS也是一个应用层协议&#xff0c;它在HTTP协议的基础上引入了一个加密层——SSL协议&#xff0c;区别就在于HTTP协议是基于明文传输的&#xff08;不安全&#xff09;&#xff0c;使用HTTPS加密就能在一定程度上防止数据在传输过程中被…

Keepalived实现Nginx的高可用集群案例

服务器规划: serverb(nginx2):192.168.233.144 serverc(客户端):192.168.233.140 serverd(nginx1):192.168.233.141 结构图: serverd(nginx1): # 安装nginx yum install nginx -y# 进入nginx配置目录 cd /e…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture07多维输入

lecture07多维输入 课程网址 Pytorch深度学习实践 部分课件内容&#xff1a; import torch import numpy as npxy np.loadtxt(diabetes.csv.gz, delimiter,, dtypenp.float32) x_data torch.from_numpy(xy[:,:-1]) #第一列开始最后一列不要 y_data torch.from_numpy(…