读取肌电数据,构建模型训练数据

本篇为《信号处理》系列博客的第十一篇,该系列博客主要记录信号处理相关知识的学习过程和自己的理解,方便以后查阅。

本片博客为用DNN分类肌电数据的准备工作的第二篇,主要内容为,读取处理后的肌电数据(去噪、提取活动段),并构成训练数据。

import os
import csv
import random
import numpy as np
import matplotlib.pyplot as plt
from sklearn import preprocessing


def data_loader(datadir, batch_size=10):
    '''
    定义训练集数据读取器

    输入参数:
        datadir     :数据文件的保存路径
        batch_size  :每次用于训练的数据量

    输出参数:
        原始数据+标签
    '''
    def reader():
        batch_sEMG = []# 定义变量,用于存储肌电数据图片
        batch_labels = []# 定义变量,用于存储肌电数据标签
        label = 0# 标签变量
        sEMG = []# 存储一个肌电数据
        # 读取数据,用于训练
        for root, dirs, files in os.walk(datadir):
            if len(root)==len(datadir):# 去除根目录的文件路径
                continue
            label = label+1# 每个子文件夹代表一个类别
            random.shuffle(files)# 训练时随机打乱肌电文件顺序
            # 遍历每一个文件,一个文件即为一张图片
            for sEMG_files in files:
                # 读取文件内容,并转换为图片
                with open(root+'/'+sEMG_files) as sEMG_file:# 获取datadir文件夹下的,子文件夹内的,文件的,内容
                    sEMG_signal = csv.reader(sEMG_file)
                    for row in sEMG_signal:
                        sEMG.append(row)

                # 对一次采集到的肌电信号进行归一化,并改变矩阵的形状
                sEMG = np.array(sEMG).astype('float32')
                min_max_scaler = preprocessing.MinMaxScaler()#默认为范围0~1,拷贝操作
                sEMG_minmax = min_max_scaler.fit_transform(sEMG)
                sEMG_minmax = np.delete(sEMG_minmax, -1, axis=0)#删除最后一行整行,这里matlab代码没有写好,导致数据多了一行
                sEMG_img = sEMG_minmax.reshape(1, 200, 240)

                batch_sEMG.append(sEMG_img)
                batch_labels.append(label)

                sEMG = []# 变量清零,用于下一次循环

                if len(batch_sEMG) == batch_size:
                    # 对一次采集到的肌电信号进行归一化,并改变矩阵的形状,这里改变形状的代码有错
                    # sEMG = np.array(batch_sEMG).astype('float32')
                    # min_max_scaler = preprocessing.MinMaxScaler()#默认为范围0~1,拷贝操作
                    # sEMG_minmax = min_max_scaler.fit_transform(sEMG)
                    # sEMG_minmax=np.delete(sEMG_minmax, -1, axis=0)#删除整行
                    # sEMG_array = sEMG_minmax.reshape(200, 240)
                    # labels_array = np.array(batch_labels).astype('float32').reshape(-1, 1)
                    sEMG_array = np.array(batch_sEMG).astype('float32')
                    labels_array = np.array(batch_labels).astype('float32').reshape(-1, 1)
                    yield sEMG_array, labels_array
                    batch_sEMG = []# 变量清零,用于下一次循环
                    batch_labels = []# 变量清零,用于下一次循环

            if len(batch_sEMG) > 0:
                # 剩余样本数目不足一个batch_size的数据,一起打包成一个mini-batch
                sEMG_array = np.array(batch_sEMG).astype('float32')
                labels_array = np.array(batch_labels).astype('float32').reshape(-1, 1)
                yield sEMG_array, labels_array

    return reader

# 查看数据形状
DATADIR = '/home/al007/Deep Learing/PaddlePaddle/sEMG'
train_loader = data_loader(DATADIR, batch_size=10)
data_reader = train_loader()
data = next(data_reader)
print(data[0].shape, data[1].shape)

打印结果:

(10, 200, 240) (10, 1)

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要下载肌电信号数据的.txt文档,你可以按照以下步骤进行操作: 1. 找到可供下载肌电信号数据.txt文档的合适网站或资源。你可以通过搜索引擎,如Google或百度,在搜索框中输入相关关键词,例如“肌电信号数据.txt文档下载”,来找到相关的网站或资源。 2. 点击进入找到的网站或资源页面,找到包含肌电信号数据.txt文档下载链接的位置。通常,这些链接可能会在页面的底部或页面正文的某个位置。 3. 点击下载链接,并选择将文件保存为.txt格式。你可能会收到一个弹出窗口,询问你要将文件保存到何处。选择一个合适的位置来保存文件,例如你的计算机桌面或一个你可以轻松访问的文件夹。 4. 等待文件下载完成。下载速度取决于你的互联网连接速度以及文件的大小。较大的文件可能需要更长时间来下载。 5. 下载完成后,你可以在你选择保存的位置找到.txt文档文件。双击文件,使用适当的文本编辑器或软件打开文件以查看肌电信号数据。 请注意,为确保下载的文件安全,始终使用合法和可信的网站或资源来获取肌电信号数据.txt文档。同时,确保你的设备具备足够的存储空间来保存文件。 ### 回答2: 肌电信号数据(txt格式)下载的过程如下: 1. 打开浏览器:首先,打开任何一个互联网浏览器,例如谷歌浏览器、火狐浏览器、Safari等。 2. 搜索数据源:使用搜索引擎(如Google、百度等)搜索关键词"肌电信号数据下载"或者"EMG数据下载",以找到相关的数据源。 3. 选择数据源:从搜索结果中选择一个可信赖的提供肌电信号数据的网站或数据库。 4. 进入数据源网站:点击所选数据源网站的链接,进入该网站。 5. 寻找下载选项:在数据源网站上,浏览并搜索相关的类别或者标签,比如"肌电信号数据",找到能够下载数据的选项。 6. 选择数据文件:在数据源网站上找到希望下载的肌电信号数据的txt文件。 7. 下载数据文件:点击txt文件的下载链接或者相关按钮,开始下载所选的肌电信号数据文件。 8. 保存到本地:选择合适的保存路径和文件名,将下载的txt文件保存到本地计算机或者其他设备中。 9. 完成:下载完成后,就可以使用支持txt格式的软件(如文本编辑器、Matlab等)打开文件,进行进一步的数据分析和处理。 请注意,下载肌电信号数据时要选择合法、可靠的数据源,确保所下载数据的可信度和完整性。因为肌电信号数据一般属于专业领域的数据,可能需要参考相应的领域知识和技能来进行正确的数据解读和分析。 ### 回答3: 要下载肌电信号数据的txt文档,您可以按照以下步骤进行操作: 1. 打开电脑或移动设备的互联网浏览器,确保已连接互联网。 2. 在浏览器的地址栏中输入肌电信号数据下载网站的网址。 3. 打开网站后,您可能需要进行注册或登录才能继续下载。如果已经有账户,请输入用户名和密码登录。如果还没有账户,请根据网站的要求进行注册。 4. 登录后,在网站上搜索或导航到您所需要的肌电信号数据。您可以根据关键词或者数据的分类进行检索。 5. 找到您需要的肌电信号数据后,点击下载按钮或者文件名。 6. 系统会弹出一个对话框询问您保存文件的位置。选择一个文件夹,并为文件命名。 7. 点击保存按钮,下载过程会开始。 8. 下载完成后,您可以在所选的文件夹中找到刚才下载的txt文档。 请注意,具体的下载步骤可能因为不同的网站和设备而有所差异。以上是一个基本的下载流程,您可以根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值