时序信号处理
MatthewIsBig
这个作者很懒,什么都没留下…
展开
-
离线滤波C语言实现
假设输入占用10kRAM,实现这个滤波需要额外的4x10kRAM。以下是滤波的核心代码:#include <stdio.h>#include <math.h>#include <memory.h>#include <stdlib.h>#include "filtfilt.h"#define EPS 0.000001//#pragma warning(disable:4244)//filter函数void filter(double* x,原创 2020-10-11 16:44:23 · 207 阅读 · 0 评论 -
一维Unet+Resnet实现
网络结构Unet,实现一维信号dense prediction,如EEG情绪识别,受干扰信号修复,不同的任务需要设计不同的损失函数。本文resnet的实现参考了pytorch官方resnet实现的源码,区别在于二维的size为3x3卷积替换成了一维的长度为5卷积。同时Unet的实现参考Hi_AI的实现。该网络输入为 channels x length,输出为 1 x length,不过输出的通道数是可以改变的import torchimport torch.nn as nndef conv1d_5原创 2020-09-21 15:07:33 · 9048 阅读 · 4 评论 -
一维CNN_forwad C语言实现
本文参考https://github.com/wei8171023/CNN_C_forword上文是二维CNN的C语言实现,我参考上文,照葫芦画瓢实现了一维CNN的前项传播,因嵌入式需求去掉了原文中的malloc函数,取而代之的是申请两个静态数组,input,output, input和output来回挪腾完成模型的前向运算,避免了动态的频繁申请和释放空间。静态数组的大小必须能容下前向运算过程中最大的shape的输入或输出。//卷积模块int conv(const double* weight, do原创 2020-09-16 17:04:13 · 456 阅读 · 0 评论 -
pytorch长度不同的数据如何放在一个batch
RNN及其变种算法处理一维信号经常会遇到信号长度不一致的问题。from torch.utils.data import Dataloaderdataloader = Dataloader(dataset, batch_size=8)这样是没法成功加载dataset,因为Dataloader要求一个batch内的数据shape是一致的,才能打包成一个方块投入模型。我们看一下源码里Dataloader初始化的方法def __init__(self, dataset, batch_size=1, shu原创 2020-09-16 15:50:44 · 7128 阅读 · 2 评论