2024 7.8~7.14 周报

一、上周工作

2024 7.1~7.7 周报-CSDN博客

二、本周计划

跑实验、机器学习、数学表达式

三、完成情况

1. 跑实验

1)编码器加入DenseNet,并在解码器的第一层加入cbam

损失函数——smooth、lpips,跑的CurveVelA,学习率0.001,数据量24000。

改了损失函数后效果并没有之前好,指标上lpips体现较为明显,跟InversionNet差不多。效果上层与层的轮廓也没有之前清晰。

分析原因:损失函数设计的问题

跑完大数据量并没有很大提升,过于耗时,后面开始从小数据量进行训练,及时止损。

2)测试网络部分——5000数据量

损失函数:l1+l2

跑的CurveFaultA

学习率0.0001

基于Inv,编码器加入了DenseNet,并在解码器的每一层加入cbam:密集连接已经学习到较多的特征了,解码器每一层都加入cbam,效果并没有很大提升,还会增加计算量。

基于Inv,编码器加入了DenseNet,并在解码器的第一层加入cbam:测试网络的三个实验中,指标和效果最好,所有指标均优于Inv。

基于Inv,编码器加入了DenseNet:loss有点奇怪,可能是数据集不同,在第100 epoch左右,loss出现垂直下降。

3)测试损失函数部分——5000数据量

损失函数:mae、logcosh

跑的CurveFaultA

学习率0.0001

指标和效果目前最好。

2.机器学习

机器学习常识、激活函数、softmax、多个输出的分类(Optional)

3.数学表达式

累加累乘、积分、min、argmin

4.如何知道模型中不同层的名称呢?

一种方法是直接print打印模型,效果如下:

DenseNet((convblock1): ConvBlock((layers): Sequential((0): Conv2d(5, 32, kernel_size=(7, 1), stride=(2, 1), padding=(3, 0))(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(2): LeakyReLU(negative_slope=0.2, inplace=True)))(layer1): DenseBlock((layers): Sequential((0): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))(1): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(96, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))(2): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))(3): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(160, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))(4): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(192, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))(5): _DenseLayer((dense_layer): Sequential((0): BatchNorm2d(224, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(224, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(4): ReLU(inplace=True)(5): Conv2d(128, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False))(dropout): Dropout(p=0, inplace=False))))(transition1): _TransitionLayer((transition_layer): Sequential((0): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(1): ReLU(inplace=True)(2): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)(3): AvgPool2d(kernel_size=2, stride=2, padding=0)))
)

另一种方法是使用get_graph_node_names函数,效果如下:第一个x是输入

['x', 'convblock1.layers.0', 'convblock1.layers.1', 'convblock1.layers.2',  'layer1.layers.0.dense_layer.0', 'layer1.layers.0.dense_layer.1', 'layer1.layers.0.dense_layer.2', 'layer1.layers.0.dense_layer.3', 'layer1.layers.0.dense_layer.4', 'layer1.layers.0.dense_layer.5', 'layer1.layers.0.cat', 'layer1.layers.1.dense_layer.0', 'layer1.layers.1.dense_layer.1', 'layer1.layers.1.dense_layer.2', 'layer1.layers.1.dense_layer.3', 'layer1.layers.1.dense_layer.4', 'layer1.layers.1.dense_layer.5', 'layer1.layers.1.cat', 'layer1.layers.2.dense_layer.0', 'layer1.layers.2.dense_layer.1', 'layer1.layers.2.dense_layer.2', 'layer1.layers.2.dense_layer.3', 'layer1.layers.2.dense_layer.4', 'layer1.layers.2.dense_layer.5', 'layer1.layers.2.cat', 'layer1.layers.3.dense_layer.0', 'layer1.layers.3.dense_layer.1', 'layer1.layers.3.dense_layer.2', 'layer1.layers.3.dense_layer.3', 'layer1.layers.3.dense_layer.4', 'layer1.layers.3.dense_layer.5', 'layer1.layers.3.cat', 'layer1.layers.4.dense_layer.0', 'layer1.layers.4.dense_layer.1', 'layer1.layers.4.dense_layer.2', 'layer1.layers.4.dense_layer.3', 'layer1.layers.4.dense_layer.4', 'layer1.layers.4.dense_layer.5', 'layer1.layers.4.cat', 'layer1.layers.5.dense_layer.0', 'layer1.layers.5.dense_layer.1', 'layer1.layers.5.dense_layer.2', 'layer1.layers.5.dense_layer.3', 'layer1.layers.5.dense_layer.4', 'layer1.layers.5.dense_layer.5', 'layer1.layers.5.cat', 'transition1.transition_layer.0', 'transition1.transition_layer.1', 'transition1.transition_layer.2', 'transition1.transition_layer.3']

