2024 3.23~3.29周报

上周工作

SVInvNet论文研读

本周计划

加入DenseNet,修改网络架构,跑代码

总结

DenseNet

  • 密集块:DenseNet将网络分成多个密集块(Dense Block)。在每个密集块内,每一层都连接到前面所有的层。这种跳跃连接有助于解决梯度消失问题,因为每一层都可以直接访问之前层的梯度信息,使得训练更加稳定。
  • 特征重用性:由于每一层都与前面所有层连接,网络可以自动地学习到更加丰富和复杂的特征表示。有助于提高网络的性能,同时减少了需要训练的参数数量。
  • 过渡层:在密集块之间,通常会使用过渡层来控制特征图的大小,从而减少计算量。

优点:

  • 网络可以更好地利用浅层特征信息,从而提高网络的性能。
  • 网络具有更强的特征重用能力,可以减少参数数量,降低过拟合风险。
  • 网络训练更加稳定,可以缓解梯度消失和梯度爆炸等问题。

实验1——引入密集连接在编码器部分

前期太混乱,没有把densenet代码理解透彻,密集快和过渡块他们的通道数和尺寸具体每一层是如何变化的

后面自己先计算了尺寸以及通道变化,因为密集块部分根据Bottleneck层数来改变通道数,过渡层(BN+ReLU+1×1Conv+2×2AvgPooling)是通道数减半并且尺寸减半。

  • 先采用(kernel_size=(7, 1), stride=(2, 1), padding=(3, 0)的卷积)将(,5,1000,70)变化到(,32,500,70),
  • 再使用三个(kernel_size=(3, 1), stride=(2, 1), padding=(1, 0)卷积)变化到(,64,63,70),使尺寸近似方形
  • 接着使用三个(密集块+过渡层),密集块层数是(6,12,8),变化到(,256,7,8)
  • 再使用卷积变化到(,512,1,1)
    self.convblock5 = ConvBlock(256, 512, kernel_size=(7, ceil(50 * sample_spatial/ 7)), padding=0)
  • 解码部分跟InversionNet一致,未做改变

数据集:curvevel-a

Epochs = 120
Trainsize = 5000 

ValSize = 500
Testsize = 500

TestBatchsize = 50
Batchsize = 64

但目前感觉网络架构有问题后续需要修改,比InversionNet一个epoch慢了1min。——因为DenseNet缺点有:

  • 要进行多次Concatenate操作,数据需要被复制多次,显存容易增加得很快,需要一定的显存优化技术。
  • 网络结构较为复杂,需要更多的计算资源和时间来训练。
  • 在一些应用场景下,由于特征传递的过多,会导致内存占用较大。

使用以下预训练模型进行测试:

PreModelname = 'InversionNet_DenseNet_TrainSize5000_Epoch120_BatchSize64_LR0.001_epoch200.pkl'

测试结果如下:第三行

 实验结果如下:

 

实验2——使用aba跑InversionNet

数据集:curvevel-a

Epochs = 120
Trainsize = 5000 

ValSize = 500
Testsize = 500

TestBatchsize = 50
Batchsize = 64

Trained model saved: 100 percent completed
Training complete in 41m  43s 

 测试结果如下:

 

后续跑24000再看看结果 

遇到的问题及解决

1.使用torchsummary时报错AttributeError: ‘list‘ object has no attribute ‘size‘:

查看torchsummary的源码,发现处理input的方法都是粗暴使用如下语句:

summary[m_key]["input_shape"] = list(input[0].size())

 修改后:

            # summary[m_key]["input_shape"] = list(input[0].size())
            if isinstance(input[0], torch.Tensor):
                summary[m_key]["input_shape"] = list(input[0].size())
            elif isinstance(input[0], list):
                summary[m_key]["input_shape"] = list(item.size() for item in input[0])

2.RuntimeError: Can't call numpy() on Tensor that requires grad. Use tensor.detach().numpy() instead.

