python程序分析之少样本学习

Day 1:(输入数据集)

1.函数声明

import matplotlib.pyplot as plt #matplotlib是类似matlab画图格式的函数
from scipy.io import loadmat #读取mat格式的数据集
import numpy as np#数组函数
import siamese#siamese神经网络函数(siamese-孪生)
import utils#制作数据集函数,滑动窗口截取时域信号

[siamese网络详解]
应用:使用tensorflow在mnist上实现的siamese net

2.数据加载

import cwru   #数据函数
# imp.reload(siamese)
window_size = 2048  #样本序列长度
data = cwru.CWRU(['12DriveEndFault'], ['1772', '1750', '1730'], window_size) #数据
data.nclasses,data.classes,len(data.X_train),len(data.X_test)#数据类型数,数据类型,训练集长度,测试集长度

注释:data是处理好的数据;data.nclasses是数据种类数目;data.classes是数据类型;
output:

(10,
 [('NormalBaselineNormal', 0),
  ('12DriveEndFault0.007-Ball', 1),
  ('12DriveEndFault0.014-Ball', 2),
  ('12DriveEndFault0.021-Ball', 3),
  ('12DriveEndFault0.007-InnerRace', 4),
  ('12DriveEndFault0.014-InnerRace', 5),
  ('12DriveEndFault0.021-InnerRace', 6),
  ('12DriveEndFault0.007-OuterRace6', 7),
  ('12DriveEndFault0.014-OuterRace6', 8),
  ('12DriveEndFault0.021-OuterRace6', 9)],
 19800,
 750)

3.数据可视化

mat_dict = loadmat('Datasets/CWRU/12DriveEndFault/1730/0.014-InnerRace.mat')#加载内圈故障数据
key1,key2 = cwru.fliter_key(mat_dict.keys())#诊断出信号故障类型
print(key1,key2)  #打印诊断结果(文中使用的是双通道)
time_series = np.hstack((mat_dict[key1], mat_dict[key2]))#提取故障数据
plt.figure(figsize=(16,1))        #画出双通道信号时域图
plt.plot(time_series[:8000,0])
plt.show()
plt.figure(figsize=(16,1))
plt.plot(time_series[:8000,1])

output:
在这里插入图片描述

4.用于训练和测试的样本制作

# imp.reload(siamese)
loader = siamese.Siamese_Loader(data.X_train,data.y_train,data.X_test,data.y_test)#

4.1训练样本

# imp.reload(utils)
pairs,targets,categories=loader.get_batch(8)
print(pairs[0].shape)
print(targets)
print(categories)
utils.plot_pairs(pairs)

output:

4.2测试样本

pairs, targets,categories=loader.make_oneshot_task2(10)
print(targets)
print(categories)
utils.plot_pairs(pairs)

output:
在这里插入图片描述

总结:

这只是数据集的制作和可视化程序,下次整理程序内部具体流程。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值