当前位置: 首页 > news >正文

做养生类项目的网站wordpress仿果壳

做养生类项目的网站,wordpress仿果壳,高级软件开发工程师证书含金量,广州万安建设监理有限公司网站目录 前言 1 数据集制作与加载 1.1 导入数据 1.2 数据加载#xff0c;训练数据、测试数据分组#xff0c;数据分batch 2 CNN-2D分类模型和训练、评估 2.1 定义CNN-2d分类模型 2.2 定义模型参数 2.3 模型结构 2.4 模型训练 2.5 模型评估 3 CNN-1D分类模型和训练、评…目录 前言 1 数据集制作与加载 1.1 导入数据 1.2 数据加载训练数据、测试数据分组数据分batch 2 CNN-2D分类模型和训练、评估 2.1 定义CNN-2d分类模型 2.2 定义模型参数 2.3 模型结构 2.4 模型训练 2.5 模型评估 3 CNN-1D分类模型和训练、评估 3.1 定义CNN-1d分类模型 3.2 定义模型参数 3.3 模型结构 3.4 模型训练 3.5 模型评估 4 模型对比 往期精彩内容 Python-凯斯西储大学CWRU轴承数据解读与分类处理 Python轴承故障诊断 (一)短时傅里叶变换STFT Python轴承故障诊断 (二)连续小波变换CWT-CSDN博客 Python轴承故障诊断 (三)经验模态分解EMD-CSDN博客 Python轴承故障诊断 (四)基于EMD-CNN的故障分类-CSDN博客 Python轴承故障诊断 (五)基于EMD-LSTM的故障分类-CSDN博客 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 前言 本文基于凯斯西储大学CWRU轴承数据先经过数据预处理进行数据集的制作和加载最后通过Pytorch实现CNN模型一维卷积和二维卷积对故障数据的分类然后进行对比。凯斯西储大学轴承数据的详细介绍可以参考下文 Python-凯斯西储大学CWRU轴承数据解读与分类处理 1 数据集制作与加载 1.1 导入数据 参考之前的文章进行故障10分类的预处理凯斯西储大学轴承数据10分类数据集 第一步导入十分类数据 import numpy as np import pandas as pd from scipy.io import loadmatfile_names [0_0.mat,7_1.mat,7_2.mat,7_3.mat,14_1.mat,14_2.mat,14_3.mat,21_1.mat,21_2.mat,21_3.mat]for file in file_names:# 读取MAT文件data loadmat(fmatfiles\\{file})print(list(data.keys())) 第二步读取MAT文件驱动端数据 # 采用驱动端数据 data_columns [X097_DE_time, X105_DE_time, X118_DE_time, X130_DE_time, X169_DE_time,X185_DE_time,X197_DE_time,X209_DE_time,X222_DE_time,X234_DE_time] columns_name [de_normal,de_7_inner,de_7_ball,de_7_outer,de_14_inner,de_14_ball,de_14_outer,de_21_inner,de_21_ball,de_21_outer] data_12k_10c pd.DataFrame() for index in range(10):# 读取MAT文件data loadmat(fmatfiles\\{file_names[index]})dataList data[data_columns[index]].reshape(-1)data_12k_10c[columns_name[index]] dataList[:119808] # 121048 min: 121265 print(data_12k_10c.shape) data_12k_10c 第三步制作数据集 train_set、val_set、test_set 均为按照721划分训练集、验证集、测试集最后保存数据 第四步制作训练集和标签 # 制作数据集和标签 import torch# 这些转换是为了将数据和标签从Pandas数据结构转换为PyTorch可以处理的张量 # 以便在神经网络中进行训练和预测。def make_data_labels(dataframe):参数 dataframe: 数据框返回 x_data: 数据集 torch.tensory_label: 对应标签值 torch.tensor# 信号值x_data dataframe.iloc[:,0:-1]# 标签值y_label dataframe.iloc[:,-1]x_data torch.tensor(x_data.values).float()y_label torch.tensor(y_label.values.astype(int64)) # 指定了这些张量的数据类型为64位整数通常用于分类任务的类别标签return x_data, y_label# 加载数据 train_set load(train_set) val_set load(val_set) test_set load(test_set)# 制作标签 train_xdata, train_ylabel make_data_labels(train_set) val_xdata, val_ylabel make_data_labels(val_set) test_xdata, test_ylabel make_data_labels(test_set) # 保存数据 dump(train_xdata, trainX_1024_10c) dump(val_xdata, valX_1024_10c) dump(test_xdata, testX_1024_10c) dump(train_ylabel, trainY_1024_10c) dump(val_ylabel, valY_1024_10c) dump(test_ylabel, testY_1024_10c) 1.2 数据加载训练数据、测试数据分组数据分batch import torch from joblib import dump, load import torch.utils.data as Data import numpy as np import pandas as pd import torch import torch.nn as nn # 参数与配置 torch.manual_seed(100) # 设置随机种子以使实验结果具有可重复性 device torch.device(cuda if torch.cuda.is_available() else cpu) # 有GPU先用GPU训练# 加载数据集 def dataloader(batch_size, workers2):# 训练集train_xdata load(trainX_1024_10c)train_ylabel load(trainY_1024_10c)# 验证集val_xdata load(valX_1024_10c)val_ylabel load(valY_1024_10c)# 测试集test_xdata load(testX_1024_10c)test_ylabel load(testY_1024_10c)# 加载数据train_loader Data.DataLoader(datasetData.TensorDataset(train_xdata, train_ylabel),batch_sizebatch_size, shuffleTrue, num_workersworkers, drop_lastTrue)val_loader Data.DataLoader(datasetData.TensorDataset(val_xdata, val_ylabel),batch_sizebatch_size, shuffleTrue, num_workersworkers, drop_lastTrue)test_loader Data.DataLoader(datasetData.TensorDataset(test_xdata, test_ylabel),batch_sizebatch_size, shuffleTrue, num_workersworkers, drop_lastTrue)return train_loader, val_loader, test_loaderbatch_size 32 # 加载数据 train_loader, val_loader, test_loader dataloader(batch_size) 2 CNN-2D分类模型和训练、评估 2.1 定义CNN-2d分类模型 注意输入数据进行了堆叠 把一个1*1024 的序列 进行划分堆叠成形状为1 * 32 * 32 就使输入序列的长度降下来了,(channels, seq_length, H_in) 2.2 定义模型参数 # 定义模型参数 batch_size 32 # 先用浅层试一试 conv_arch ((2, 32), (1, 64), (1, 128)) input_channels 1 num_classes 10 model CNN2DModel(conv_arch, num_classes, batch_size) # 定义损失函数和优化函数 model model.to(device) loss_function nn.CrossEntropyLoss(reductionsum) # loss learn_rate 0.0003 optimizer torch.optim.Adam(model.parameters(), learn_rate) # 优化器 2.3 模型结构 2.4 模型训练 训练结果 50个epoch准确率将近97%CNN-2D网络分类模型效果良好。 2.5 模型评估 # 模型 测试集 验证 import torch.nn.functional as F device torch.device(cuda if torch.cuda.is_available() else cpu) # 有GPU先用GPU训练# 加载模型 model torch.load(best_model_cnn2d.pt) # model torch.load(best_model_cnn2d.pt, map_locationtorch.device(cpu))# 将模型设置为评估模式 model.eval() # 使用测试集数据进行推断 with torch.no_grad():correct_test 0test_loss 0for test_data, test_label in test_loader:test_data, test_label test_data.to(device), test_label.to(device)test_output model(test_data)probabilities F.softmax(test_output, dim1)predicted_labels torch.argmax(probabilities, dim1)correct_test (predicted_labels test_label).sum().item()loss loss_function(test_output, test_label)test_loss loss.item()test_accuracy correct_test / len(test_loader.dataset) test_loss test_loss / len(test_loader.dataset) print(fTest Accuracy: {test_accuracy:4.4f} Test Loss: {test_loss:10.8f})Test Accuracy: 0.9313 Test Loss: 0.04866932 3 CNN-1D分类模型和训练、评估 3.1 定义CNN-1d分类模型 注意与2d模型的信号长度堆叠不同CNN-1D模型直接在一维序列上进行卷积池化操作形状为batch,H_in, seq_length,利用平均池化 使CNN-1D和CNN-2D模型最后输出维度相同保持着相近的参数量。 3.2 定义模型参数 # 定义模型参数 batch_size 32 # 先用浅层试一试 conv_arch ((2, 32), (1, 64), (1, 128)) input_channels 1 num_classes 10 model CNN1DModel(conv_arch, num_classes, batch_size) # 定义损失函数和优化函数 model model.to(device) loss_function nn.CrossEntropyLoss(reductionsum) # loss learn_rate 0.0003 optimizer torch.optim.Adam(model.parameters(), learn_rate) # 优化器 3.3 模型结构 3.4 模型训练 训练结果 50个epoch准确率将近95%CNN-1D网络分类模型效果良好。 3.5 模型评估 # 模型 测试集 验证 import torch.nn.functional as F device torch.device(cuda if torch.cuda.is_available() else cpu) # 有GPU先用GPU训练# 加载模型 model torch.load(best_model_cnn1d.pt) # model torch.load(best_model_cnn2d.pt, map_locationtorch.device(cpu))# 将模型设置为评估模式 model.eval() # 使用测试集数据进行推断 with torch.no_grad():correct_test 0test_loss 0for test_data, test_label in test_loader:test_data, test_label test_data.to(device), test_label.to(device)test_output model(test_data)probabilities F.softmax(test_output, dim1)predicted_labels torch.argmax(probabilities, dim1)correct_test (predicted_labels test_label).sum().item()loss loss_function(test_output, test_label)test_loss loss.item()test_accuracy correct_test / len(test_loader.dataset) test_loss test_loss / len(test_loader.dataset) print(fTest Accuracy: {test_accuracy:4.4f} Test Loss: {test_loss:10.8f})Test Accuracy: 0.9185 Test Loss: 0.14493044 4 模型对比 对比CNN-2D模型 和CNN-1D模型 模型参数量训练集准确率验证集准确率测试集准确率CNN1D61565496.5694.6491.85CNN2D68343098.3896.8893.13 由于CNN-2D模型参数量稍微多一点所以模型表现得也略好一点适当调整参数两者模型准确率相近。但是CNN-2D推理速度要快于CNN-1D在轴承故障数据集上应该更考虑CNN-2D模型在堆叠后的一维信号上进行卷积池化。 注意调整参数 可以适当增加 CNN层数 和每层神经元个数微调学习率 增加更多的 epoch 注意防止过拟合 可以改变一维信号堆叠的形状设置合适的长度和维度
http://www.pierceye.com/news/483657/