四、存在的主要问题

1. 训练时,loss在下降,但是时间在震荡,考虑是设计的损失函数出现的问题吗?

之前正常情况下,每个epoch的时间是不会有太大变化。跑实验时由最初的4min20s,到4min52s。

2. 测试:在生成图片时突然停止,发生报错:Fail to allocate bitmap。

原因:内存不足。问题的原因应该是plt.show()虽然没显示,但还是会占用内存。

解决办法:在引用的地方加上:

import matplotlib
matplotlib.use("Agg")

重新运行,没有再终止了 

3. 训练结束无法展示png图片。UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.   plt.show()

——出现的问题是上面一个问题导致的,show.py文件中终端被修改成了Agg(非交互式)。全部修改成TkAgg(交互式)。

4. 如何设计出一个较好的损失函数?

五、下一步计划

原计划7.17交论文初稿,因为实验的原因,需要延后。

还需要测学习率、CurveVelA数据集,测完后准备在工作站跑大实验。

思考动机:网络、损失函数为什么要这样设计。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW扬尘控制系统

设计了一套基于LabVIEW的扬尘控制系统,通过监测TsP(总悬浮颗粒物)浓度、风向和摄像头视频,实现对环境的综合监控和扬尘控制。系统可以自动判断扬尘位置,并驱动抑尘设备进行抑尘。硬件选用NI cDAQ-9178数据采集模块、Om…

linux高级编程(网络)(www,http,URL)

数据的封包和拆包 封包: 应用层数据(例如HTTP请求)被传递给传输层。传输层(TCP)在数据前添加TCP头部(包含端口号、序列号等)。网络层(IP)在TCP段前添加IP头部&#xff…

数据库:基本操作

SQL struct query language 关系型数据库 非关系 芒果db ddl data defination language 建表 dml 新增 修改 删除一行 data modifty dql 查询 data query language 查询 select 数据库 sun solaris gnu 1、分类: 大型 中型 …

【C++】C++中的strcpy函数详解

目录 一. strcpy 是什么 二.strcpy怎么用 一. strcpy 是什么 在C中&#xff0c; strcpy 是一个用于字符串复制的函数&#xff0c;它定义在 <cstring> 头文件中。这个函数会将一个字符串复制到另一个字符串中&#xff0c;包括空字符 \0 &#xff0c;它标志着字符串…

Linux FFmpeg安装教程

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

DHCP服务、FTP服务

一、DHCP 1.1 DHCP是什么 DHCP&#xff08;Dynamic Host Configuration Protocol&#xff0c;动态主机配置协议&#xff09;是一种网络协议&#xff0c;用于自动分配 IP 地址和其他网络配置信息给网络中的设备 1.2 DHCP的好处 自动化: 减少了手动配置 IP 地址和网络参数的工…

Vulnhub:DC-1

1.环境搭建 靶机下载地址 将下载的靶机导入到Oracle VM VirtualBox中&#xff0c;设置仅主机模式&#xff0c;使用和kali相同的网卡 2.渗透过程 使用nmap工具进行主机发现扫描 nmap -sn 192.168.56.0/24 发现靶机ip地址&#xff0c;使用nmap工具进行靶机端口扫描 nmap -sS…

ArcGIS Pro SDK (九)几何 4 折线

ArcGIS Pro SDK &#xff08;九&#xff09;几何 4 折线 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 4 折线1 构造折线 - 从映射点的枚举2 获取折线的点3 获取折线的各个部分4 枚举折线的各个部分5 反转折线中点的顺序6 获取折线的段7 构建多部分折线8 折线的起点…

Python算法分析学习目标及能力验证

1、突破编程的关键点 不破不立&#xff0c;如何破&#xff1f;如何立&#xff1f; 人生苦短&#xff0c;我用python 目标&#xff1a;不在于多&#xff0c;而在于准&#xff1b; 验证&#xff1a;必须量化&#xff0c;否则都是虚夸。 那么目标怎么准确可量化呢&#xff1f; …

