python深度学习之TCN实例

article/2025/11/5 8:01:48

1.TCN的介绍

近些年,关于时间序列、自然语言处理等任务大家一般都会想到RNN、LSTM、GRU,一维CNN以及后面延伸出的Bi-Lstm、ConvLstm等等,这是因为RNN天生可以记住以前时段的信息,而传统的神经网络并不具有这个功能。卷积神经网络和循环神经网络作为深度学习的两大支柱,已近被越来越多的学者进行研究。在最近的研究之中,特定的卷积神经网络结构也可以达到很好的效果,比如Goolgle提出的用来做语音合成的wavenet,Facebook提出的用来做翻译的卷积神经网络。这就体现出经过特定设计的卷积神经网络在处理时间序列的任务上也具有巨大的发展潜力,本文就介绍一种特殊的卷积神经网络————时空卷积神经网络(Temporal convolutional network,TCN)。

TCN的表现:

  • TCN与其他网络结构相比具有更长的记忆。
  • 与LSTM/GRU相比,在很多任务上已经表现出更好的效果。
  • 拥有并行的卷积层、灵活大小的卷积核、稳定的梯度。

2.TCN的结构

2.1 因果卷积网络

所谓因果卷积网络是指,上一层t时刻的值只能依赖于下面那层t时刻以及t时刻之前的值,与传统的神经网络不同,TCN不能看见未来的数据,只有前面的才有后面的
在这里插入图片描述

2.2 膨胀卷积方式

膨胀卷积是指卷积的Dilation的大小,也就是卷积的采样间隔大小,通过增加采样间隔的大小,使得网络在较少的层数下就可记住较多以前的信息,一般来说,越高的层使用的Dilation越大。
在这里插入图片描述

2.3 残差块

残差块最开始是用来处理由于神经网络层数过多而出现的网络效果退化的情况。残差神经网络被证明是训练深度网络较好的方法。如上图所示,一个残差块包含两层的卷积和非线性映射,在每层中还加入了WeightNorm和Dropout来正则化网络。
在这里插入图片描述

3.TCN案例(MNIST手写体识别)

这个文件主要是做数据归一化操作的

import numpy as np
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categoricaldef data_generator():# input image dimensionsimg_rows, img_cols = 28, 28#导入手写数据集形状为(28,28)(x_train, y_train), (x_test, y_test) = mnist.load_data()#print("11111:**",y_train)#转化为(784,2)x_train = x_train.reshape(-1, img_rows * img_cols, 1)print("222222:",x_train.shape)x_test = x_test.reshape(-1, img_rows * img_cols, 1)#分类数量为0,1,2,3,4,5,6,7,8,9num_classes = 10#将标签值转化为one-hot编码y_train = to_categorical(y_train, num_classes)print("yyyyyy",y_train.shape)y_test = to_categorical(y_test, num_classes)y_train = np.expand_dims(y_train, axis=2)print("zzzzzz", y_train.shape)y_test = np.expand_dims(y_test, axis=2)x_train = x_train.astype('float32')x_test = x_test.astype('float32')x_train /= 255x_test /= 255return (x_train, y_train), (x_test, y_test)if __name__ == '__main__':print(data_generator())

TCN网络的构建

#TCN网络
from tcn.tcn import TCN
from utils import data_generator
import tensorflow as tf
from tensorflow.keras import layers,Input
# 构建模型
(x_train, y_train), (x_test, y_test) = data_generator()
#构建网络层级
inputs = layers.Input(shape=(x_train.shape[1], x_train.shape[2]), name='inputs')
#神经元(卷积核)20个,卷积核大小6,膨胀大小为2的次方
t=TCN(return_sequences=False,nb_filters=20,kernel_size=6,dilations=[2 ** i for i in range(9)])(inputs)
outputs=layers.Dense(10,activation="softmax")(t)
tcn_model=tf.keras.Model(inputs,outputs)tcn_model.compile(optimizer="Adam",loss='sparse_categorical_crossentropy',metrics=['accuracy'])tcn_model.fit(x_train, y_train.squeeze().argmax(axis=1), epochs=100,validation_data=(x_test, y_test.squeeze().argmax(axis=1)))
tcn_model.summary()

运行效果
在这里插入图片描述

参考文章

链接: github项目.
链接: TCN博客.
链接: TCN博客.
链接: TCN博客.


http://chatgpt.dhexx.cn/article/ZVT2DuWM.shtml

相关文章

时间卷积网络TCN:时间序列处理的新模型

这篇文章回顾了基于TCN的解决方案的最新创新。我们首先介绍了一个运动检测的案例研究,并简要回顾了TCN架构及其相对于传统方法的优势,如卷积神经网络(CNN)和递归神经网络(RNN)。然后,我们介绍了一些使用TCN的应用,包括改进交通预测…

TCN论文及代码解读总结

前言:传统的时序处理,普遍采用RNN做为基础网络模型,如其变体LSTM、GRU、BPTT等。但是在处理使用LSTM时时序的卷积神经网络 目录 论文及代码链接一、论文解读1、 摘要2、引言(摘)3、时序卷积神经网络(Temporal Convolutional Networks)3.1 因果…

轨道交通中TCN、TRDP、TSN的理解

轨道交通中TCN、TSN、TRDP的理解 1 TCN2 TSN3 TRDP———————————————————————— 1 TCN TCN(Train Communication Network)是列车通信网络,是列车通信网络的总称。 在IEC 61375-1 以及GB/T 28029.1中都详细的介绍了列车…

深度学习 + 论文详解: TCN_时间卷积网络_原理与优势

