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博客.

python深度学习之TCN实例相关推荐

  1. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  2. 过拟合解决方法python_《python深度学习》笔记---4.4、过拟合与欠拟合(解决过拟合常见方法)...

    <python深度学习>笔记---4.4.过拟合与欠拟合(解决过拟合常见方法) 一.总结 一句话总结: 减小网络大小 添加权重正则化 添加 dropout 正则化 1.机器学习的根本问题? ...

  3. Python深度学习-快速指南

    Python深度学习-快速指南 (Python Deep Learning - Quick Guide) Python深度学习-简介 (Python Deep Learning - Introduct ...

  4. 《Python深度学习从零开始学》简介

    #好书推荐##好书奇遇季#深度学习入门书<Python深度学习从零开始学>,京东当当天猫都有发售.从模型和实验入手,快速掌握深度学习技术. 业内大咖强力推荐!!!武汉大学信息管理学院教授 ...

  5. 粗读《Python 深度学习》(7)

    粗读<Python 深度学习>(7) 第八章 生成式深度学习 8.1 使用 LSTM 生成文本 8.1.1 生成式循环网络简史(略) 8.1.2 如何生成序列数据 8.1.3 采样策略的重 ...

  6. 如何在Python深度学习中设置GPU卡号

    诸神缄默不语-个人CSDN博文目录 本文介绍在Python深度学习代码运行的过程中,如何设置GPU卡号(包括PyTorch和TensorFlow适用的写法),主要适用于单卡场景,以后可能会增加多卡场景 ...

  7. Python深度学习篇

    Python深度学习篇一<什么是深度学习> Excerpt 在过去的几年里,人工智能(AI)一直是媒体大肆炒作的热点话题.机器学习.深度学习 和人工智能都出现在不计其数的文章中,而这些文章 ...

  8. 我最喜欢的9个 Python深度学习库

    本文为数盟原创译文 如果你对深度学习和卷积神经网络感兴趣,但是并不知道从哪里开始,也不知道使用哪种库,那么这里就为你提供了许多帮助. 在这篇文章里,我详细解读了9个我最喜欢的Python深度学习库. ...

  9. Python深度学习篇五《深度学习用于计算机视觉》

    前言 前期回顾:Python深度学习篇四<机器学习基础> 上面这篇里面写了关于向量数据最常见的机器学习任务. 好,接下来切入正题. 本章包括以下内容: 理解卷积神经网络(convnet) ...

最新文章

  1. java中获取特定时间段_获取某一时间段特定星期几的所有日期(Java实现)
  2. Exynos4412裸机开发 —— 看门狗定时器
  3. VTK:Texture之TexturePlane
  4. mysql 事实表 维度表_数据库的事实表与维度表
  5. angular2安装笔记
  6. 逻辑代数01律的理解_零基础学习计算机原理:布尔逻辑和逻辑门
  7. Linux系统编程2:基础篇之详解Linux中的权限问题
  8. 使用函数进行邮件发送的示例
  9. 蓝桥杯 ADV-166 算法提高 聪明的美食家 java版
  10. AT指令:常见的AT命令
  11. imageJ 如何下载plugin_尺寸统计软件Nano measurer详细使用教程(附下载链接)
  12. 【基础逻辑】对位乘法与升多项式子项根号——柯西不等式
  13. 图书管理系统之带验证码登录界面
  14. 2019掘安杯原题复现
  15. 水溶性CY3.5-马来酰亚胺,Sulfo-Cyanine3.5 maleimide
  16. SAP中外协加工BOM物料消耗问题处理实例
  17. 计算机辅助仿真模拟的英文缩写,全国计算机等级考试一级B模拟题.doc
  18. 获取某月上一个或下一个月
  19. 计算机网络性能指标:速率,带宽,吞吐量
  20. “鑫胖”家的红星3.0系统被曝漏洞,可远程执行任意命令注入

热门文章

  1. 【PAT甲级 - C++题解】1119 Pre- and Post-order Traversals
  2. EXCEL自动化报表实操
  3. 15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件
  4. 一类形容词(形容词)和二类形容词(形容动词)的区别
  5. python课后题答案第三章_python程序设计基础课后习题答案(电子版,可复制)第三章...
  6. 【JavaScript】Generator函数
  7. k8s中文件描述符与线程限制
  8. Python爬虫:制作一个属于自己的IP代理模块2
  9. RHEL6.3x64 RHCS+Conga(Luci/ricci)+iscsi +CLVM+GFS+Apache配置
  10. 量化交易-形态学:致敬《缠中说禅》