故障检测代码(.generate文件)

.generate文件

# import os   装载 os模块
import torch  引入一个torch
import torchvision  torchvision包是服务于pytorch深度学习框架的,用来生成图片,视频数据集,和一些流行的模型类和预训练模型
import torchvision.transforms as transforms  图像预处理包,包含了很多种对图像数据进行变换的函数
import matplotlib.pyplot as plt  图像可视化
import numpy as np  随机数
import sys  sys模块包含了与Python解释器和它的环境有关的函数
import torch.nn as nn  搭建神经网络,torch.nn包中主要包含了用来搭建各个层的模块(Modules),比如全连接、二维卷积、池化等;torch.nn包中还包含了一系列有用的loss函数,这些函数也是在训练神经网络时必不可少的,比如CrossEntropyLoss、MSELoss等;
import torch.nn.functional as F  (通常导入到命名空间F中)中的函数替代我们手工编写的激活函数和损失函数来缩短代码。 torch.nn.functional子包中包含了常用的激活函数,如relu、leaky_relu、prelu、sigmoid等。
import torch.optim as optim  optim包主要包含了用来更新参数的优化算法,比如SGD、AdaGrad、RMSProp、 Adam等
from PIL import Image  把PIL读取的图像转换成tensor,并归一化处理
from torch.utils.data import Dataset  读取数据
import scipy.io as io  实现对mat数据的读写
import random  随机数
from datetime import datetime  处理日期的标准模块
random.seed(datetime.now())  datetime是一个库是一个模块也是一个函数,返回系统时间
# ball_7
ball_7_0 = io.loadmat("./data/ball/122")['X122_DE_time'].tolist()  读取mat文件中的数据和时间,并用列表显示
ball_7_1 = io.loadmat("./data/ball/123")['X123_DE_time'].tolist()
ball_7_2 = io.loadmat("./data/ball/124")['X124_DE_time'].tolist()
ball_7_3 = io.loadmat("./data/ball/125")['X125_DE_time'].tolist()
ball_7 = [ball_7_0, ball_7_1, ball_7_2, ball_7_3]  一个数据集,包括四组数据
print(len(all_data))  输出所有数据的长度
#加载mat文件中特定的表,导入数据训练分类模型
def main(argv=None):  main函数的固定写法,使其接受一个可选参数 argv,支持在交互式shell中调用该函数,可以动态地提供 argv 的值
    classes = (  加载mat文件中特定的表,并转换成一维数组,存入数据库
        "normal",
        "ball_7",
        "ball_14",
        "ball_21",
        "inner_7",
        "inner_14",
        "inner_21",
        "outer_7",
        "outer_14",
        "outer_21",
    )
# classes = ("normal", "error")  将所有数据分为两类
train_pics = []
train_labels = []
test_pics = []
test_labels = []
for data_type in range(10):  从所有数据中随机选取十个数据
    # 二类
    if data_type == 0: 二分类问题,如果数据的标号为0,则其类型为0,没有故障,否则就是为1,有故障
        the_type = 0
    else:
        the_type = 1
    data = all_data[data_type]  将该标号下的具体数据赋值给data
for load_type in range(4):   
    load_data = data[load_type]
    max_start = len(load_data) - 4096  每份数据都是64×64的图片,需要用到4096个一维数据点,用max_start存储最大起始取值点
    starts = []  starts保存用过的起始点,避免数据重复


 for i in range(500):  设置i遍历个数
        # 随机一个start,不在starts里,就加入
        while True:
            start = random.randint(0, max_start)  从0到最大起始点中随机取一个数,存入start中
            if start not in starts:  如果不在里面,就放进去
                starts.append(start)
                break
# 将4096个数据点转化成64×64的二维图
temp = load_data[start : start + 4096]  从start开始,选取4096个数据,存入temp中
temp = np.array(temp)  将其变成二维数组
train_pics.append(temp.reshape(64, 64))  把4096个数据点变成64×64的二位图片
train_labels.append(the_type)  将每一个图片打上标签,存入训练集标签中

现在,训练集已经生成了!步骤就是,先将数据进行分类,打包好,然后随机选取4096个数据点,要选很多,把它们变成二维图片,选数据点的时候要给每组数据的开头进行标号,防止重复选取。

for i in range(100):  用i遍历100个数 
    while True:
        start = random.randint(0, max_start)  
        if start not in starts:
            starts.append(start)
            break
temp = load_data[start : start + 4096]  
temp = np.array(temp)
test_pics.append(temp.reshape(64, 64))
test_labels.append(the_type)

现在,测试集也已经生成了!

