刀具磨损状态识别(Python代码,MSCNN_LSTM_Attention模型,初期磨损、正常磨损和急剧磨损分类,解压缩直接运行)

news2024/11/28 22:00:55

1.运行效果:
刀具磨损状态识别(Python代码,MSCNN_LSTM_Attention模型,初期磨损、正常磨损和急剧磨损)_哔哩哔哩_bilibili

环境库:

NumPy 版本: 1.19.4
Pandas 版本: 0.23.4
Matplotlib 版本: 2.2.3
Keras 版本: 2.4.0
TensorFlow 版本: 2.4.0
sklearn  版本: 0.19.2

如果库版本不一样, 一般也可以运行,这里展示我运行时候的库版本,是为了防止你万一在你的电脑上面运行不了,可以按照我的库版本进行安装并运行 

2.数据集介绍

试验数据来源于美国纽约预测与健康管理学 会(PHM)2010年高 速 数 控 机 床 刀 具 健 康 预 测 竞 赛的开放数据。数据集下载链接

链接:https://pan.baidu.com/s/17GbX52SlPScsv0G7fDp5dQ 
提取码:4561

实验条件如表格 所示 

实验数据获取的形式是:   试验在上述切削条件下重复进行 6 次全寿命周期试验。端面铣削材料为正方形, 每次走刀端
 面铣的长度为 108mm 且 每 次 走 刀 时 间 相 等 , 每次走刀后测量刀具的后刀面磨损量。试验监测数据有x、y 、 z 三向
 铣削力信号 , x 、 y 、 z 三向铣削振动信号以及声发射均方根值。
  6次的数据集中  3次实验中有测量铣刀的磨损量,其他3次没有测量,作为比赛的测试集。

文件c1、c4、c6为训练数据,文件c2、c3、c5为测试数据:

第1列:X维力(N)
第2列:Y维力(N)
第3列:Z维力(N)
第4列:X维振动(g)
第5列:Y维振动(g)
第6列:Z维振动(g)
第7列:AE-RMS (V)

刀具主轴转速为10400 RPM;进给速度1555 mm/min;切割Y深度(径向)为0.125 mm;
Z轴向切割深度为0.2 mm。数据以50khz /通道采集。


  系统测量的实验条件和实验方式如下所示:

3.本次项目介绍 

c1为数据集

version.py是查看你本地环境库的版本,为了方便你运行代码写的脚本

MSCNN_LSTM_Attention.py是读取原始数据,预处理,磨损状态分类的主程序。

数据量较大,因为本地电脑配置一般, 所以只用了c1数据集进行实验,只需要修改数据集路径,也可以调用c2-c6数据集。

数据集一共有315个表格

数据集开始位置

数据集截止位置:

参考知网论文:《基于改进卷积门控循环神经网络的刀具磨损状态识别》一文中,对初期磨损、正常磨损、急剧磨损的划分,取1-54为初期磨损,55-205为正常磨损、206-315为急剧磨损

数据预处理:

采用的数据是每个表格的第四列数据,即X维振动信号。如果想做数据融合(即把Y维和Z维振动信号也用上,可以私信定制)

对原始数据归一化后,采用10000的样本长度不重叠切割样本, 这次为做平衡数据集下的实验,每种状态取1000个样本。

实验部分:

训练集与测试集的比例:4:1

批量:64

优化器:Adam

学习率:0.001

