news 2026/4/29 23:23:33

生成对抗网络旋转机械小样本故障诊断【附代码】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
生成对抗网络旋转机械小样本故障诊断【附代码】

博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 如需沟通交流,扫描文章底部二维码。


(1)增强型辅助分类生成对抗网络设计:

针对旋转机械故障样本稀缺问题,提出EACGAN模型。在标准ACGAN基础上嵌入自校正卷积模块,该卷积在标准卷积之后使用空间注意力自适应调整特征图,增强生成器对故障细微信号的建模能力。损失函数融合了Wasserstein距离、梯度惩罚和谱归一化,将WGAN-GP的稳定性优势引入ACGAN。具体地,判别器的损失包含真伪判断的Wasserstein损失、类别判断的辅助分类损失和梯度惩罚项。在连续小波变换将一维振动信号转为64x64时频图后,EACGAN生成图像与真实图像的FID分数从原始ACGAN的87降至52,说明生成质量大幅提升。<br>

(2)多尺度注意力卷积神经网络诊断模型:

构建MSACNN作为诊断主干,该网络包含三个并行卷积分支,卷积核尺寸分别为3、5和7,每个分支后接高效通道注意力模块ECA。ECA通过一维卷积快速计算通道权重,参数量比SE模块少90%。三个分支的输出沿通道方向拼接后送入全局平均池化和分类层。在CWRU数据集上,使用EACGAN生成的每类100个样本补充训练,MSACNN的故障识别准确率达到96.8%,仅比使用全部真实数据低1.2%。而无数据增强时准确率仅为81%。模型在三种不同的旋转机械数据集(轴承、齿轮、转子)上均表现出良好的泛化性。<br>

(3)改进域对抗神经网络无监督迁移诊断:

对于变工况下无标签目标域的问题,提出MDANN模型,该模型使用多尺度深度可分离残差网络作为特征提取器,替代标准域对抗网络中的普通卷积。每个残差块包含膨胀率为1、2、4的三个并行深度可分离卷积,以提取不同尺度的特征。在域判别器中引入局部最大均值差异损失,对齐源域和目标域的子领域分布(每类故障单独对齐)。在CWRU到XJTU-SY的跨数据集迁移任务中,MDANN达到87.2%的准确率,比基本DANN提高9.5个百分点。对抗训练的训练曲线表明,MDANN收敛更平滑,最大均值差异值最终降至0.08。