IDEA创建普通Java项目

环境准备 Java环境 运行javac查看java环境是否安装完成 开发工具Intellij IDEA 下载地址&#xff1a;https://www.jetbrains.com/idea/download/?sectionwindows 创建项目 点击新建项目 填入项目名字&#xff0c;项目路径&#xff0c;选择maven,点击下面的创建 运行项目 …

Docker的数据管理和网络通信

目录 一、Docker 的数据管理 1&#xff0e;数据卷 2&#xff0e;数据卷容器 二、端口映射 三、容器互联&#xff08;使用centos镜像&#xff09; 四、*Docker 镜像的创建 1&#xff0e;基于现有镜像创建 2&#xff0e;基于本地模板创建 3&#xff0e;基于Dockerfile 创…

Sqlmap中文使用手册 - Optimization模块参数使用

目录 1. Optimization模块的帮助文档2. 各个参数的介绍2.1 --predict-output2.2 --keep-alive2.3 --null-connection2.4 --threadsTHREADS2.5 -o 1. Optimization模块的帮助文档 Optimization:These options can be used to optimize the performance of sqlmap-o …

BL201分布式I/O耦合器连接Profinet网络

钡铼技术的BL201分布式I/O耦合器是一个用于Profinet网络的设备&#xff0c;用于连接远程输入/输出&#xff08;I/O&#xff09;设备到控制系统&#xff0c;如可编程逻辑控制器&#xff08;PLC&#xff09;&#xff0c;能够实现分布式的I/O连接和通信。 它支持标准Profinet IO …

一文说透Springboot单元测试

你好&#xff0c;我是柳岸花开。 一、单元测试说明 1 单元测试的优点与基本原则 一个好的单元测试应该具备以下FIRST 原则和AIR原则中的任何一条&#xff1a; 单元测试的FIRST 规则 Fast 快速原则&#xff0c;测试的速度要比较快&#xff0c; Independent 独立原则&#xff0c;…

【Springboot】新增profile环境配置应用启动失败

RT 最近接手了一个新的项目&#xff0c;为了不污染别人的环境&#xff0c;我新增了一个自己的环境配置。结果&#xff0c;在启动的时候总是失败&#xff0c;就算是反复mvn clean install也是无效。 问题现象 卡住无法进行下一步 解决思路 由于之前都是能启动的&#xff0c…

随机过程基础:3.平稳过程(2)

平稳过程是指随机过程的统计特性&#xff08;如均值、方差、协方差等&#xff09;不随时间变化。我们可以在时间域或频率域上研究其性质。以下是对平稳过程的协方差函数和功率谱密度的详细讨论。 一、协方差函数 协方差函数就像是描述两个随机变量之间关系的一种“尺子”。想象…

LLM之Prompt(四)| OpenAI、微软发布Prompt技术报告

摘要 生成式人工智能 &#xff08;GenAI&#xff09; 系统正越来越多地部署在各行各业和研究机构。开发人员和用户通过使用提示或提示工程与这些系统进行交互。虽然提示是一个广泛提及且被研究的概念&#xff0c;但由于该领域的新生&#xff0c;存在相互矛盾的术语和对构成提示…

API接口的概念和接口测试的概念

一、什么是接口测试 接口测试是项目测试的一部分&#xff0c;顾名思义&#xff0c;它测试的主要对象是接口&#xff0c;是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点。测试的重点是检查数据交互、传递、和控制管理过…

三级_网络技术_17_交换机及其配置

1.下面是一台三层交换机的部分路由表信息。根据表中的路由信息&#xff0c;以下描述错误的是()。 此设备启用了OSPF动态路由协议&#xff0c;并学到了E1和E2两种类型的OSPF外部路由 比设备通过动态路由协议得到缺省路由&#xff0c;下一跳是设备的TenGigabitEthernet1/15接口 …

Linux的初级简单命令

目录 初学简单命令 ls&#xff1a; cd: username: touch: mkdir: cp: rmdir&#xff1a; rm: mv&#xff1a; 课后习题&#xff1a; 初学简单命令 ls&#xff1a; ls [选项] [文件或目录] 选项: -l &#xff1a; 每列仅显示一个文件或目录名称。 -a 或--all &am…