论文链接 TCN: https://arxiv.org/pdf/1803.01271.pdf p.s. TCN stands for Temporal Convolutional Network. 它是除了 RNN architecture 之外的第二种可以分析时间性数据的架构 更多文章将在公众号:AI 算法辞典 首发! 前言 RNN 从最一开始发展以来…

【python量化】用时间卷积神经网络(TCN)进行股价预测

写在前面 下面这篇文章首先主要简单介绍了目前较为先进的时间序列预测方法——时间卷积神经网络(TCN)的基本原理,然后基于TCN的开源代码,手把手教你如何通过时间卷积神经网络来进行股价预测,感兴趣的读者也可以基于此模…

时域卷积网络(Temporal Convolutional Network,TCN)

TCN基本结构 时域卷积网络(Temporal Convolutional Network,TCN)由Shaojie Bai et al.在2018年提出的,可以用于时序数据处理,详细内容请看论文。 1.因果卷积(Causal Convolution) 因果卷积如上…

时域卷积网络TCN详解:使用卷积进行序列建模和预测

CNN经过一些简单的调整就可以成为序列建模和预测的强大工具 尽管卷积神经网络(CNNs)通常与图像分类任务相关,但经过适当的修改,它已被证明是进行序列建模和预测的有价值的工具。在本文中,我们将详细探讨时域卷积网络(TCN)所包含的基本构建块&…

TCN代码详解-Torch (误导纠正)

1. 绪论 TCN网络由Shaojie Bai, J. Zico Kolter, Vladlen Koltun 三人于2018提出。对于序列预测而言,通常考虑循环神经网络结构,例如RNN、LSTM、GRU等。他们三个人的研究建议我们,对于某些序列预测(音频合…

时序CNN基础——TCN

自用~~笔记~~ 知识补充: 空洞卷积(膨胀卷积)——Dilated Conv 在标准卷积的基础上注入空洞,以此来增加感受野(reception field)。因此增加一个超参:膨胀率,指kernel的间隔数量。 因…

时间卷积网络(TCN):结构+pytorch代码

文章目录 TCNTCN结构1-D FCN的结构因果卷积(Causal Convolutions)膨胀因果卷积(Dilated Causal Convolutions)膨胀非因果卷积(Dilated Non-Causal Convolutions)残差块结构 pytorch代码讲解 TCN TCN(Temporal Convolutional Network)是由Shaojie Bai et al.提出的,p…

时间序列预测——时序卷积网络(TCN)

本文展示了使用时序卷积网络(TCN)进行时间序列预测的全过程,包含详细的注释。整个过程主要包括:数据导入、数据清洗、结构转化、建立TCN模型、训练模型(包括动态调整学习率和earlystopping的设置)、预测、结…

TCN-时间卷积网络

目录 一、引言 二、时序卷积神经网络 2.1 因果卷积(Causal Convolution) 2.2 膨胀卷积(Dilated Convolution) 2.3 残差链接(Residual Connections) 三、讨论和总结 1. TCN的优点 2. TCN的缺点 参考…

时间卷积网络TCN:CNN也可以处理时序数据并且比LSTM更好

本文回顾了 Shaojie Bai、J. Zico Kolter 和 Vladlen Koltun 撰写的论文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling。 TCN源代码:https://github.com/locuslab/TCN 文章目录 1. 序列建模2. 因果…

TCN(Temporal Convolutional Network,时间卷积网络)

1 前言 实验表明,RNN 在几乎所有的序列问题上都有良好表现,包括语音/文本识别、机器翻译、手写体识别、序列数据分析(预测)等。 在实际应用中,RNN 在内部设计上存在一个严重的问题:由于网络一次只能处理一个…

机器学习进阶之 时域/时间卷积网络 TCN 概念+由来+原理+代码实现

TCN 从“阿巴阿巴”到“巴拉巴拉” TCN的概念(干嘛来的!能解决什么问题)TCN的父母(由来)TCN的原理介绍上代码! 1、TCN(时域卷积网络、时间卷积网络)是干嘛的,能干嘛 主…

htop与top的区别

总览: 什么是htop top和htop的区别 htop和top的比较 在centos7上安装htop 下载htop源码交叉编译安装 如何使用htop命令 更改htop刷新时间间隔 htop命令的快捷键 什么是htop? htop是一个交互式和实时监视进程查看器的linux编写的 它取代了Unix程序的top …

AIX的topas命令详解

说明 topas命令的说明可以直接执行man topas了解,或者直接看IBM给的 原始文档,路径为:https://www.ibm.com/support/knowledgecenter/en/ssw_aix_71/com.ibm.aix.cmds5/topas.htm 命令详解 先上在AIX服务器上执行topas命令后的图片 区域1&…

Linux中 top命令详解

一、基础概念 指令: top 作用: 查看服务器的进程占用资源 进入命令: top (动态显示) 推出命令: 按 q 键 二、输出结果 表头字段含义: PID: 进程id USER: 该进程对应的用户 PR: …

TOP用法详解

1、top命令:相当于Windows下的资源管理器,能够动态实时的显示系统中进程的资源占用情况。 2、在Linux终端上输入top命令出现的结果及其表示的含义如下图: 顺便说一下uptime命令 3、以上是默认的显示内容,可以通过快捷键来更改显示…

topas命令解析

topas命令解析 Posted on 2011-12-08 11:40 疯狂 阅读(984) 评论(1) 编辑 收藏 所属分类: unix <!----> 上一张我们测试机的topas的图(aix 5.3)&#xff1a;然后后面附上解释&#xff1a; topas命令用于监控各种系统资源&#xff0c;如CPU的使用情况&#xff0c;CPU…