相关文章:

  • php做网站的分站学校网站开发价格
  • 静态动漫网站模板个人网站空间大小
  • 个人网站 如何做推广拓者设计吧官方网站
  • 农产品电子商务网站建设要求开发一款app软件需要多少钱
  • 仿微博网站模板织梦网站地图怎么做xml
  • 什么网站能买建设摩托车产品推广计划方案
  • 建设局网站买卖合同大连 商城网站制作公司
  • 网站开发实训意义湖州网站设计
  • 网站后台设置企业为什么要网站建设
  • 外贸网站推广平台有哪些怎么在亚马逊上开店铺
  • 网站模板下载简单的那种哪个网站可以做结婚请柬
  • 自建网站迁移wordpress 电影下载站
  • 深圳定制网站建设服务公司友情连接
  • 网络设计工资多少杭州seo网站排名优化
  • 免费空间申请网站网站开发技术联系方式
  • 增加访客的网站做网站 套用模板之后用什么改
  • 徐州企业网站排名优化建网站用什么浏览器
  • 大型网站频道的建设需多人协同开发网站建设产品中心
  • 学校网站建设状况好的建设网站
  • 庐江住房建设局网站做外汇关注的网站
  • 重庆市建设工程造价管理总站东莞网站包年优化
  • 南通公司快速建站建设网站的和服务器
  • 网站图片怎么做缓存太平洋建设 网站
  • 建造网站需要什么羽毛球赛事介绍
  • 广告联盟怎么建设网站淄博网页设计师招聘
  • 会员中心网站模板wordpress头像禁用
  • 网站优化工作怎么样无网站无产品链接如何做SOHO
  • 移动网站建设方案小型手机网站建设
  • 小学校园网站建设方案吉林关键词优化的方法
  • 网站导航条只做公司网站方案