import torch import torch.nn as nn import torch.nn.functional as F class SelfCalibratedConv(nn.Module): def __init__(self, in_ch, out_ch, kernel_size=3): super().__init__() self.conv = nn.Conv2d(in_ch, out_ch, kernel_size, padding=kernel_size//2) self.spatial_attn = nn.Sequential( nn.Conv2d(out_ch, 1, kernel_size=1), nn.Sigmoid() ) def forward(self, x): out = self.conv(x) attn = self.spatial_attn(out) return out * attn class EACGAN_Generator(nn.Module): def __init__(self, noise_dim=100, num_classes=10): super().__init__() self.label_emb = nn.Embedding(num_classes, noise_dim) self.fc = nn.Linear(noise_dim*2, 4*4*256) self.conv = nn.Sequential( nn.ConvTranspose2d(256, 128, 4, stride=2, padding=1), nn.BatchNorm2d(128), nn.ReLU(), SelfCalibratedConv(128, 64, 3), nn.Upsample(scale_factor=2), nn.Conv2d(64, 1, 3, padding=1), nn.Tanh() ) def forward(self, noise, labels): label_emb = self.label_emb(labels) z = torch.cat([noise, label_emb], dim=1) z = self.fc(z).view(-1, 256, 4, 4) return self.conv(z) class MultiScaleResidual(nn.Module): def __init__(self, in_ch, out_ch): super().__init__() self.conv1 = nn.Conv2d(in_ch, out_ch, 3, dilation=1, padding=1) self.conv2 = nn.Conv2d(in_ch, out_ch, 3, dilation=2, padding=2) self.conv3 = nn.Conv2d(in_ch, out_ch, 3, dilation=3, padding=3) self.eca = nn.Conv1d(out_ch*3, out_ch*3, kernel_size=3, padding=1) def forward(self, x): feat1 = self.conv1(x); feat2 = self.conv2(x); feat3 = self.conv3(x) concat = torch.cat([feat1, feat2, feat3], dim=1) B, C, H, W = concat.shape attn = self.eca(concat.mean(dim=[2,3]).reshape(B, C, 1)).sigmoid() return concat * attn.reshape(B, C, 1, 1) + x def gradient_penalty(critic, real, fake, device='cuda'): alpha = torch.rand(real.size(0), 1, 1, 1, device=device) interpolates = (alpha * real + (1 - alpha) * fake).requires_grad_(True) d_interpolates = critic(interpolates) gradients = torch.autograd.grad(outputs=d_interpolates, inputs=interpolates, grad_outputs=torch.ones_like(d_interpolates), create_graph=True, retain_graph=True)[0] grad_norm = gradients.view(gradients.size(0), -1).norm(2, dim=1) return ((grad_norm - 1) ** 2).mean() ",


如有问题,可以直接沟通

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 23:22:22

【LLM推理优化与部署工程②】KV Cache是怎么工作的,为什么它决定了你的并发上限

如果你在调整vLLM的--max-num-seqs参数,或者发现并发请求一多系统就OOM,或者不理解为什么输入越长服务越容易崩——这篇文章解释背后发生了什么。 KV Cache是大模型推理里最重要的工程机制。不理解它,你就没法真正理解推理系统的性能瓶颈在哪里,也没法做出正确的配置和扩容…

作者头像 李华
网站建设 2026/4/29 23:13:49

SPC控制图八大判异准则实战:用Python代码模拟异常点并自动报警

SPC控制图八大判异准则实战&#xff1a;用Python代码模拟异常点并自动报警 在工业生产的质量监控领域&#xff0c;SPC控制图早已成为过程控制的基石工具。然而&#xff0c;许多质量工程师在实际应用中常常面临一个关键痛点&#xff1a;虽然能够绘制出精美的控制图&#xff0c;却…

作者头像 李华
网站建设 2026/4/29 23:13:29

当YOLO遇见人脸:如何用5分钟构建工业级视觉检测系统

当YOLO遇见人脸&#xff1a;如何用5分钟构建工业级视觉检测系统 【免费下载链接】yolo-face YOLO Face &#x1f680; in PyTorch 项目地址: https://gitcode.com/gh_mirrors/yo/yolo-face 你是否曾想过&#xff0c;让计算机像人类一样精准识别面孔&#xff1f;在拥挤的…

作者头像 李华
网站建设 2026/4/29 23:12:47

工业RFID选型避坑:为什么你的FR336读写器和三菱PLC通信总失败?排查思路与软件配置要点

工业RFID与PLC通信故障排查实战指南&#xff1a;从硬件接线到协议解析 现场工程师老张盯着闪烁的PLC指示灯叹了口气——这已经是本周第三次被叫到产线处理FR336读写器与三菱FX3U的通信故障了。明明按照手册接好了线&#xff0c;配置参数也反复核对过&#xff0c;可设备间的数据…

作者头像 李华
网站建设 2026/4/29 23:08:52

YOLOv5/v8炼丹指南:从IoU到EIoU,手把手教你选对目标检测损失函数

YOLOv5/v8目标检测实战&#xff1a;五大IoU变体损失函数深度解析与调优指南 当你在YOLO项目的训练日志中看到mAP值波动不前时&#xff0c;是否想过问题可能出在那行不起眼的loss_type配置上&#xff1f;2016年诞生的IoU Loss如同打开了潘多拉魔盒&#xff0c;随后涌现的GIoU、D…

作者头像 李华