原因:待转换类型的PyTorch Tensor变量带有梯度,直接将其转换为numpy数据将破坏计算图,因此numpy拒绝进行数据转换,实际上这是对开发者的一种提醒。如果自己在转换数据时不需要保留梯度信息,可以在变量转换之前添加detach()调用。

解决办法:

y.numpy() ---> y.detach().numpy()

3.RuntimeError: Given groups=1, weight of size [64, 3, 7, 7], expected input[10, 5, 1000, 70] to have 3 channels, but got 5 channels instead

原因:通道数不匹配 

4.TypeError: 'module' object is not callable

原因:Python导入模块的方法有两种——import module 和 from module import,区别是前者所有导入的东西使用时需加上模块名的限定,而后者不要。

5.UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.解决办法 - 欣杰科技 - 博客园 (cnblogs.com)

6.TypeError: empty() received an invalid combination of arguments - got (tuple, dtype=NoneType, device=NoneType), but expected one of: 

原因:在python3中两个整型相除得到的是浮点型,例如:4/2=2.0,而在构建卷积时的参数要求时整型。

解决:传参时加上int转换:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac m1 Flink的HelloWorld

首先在官方下载Downloads | Apache Flink 下载好压缩包后解压,得到Flink文件夹 进入:cd flink-1.19.0 ls 查看里面的文件: 执行启动集群 ./bin/start-cluster.sh 输出显示它已经成功地启动了集群,并且正在启动 standalonesessio…

Vue ElementPlus Input输入框

Input 输入框 通过鼠标或键盘输入字符 input 为受控组件,它总会显示 Vue 绑定值。 通常情况下,应当处理 input 事件,并更新组件的绑定值(或使用v-model)。否则,输入框内显示的值将不会改变。不支持 v-mode…

Oracle 低代码平台 Apex 最新版本 23.2 安装过程

趁春节快结束前,安装了一把APEX ,到目前为此,APEX最新版本为23.2,23.2和21版本有一些变化,只是用于验证,我 是使用的单独模式,没有安装TOMAT,下面列一下安装过程: 1.环境…

机器学习——最优化模型

最优化模型的概述: 从某种程度上说,我们的世界是由最优化问题组成的。每一天,我们的生活都面临无数的最优化问题:上班怎么选择乘车路线,才能舒服又快速地到达公司;旅游如何选择航班和宾馆,既省…

[flink 实时流基础] 转换算子