模型(MSCNN_LSTM_Attention,每个样本的形状原为(10000,1),但是为了让网络训练更快,目前代码中变形为(250,40),两个输入形式在代码中都可以使用,只要稍微改动一下即可

 特征(训练集和测试集)形状

 标签(训练集和测试集)形状

4.效果(测试集准确率100个epoch训练完为94.67%)

测试集混淆矩阵 (以百分比形式展示)

测试集混淆矩阵(以个数为展示) 

对项目感兴趣的,可以关注最后一行


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import keras
import tensorflow as tf
from sklearn import __version__ as sklearn_version
from matplotlib import __version__ as matplotlib_version

print(f"NumPy 版本: {np.__version__}")
print(f"Pandas 版本: {pd.__version__}")
print(f"Matplotlib 版本: {matplotlib_version}")
print(f"Keras 版本: {keras.__version__}")
print(f"TensorFlow 版本: {tf.__version__}")
print(f"sklearn  版本: {sklearn_version}")
#数据集和代码压缩包:https://mbd.pub/o/bread/ZZWblphr

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

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

相关文章

【Qt之控件QTreeView】设置单元格高度、设置图标尺寸

设置列宽 设置高度 自定义代理 继承QItemDelegate,实现sizeHint ()方法,设置自定义委托。 class itemDelegate : public QItemDelegate {Q_OBJECTpublic:explicit itemDelegate(QObject *parent 0) : QItemDelegate(parent){}~itemDelegate(){}virtua…

策略路由和路由策略

目录 策略路由 路由策略 策略路由和路由策略 策略路由 Step1:配置ACL,匹配流量 acl number 2010 rule 10 permit source 192.168.10.0 0.0.0.255 acl number 2020 rule 10 permit source 192.168.20.0 0.0.0.255 Step2:流分类traffic classifier jiaoxue //匹配…

Navicat for MySQL 视图创建使用方法

创建视图步骤: 点击新建;选择视图;点击视图创建工具;可以在左侧拖拽表到工作区;选择表字段进行连线

二维码智慧门牌管理系统升级,解决地址要素挂接难题!

文章目录 前言一、传统问题和新解决方案二、多样化应用三、实际案例 前言 随着科技的不断发展,智能化管理已经深入到各行各业。在地址要素采集过程中,如何实现要素之间的挂接关系,是智慧门牌管理系统面临的重要挑战。本文将为您揭秘一种升级…

【错误解决方案】ModuleNotFoundError: No module named ‘cPickle‘

1. 错误提示 在python程序中试图导入一个名为cPickle的模块,但Python提示找不到这个模块。 错误提示:ModuleNotFoundError: No module named cPickle 2. 解决方案 实际上,cPickle是Python的pickle模块的一个C语言实现,通常用于…

【ROS入门】机器人导航(仿真)——导航实现

文章结构 建图 SLAM编写gmapping节点相关launch文件执行 地图服务 map_server地图保存节点 map_server地图服务 map_server 定位 amcl编写amcl节点相关的launch文件编写测试launch文件执行 路径规划 move_basemove_base与代价地图碰撞算法 move_base使用launch文件配置文件laun…

Selenium自动测试框架

selenium3 selenium元素的定位css 选择器Xpath 操作测试对象 API添加等待浏览器的操作键盘操作鼠标操作定位一组元素下拉框弹窗上传文件 <dependencies><!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --><dependency><…

phar反序列化学习

PHP反序列化常见的是使用unserilize()进行反序列化&#xff0c;除此之外还有其它的反序列化方法&#xff0c;不需要用到unserilize()。就是用到phar反序列化。 Phar phar文件 Phar是将php文件打包而成的一种压缩文档&#xff0c;类似于Java中的jar包。它有一个特性就是phar文…

2024级199管理类联考之写作

小作文(论证有效性分析-600字/30分/20-25分钟) 核心原理 找到明显的论证逻辑错误(找到4个即可得16分),然后分析前提推不出结论(14分)(反驳别人) 论证指的是前提推结论 前提引词&#xff1a;因为结论引词&#xff1a;所以,因此,由此可得等有些论证没有明显的引词,需要自行判断怎…

QT webengine显示HTML简单示例

文章目录 参考示例1TestWebenqine.promainwindow.hmainwindow.cppmain.cpp效果 示例2 (使用setDevToolsPage函数)main.cpp效果 参考 QT webengine显示HTML简单示例 示例1 编译器 : Desktop Qt 5.15.2 MSVC2019 64bit编辑器: QtCreator代码: TestWebenqine.pro # TestWeben…

C语言char的取值范围以及溢出情况

char 的取值范围 有符号&#xff1a; 1111 1111 ~ 1000 0000 — 0000 0000 ~ 0111 1111 -127 ~ -0 0 ~ 127 -128 ~ 127&#xff08;因为不需要两个 0 所以给负值增加了一位&#xff09; char 的溢出情况

C语言其它进制转十进制

权值法介绍 权值法&#xff1a; 主要功能为将 X 进制数据转为十进制的数据&#xff0c;具体流程如下&#xff1a; 将 X 进制中的每一位上的 基数 * 位权&#xff0c;再累加 基数&#xff1a;X 进制中每一位的数码个数 位权&#xff1a;X 进制每一位上对应的权值 二进制转十进…

MyString字符串类

MyString字符串类 包括&#xff1a;有参构造、拷贝构造、移动构造、析构、拷贝赋值和移动赋值。 MyString.h文件 #ifndef MYSTRING_H #define MYSTRING_H#include <iostream> using namespace std;class MyString {private:char* str;unsigned int MaxSize;unsigned i…

C语言 定义一个函数,并调用,该函数中完成百文百鸡问题

#include<stdio.h> int main(int argc, char const *argv[]) {int num 0;for (int i 0; i < 33; i){for (int j 0; j < 50; j){int x 100 - i - j;if(3*i2*jx/3 100 && x%3 0){printf("&#x1f413;有%d只,母鸡有%d只,小鸡有%d只\n",i,j,…

深度学习之基于yolov8的安全帽检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、基于yolov8的安全帽检测系统四. 总结 一项目简介 在企业作业和工地施工过程中&#xff0c;安全永远高于一切。众所周知&#xff0c;工人在进入…

【C++】STL容器——list类的使用指南(含代码演示)(13)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一、list 类——基本介绍二、list 类——…

僵尸网络|让人防不胜防的内部网络安全问题,作为企业IT不得不了解的基础安全

在当今数字化世界中&#xff0c;僵尸网络是一种令人不安的存在。它不是一种具体的物理实体&#xff0c;而是一种由恶意软件控制的虚拟网络。这个网络由成百上千&#xff0c;甚至数百万台计算机组成&#xff0c;这些计算机往往被感染&#xff0c;成为攻击者的"僵尸"&a…

基于深度学习的水果识别系统

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、 水果识别的实验结果分析3.1 实验环境3.2 水果数据集 二、水果识别的界面展示结 论目录 概要 本文详细地介绍了深度学习算法卷积神经网络&#xff08;CNN&#xff09;的发展状况。主要介绍了卷积神经网络的几…

用示例和应用程序了解必要的Golang库

Golang&#xff0c;也被称为Go&#xff0c;因其简单性、性能和并发性支持而在开发人员中迅速流行起来。导致Go成功的关键因素之一是其丰富的库生态系统&#xff0c;可以简化开发并提供解决常见问题的解决方案。在本文中&#xff0c;我们将更仔细地查看一些必要的Golang库&#…

若依框架的使用+代码生成功能

文章目录 导入数据表数据创建一个菜单项生成模块代码导入需要生成的数据表修改需要生成的字段 生成代码使用放行接口接口测试 导入数据表数据 可以使用sql工具等等,导入数据表的数据(安全性考虑,导入图片不贴了) 创建一个菜单项 在系统管理下的菜单管理中创建一个新的菜单项…