print("train_pics", len(train_pics))  打印训练集和测试集的长度和标签
print("train_labels", len(train_labels))
print("test_pics", len(test_pics))
print("test_labels", len(test_labels))
np.savez("train_pics", *train_pics)  以“.npy”格式将数组保存到二进制文件中
np.savez("train_labels", *train_labels)
np.savez("test_pics", *test_pics)
np.savez("test_labels", *test_labels)

 在运行结果中,一共出现了10组数据,每组都包括四个数,训练集的两个数和测试集的两个数。

这个文件就是数据预处理,主要作用就是把一维数据转化成二维图像,并创建训练集和测试集,以便于后面创建卷积神经网络时直接调用数据。

代码来源:

(1条消息) 一种基于卷积神经网络的数据驱动故障预测方法(含代码)_XD_onmyway的博客-CSDN博客_卷积神经网络预测代码

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: wordcloud.generate() 是一个 Python 中 WordCloud 库的函数,用于生成词云。它的作用是将传入的文本数据按照词频进行分析,并生成一个可视化的词云图。在使用该函数之前,需要先创建一个 WordCloud 对象,然后将需要分析的文本数据传递给 WordCloud 对象,并调用其 generate() 函数即可生成词云图。例如: ``` from wordcloud import WordCloud import matplotlib.pyplot as plt text = "hello world hello python python python data science machine learning" wordcloud = WordCloud(width = 800, height = 800, background_color ='white', min_font_size = 10).generate(text) plt.figure(figsize = (8, 8), facecolor = None) plt.imshow(wordcloud) plt.axis("off") plt.tight_layout(pad = 0) plt.show() ``` 以上代码会生成一个包含输入文本中出现的单词的词云图,单词出现的频率越高,其在词云图中的大小就越大。 ### 回答2: wordcloud.generate() 是 Python 中 wordcloud 库中的一个函数,主要作用是生成词云。词云是一种将文本信息转换为图像的可视化方式,通常用于展示大规模文本数据的关键词和相关程度。 wordcloud.generate() 函数需要接受一个文本字符串作为输入,并通过对字符串进行处理和分析,生成词云图像。具体用法如下: 1. 导入 wordcloud 库并创建一个词云对象 ```python from wordcloud import WordCloud wc = WordCloud() ``` 2. 传入文本并生成词云 ```python text = "hello world, wordcloud is cool!" wc.generate(text) ``` 3. 通过 matplotlib 库将词云图像显示出来 ```python import matplotlib.pyplot as plt plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() ``` 在生成词云的过程中,还可以通过一些参数来控制词云图像的样式和呈现效果。例如: - width 和 height:设置词云图像的宽度和高度,默认值为 400 和 200。 - background_color:设置词云图像的背景颜色,默认为黑色。 - mask:通过遮罩控制词云图像的形状,默认为矩形。 - stopwords:设置不展示的关键词。 - max_font_size 和 min_font_size:设置词云图像中的字体的最大和最小字号。 例如,下面是一些常用的参数配置: ```python wc = WordCloud(width=800, height=400, background_color="white", stopwords=["hello", "world"], max_font_size=60, min_font_size=10, mask=my_mask) ``` 其中,my_mask 是一个自定义的遮罩图像。 除了生成词云图像之外,wordcloud 库中还提供了一些其他的函数,如: 1. wordcloud.to_file():将生成的词云图像保存到指定的文件中,例如: ```python wc.to_file("wordcloud.png") ``` 2. wordcloud.words_:获取生成词云图像的关键词列表。 ```python words = wc.words_ ``` 总之,wordcloud.generate() 是 Python wordcloud 库中一个重要的生成词云的函数,非常方便用于处理和展示文本数据。通过配置相关参数,可以生成各种样式和形状的词云图像,同时还可以将生成的词云保存为图片文件。 ### 回答3: wordcloud.generate()是Python中的一个函数,可以生成词云图。生成的图像会根据输入的文本中每个单词的频率来分配字体大小和颜色,并在图像中展示。在使用该函数前,需要通过Python中的wordcloud库进行安装。 该函数的基本语法为:wordcloud.generate(text),其中text参数是需要生成词云图的文本字符串。 在实际使用中,可以对生成的词云图进行一些设置,例如调整字体、颜色、词云形状等。此外,还可以使用stopwords参数指定需要排除的停用词,或者使用mask参数指定词云图形状的蒙版图片。如下是一些常用的设置: - 设置字体大小、颜色:可以使用font_path和color_func两个参数进行设置,分别指定字体文件路径和颜色函数。 - 排除停用词:可以通过加载停用词词典文件后,指定stopwords参数进行设置。 - 设置词云形状:可以加载蒙版图片文件后,通过指定mask参数进行设置。 在完成词云图的设置后,可使用matplotlib库来展示和保存生成的词云图。 综上所述,使用wordcloud.generate()可以简单快速地生成一张基础的词云图,而通过结合其他参数的设置,可以制作出更加精美的词云图,使文本数据更加直观、生动地展现出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值