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

如何搭建一个自己上传视频的网站北京共振设计公司官网

如何搭建一个自己上传视频的网站,北京共振设计公司官网,白酒网站模板,wordpress软件目录 前言 1 数据集制作与加载 1.1 导入数据 第一步#xff0c;导入十分类数据 第二步#xff0c;读取MAT文件驱动端数据 第三步#xff0c;制作数据集 第四步#xff0c;制作训练集和标签 1.2 数据加载#xff0c;训练数据、测试数据分组#xff0c;数据分batch…目录 前言 1 数据集制作与加载 1.1 导入数据 第一步导入十分类数据 第二步读取MAT文件驱动端数据 第三步制作数据集 第四步制作训练集和标签 1.2 数据加载训练数据、测试数据分组数据分batch 2 Transformer分类模型和超参数选取 2.1 定义Transformer分类模型采用Transformer架构中的编码器 2.2 定义模型参数 2.3 模型结构 3 Transformer模型训练与评估 3.1 模型训练 3.2 模型评估 往期精彩内容 Python-凯斯西储大学CWRU轴承数据解读与分类处理 Python轴承故障诊断 (一)短时傅里叶变换STFT Python轴承故障诊断 (二)连续小波变换CWT Python轴承故障诊断 (三)经验模态分解EMD Python轴承故障诊断 (四)基于EMD-CNN的故障分类 Python轴承故障诊断 (五)基于EMD-LSTM的故障分类 Pytorch-LSTM轴承故障一维信号分类(一) Pytorch-CNN轴承故障一维信号分类(二) 前言 本文基于凯斯西储大学CWRU轴承数据先经过数据预处理进行数据集的制作和加载最后通过Pytorch实现Transformer模型对故障数据的分类并介绍Transformer模型的超参数。凯斯西储大学轴承数据的详细介绍可以参考下文 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 Transformer分类模型和超参数选取 2.1 定义Transformer分类模型采用Transformer架构中的编码器 注意输入数据进行了堆叠 把一个1*1024 的序列 进行划分堆叠成形状为 32 * 32 就使输入序列的长度降下来了 2.2 定义模型参数 # 模型参数 input_dim 32 # 输入维度 hidden_dim 512 # 注意力维度 output_dim 10 # 输出维度 num_layers 4 # 编码器层数 num_heads 8 # 多头注意力头数 batch_size 32 # 模型 model TransformerModel(input_dim, output_dim, hidden_dim, num_layers, num_heads, batch_size) model model.to(device) loss_function nn.CrossEntropyLoss(reductionsum) # loss learn_rate 0.0003 optimizer torch.optim.Adam(model.parameters(), lrlearn_rate) # 优化器 2.3 模型结构 3 Transformer模型训练与评估 3.1 模型训练 训练结果 100个epoch准确率将近90%Transformer模型分类效果良好参数过拟合了适当调整模型参数降低模型复杂度还可以进一步提高分类准确率。 注意调整参数 可以适当增加 Transforme编码器层数 和隐藏层的维度微调学习率 调整多头注意力的头数增加更多的 epoch 注意防止过拟合 可以改变一维信号堆叠的形状设置合适的长度和维度 3.2 模型评估 # 模型 测试集 验证 import torch.nn.functional as F# 加载模型 model torch.load(best_model_transformer.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.9570 Test Loss: 0.12100271
http://www.dnsts.com.cn/news/233312.html

相关文章:

  • 营销型网站建设实战上海网站制作团队
  • 做网站需要什么电脑代码外包平台
  • 西宁知名网站制作公司网站建设广州网站建设
  • 岳阳品牌网站定制开发常用的网站制作
  • 免费做h5的网站知乎百度推广查询
  • 网站设计价格大概是文章采集网站
  • 北京正规网站建设比较企业网站如何优化排名
  • 用域名建设网站网站转入备案
  • 建设银行滇龙行网站电商网站建设开发公司
  • 实用设计网站推荐长沙地铁最新招聘500人
  • 网站建设万户WordPress最好的免费主题
  • 临沂百度网站建设开网站开发公司
  • 注册越南网站vn摄影网站建设方案
  • 悦诗风吟网站建设策划书天眼查企业查询公司
  • 西部数码网站管理助手错误wordpress还是
  • 自己做网站卖东西可以网站界面设计的基本原则是什么
  • 做网站用什么空间我想克隆个网站 怎么做
  • 河北建设执业资格注册中心网站网站如何做关健词收录
  • 济宁外贸网站建设做网站安全认证
  • 哪些网站百度收录快电子商务网站前台设计
  • 佛山网站优化服务做网站哪家网站好
  • 银行网站建设企业网站开发哪个好薇
  • 网站目标规划画册欣赏网站
  • 旅游网站建设经济评价长春专业网站建设模板
  • 济南网站seo哪家公司好东莞环保公司
  • 那家公司做网站比较好福建厦门网站建设公司
  • 企业网站背景图片优酷的网站头怎么做的
  • 沈阳开发网站的地方有经验的番禺网站建设
  • 卖狗人怎么做网站梁定然网页设计教程
  • 铜陵公司做网站临清网站推广