flink学习笔记 数据源读入数据之后,我们就可以使用各种转换算子,将一个或多个DataStream转换为新的DataStream。 文章目录 基本转换算子(map/ filter/ flatMap)聚合算子(Aggregation)按键分区(…

【隐私计算实训营006隐语PIR介绍及开发实践】

1. 隐语实现PIR总体介绍 隐匿查询(Private Information Retrieval PIR)定义 按服务器数量分类 单服务器方案(Single Server)多服务器方案(Multi-Server) 按查询类型分类 Index PIRKeyword PIR 隐语目前…

基于两个单片机串行通信的电子密码锁设计

1.功能 电子号码锁在实际应用中应该有两部分,一部分在外部,有键盘部分和密码显示;另一部分内部,设置密码、显示密码。使用单片机自身带有的串口可以很方便的实现单片机之间的通信,使输入的密码值传送到主机检验是否是…

nginx的https与动态负载均衡

nginx的https 证书可以根据你的域名和服务器服务商去进行签发 , 比如 : 阿里云 腾讯云 百度云 华为云等 这里使用的是腾讯云 : 下载证书 : 选择 nginx: 下载之后传递到服务器上。 下面开始配置nginx的https: 1. 解压下载的证书包 cd /etc/ssl unzip xxcc.dwa_nginx.zip mv…

【A-010】基于SSH的宠物狗商城系统(含论文)

【A-010】基于SSH的宠物狗商城系统(含论文) 开发环境: Eclipse/MyEclipse、Tomcat8、Jdk1.8 数据库: MySQL 项目介绍: 在科学技术飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道&am…

Cesium实现渐变面

一、效果图 二、实现思路 使用着色器,通过纹理坐标和其他参数计算出材质的颜色和透明度。通过给定的颜色、漫反射强度和透明度,计算出最终的反射颜色和透明度,并且根据给定的中心点位置和当前像素的纹理坐标,计算出距离中心的距离…

怎么快速上手虚拟化(容器)技术——以 Docker 为例

Docker 整体介绍 Docker 是一种使用 Go 语言开发的容器工具。所谓容器,实际上是一种虚拟化技术,用于为应用提供虚拟化的运行环境,相较于虚拟机具有轻量级、低延迟的特性。 下面是对上述介绍的说明: 应用程序运行需要一定的依赖…

在 C#和ASP.NET Core中创建 gRPC 客户端和服务器

关于gRPC和Google protobuf gRPC 是一种可以跨语言运行的现代高性能远程过程调用 (RPC) 框架。gRPC 实际上已经成为 RPC 框架的行业标准,Google 内外的组织都在使用它来从微服务到计算的“最后一英里”(移动、网络和物联网)的强大用例。 gRP…

canvas画图,画矩形可拖拽移动,可拖拽更改尺寸大小

提示:canvas画图,画矩形,圆形,直线,曲线可拖拽移动 文章目录 前言一、画矩形,圆形,直线,曲线可拖拽移动总结 前言 一、画矩形,圆形,直线,曲线可拖…

壁纸小程序Vue3(分类页面和用户页面基础布局)

1.配置tabBar pages.json "tabBar": {"color": "#9799a5","selectedColor": "#28B389","list": [{"text": "推荐","pagePath": "pages/index/index","iconPath&quo…

6.6物联网RK3399项目开发实录-驱动开发之LED灯的使用(wulianjishu666)

90款行业常用传感器单片机程序及资料【stm32,stc89c52,arduino适用】 链接:https://pan.baidu.com/s/1M3u8lcznKuXfN8NRoLYtTA?pwdc53f LED 使用 前言 AIO-3399J 开发板上有 2 个 LED 灯,如下表所示: 可通过使用 LED 设备子系统或者直…

EXCEL-VB编程实现自动抓取多工作簿多工作表中的单元格数据

一、VB编程基础 1、 EXCEL文件启动宏设置 文件-选项-信任中心-信任中心设置-宏设置-启用所有宏 汇总文件保存必须以宏启动工作簿格式类型进行保存 2、 VB编程界面与入门 参考收藏 https://blog.csdn.net/O_MMMM_O/article/details/107260402?spm1001.2014.3001.5506 二、…

云计算探索-剖析虚拟化技术

引言 虚拟化技术,作为现代信息技术架构的核心构成元素,以其独特的资源抽象与模拟机制,成功地瓦解了物理硬件与操作系统间的刚性连接,开创了一个资源共享、灵活调配的崭新天地。本文将详细解析虚拟化技术的内涵、发展历程、分类及特…

Android 天气APP(二)获取定位信息

<LinearLayout xmlns:android“http://schemas.android.com/apk/res/android” xmlns:app“http://schemas.android.com/apk/res-auto” xmlns:tools“http://schemas.android.com/tools” android:gravity“center” android:layout_width“match_parent” android:la…

编曲知识16:贴唱混音思路 录音 对轨 降噪

贴唱混音思路 录音 对轨 降噪小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_6607f17ae4b092c1684f438a?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 混音思路 贴唱混音、分轨混音 贴唱:由翻唱混音发展而来,指仅处理人声和伴奏…

二期 1.1 微服务是什么?微服务与分布式架构的区别是什么?SpringBoot与Spring Cloud的区别是什么?

文章目录 前言一、单体架构二、微服务是什么?三、微服务与分布式的区别四、SpringBoot与Spring Cloud的区别?前言 欢迎大家来到二期Spring Cloud 微服务项目实战,首先我们应了解 单体架构是什么?它有哪些问题? 微服务是什么,与分布式架构的区别,Java中微服务框架Spring…