跟随大神Jason Brownlee, Ph.D学习Deep Learning.

《How to Use the TimeDistributed Layer for Long Short-Term Memory Networks in Python》原文地址点击打开链接

这篇文章是关于LSTM用于sequence prediction(n个time step的input,对应n个time step的output )的;

LSTM也可以用于classification(n个time step的input,对应1个的output ),还有更复杂的sequence-to-sequence 任务,这两个任务不在此文讨论之列。

这篇文章设计了三种LSTM用于sequence prediction的Keras实现架构,其中,最后受推荐的当然是many-to-many LSTM架构。

1. One-to-One LSTM for Sequence Prediction

1)这是最直观和最简单的思路,输入数据的格式中X的time step=1,所以无法利用BPTT的时间记忆。

X = seq.reshape(5, 1, 1)
y = seq.reshape(5, 1)

2)LSTM的单元数n_neurons与输入数据的长度是无关的,这里值5是巧合。

3)“The batch size was set to the number of samples in the epoch to avoid having to make the LSTM stateful and manage state resets manually”,所以意味着每个batch之间会自动做state resets。

2. Many-to-One LSTM for Sequence Prediction

1) 输出层比较奇特,“output one vector”, vector的长度与输入数据相同。

Jason关于这个架构的评论是“We can configure an MLP or LSTM to output a vector. For an LSTM, if we output a vector of n values for one time step, each output is considered by the LSTM as a feature, not a time step. Thus it is a many-to-one architecture. The vector may contain timesteps, but the LSTM is not outputting time steps, it is outputting features.”

3. Many-to-Many LSTM for Sequence Prediction

1) 在最新的keras上,似乎也不需要TimeDistributed层了,“ it seems that Dense can now support 3D input without the wrapper.” 。

以前TimeDistributed的作用是因为:

“Without the TimeDistributed wrapper, the Dense is connected to the output from each time step. With the wrapper, the same Dense is applied to each time step.”

《How to Use the TimeDistributed Layer for Long Short-Term Memory Networks in Python》学习笔记相关推荐

  1. 第二行代码学习笔记——第六章:数据储存全方案——详解持久化技术

    本章要点 任何一个应用程序,总是不停的和数据打交道. 瞬时数据:指储存在内存当中,有可能因为程序关闭或其他原因导致内存被回收而丢失的数据. 数据持久化技术,为了解决关键性数据的丢失. 6.1 持久化技 ...

  2. 第一行代码学习笔记第二章——探究活动

    知识点目录 2.1 活动是什么 2.2 活动的基本用法 2.2.1 手动创建活动 2.2.2 创建和加载布局 2.2.3 在AndroidManifest文件中注册 2.2.4 在活动中使用Toast ...

  3. 第一行代码学习笔记第八章——运用手机多媒体

    知识点目录 8.1 将程序运行到手机上 8.2 使用通知 * 8.2.1 通知的基本使用 * 8.2.2 通知的进阶技巧 * 8.2.3 通知的高级功能 8.3 调用摄像头和相册 * 8.3.1 调用 ...

  4. 第一行代码学习笔记第六章——详解持久化技术

    知识点目录 6.1 持久化技术简介 6.2 文件存储 * 6.2.1 将数据存储到文件中 * 6.2.2 从文件中读取数据 6.3 SharedPreferences存储 * 6.3.1 将数据存储到 ...

  5. 第一行代码学习笔记第三章——UI开发的点点滴滴

    知识点目录 3.1 如何编写程序界面 3.2 常用控件的使用方法 * 3.2.1 TextView * 3.2.2 Button * 3.2.3 EditText * 3.2.4 ImageView ...

  6. 第一行代码学习笔记第十章——探究服务

    知识点目录 10.1 服务是什么 10.2 Android多线程编程 * 10.2.1 线程的基本用法 * 10.2.2 在子线程中更新UI * 10.2.3 解析异步消息处理机制 * 10.2.4 ...

  7. 第一行代码学习笔记第七章——探究内容提供器

    知识点目录 7.1 内容提供器简介 7.2 运行权限 * 7.2.1 Android权限机制详解 * 7.2.2 在程序运行时申请权限 7.3 访问其他程序中的数据 * 7.3.1 ContentRe ...

  8. 第一行代码学习笔记第五章——详解广播机制

    知识点目录 5.1 广播机制 5.2 接收系统广播 * 5.2.1 动态注册监听网络变化 * 5.2.2 静态注册实现开机广播 5.3 发送自定义广播 * 5.3.1 发送标准广播 * 5.3.2 发 ...

  9. 第一行代码学习笔记第九章——使用网络技术

    知识点目录 9.1 WebView的用法 9.2 使用HTTP协议访问网络 * 9.2.1 使用HttpURLConnection * 9.2.2 使用OkHttp 9.3 解析XML格式数据 * 9 ...

  10. 安卓教程----第一行代码学习笔记

    安卓概述 系统架构 Linux内核层,还包括各种底层驱动,如相机驱动.电源驱动等 系统运行库层,包含一些c/c++的库,如浏览器内核webkit.SQLlite.3D绘图openGL.用于java运行 ...

最新文章

  1. shell下的进度条和最大最小平均值
  2. App Inventor2项目部署到本地
  3. dalvik虚拟机执行流程_程序员必备的一些流程图
  4. Java并发教程–信号量
  5. Hadoop 配置文件 启动方式
  6. idea中没有j2ee_idea神器功能大全
  7. 高效的序列化/反序列化数据方式 Protobuf
  8. Pytorch RuntimeERROR: Given groups=1 weights of size [256,64,1,1] expected input[1,16,256,256] to
  9. [收藏]SQL Server 索引结构及其使用
  10. Python:time库使用方法
  11. win10u盘一直正在计算机,Windows10未插入U盘却一直显示的解决方法
  12. 从逻辑学中的偷换概念谈起
  13. 怎么解决pdf乱码问题呢?
  14. mac最值得关注的终端工具,全功能串行终端管理软件Serial
  15. 无限极分类JAVA 实现—查子孙树、家谱树
  16. HDU-6148 Valley Numer(数位DP)
  17. 电子作业票系统:消除安全管理漏洞,科技赋能企业业务洞察
  18. 网线和WIFI同时使用
  19. 自制APP连接OneNET---实现数据监控和下发控制(MQTT)
  20. 电子西塔琴音源 Orange Tree Samples Evolution Sitardelic Kontakt

热门文章

  1. foreman架构的引入3-安装Foreman1.5.3架构(all-in-one)
  2. c#中类的简单使用学习
  3. 选择器、像素和百分比、颜色单位、文档流-css基础
  4. 最流行的轻量级php框架,GitHub - meolu/zan: zan 轻量级PHP微框架
  5. [小笔记]TypeScript/JavaScript数组转置
  6. python密码编程_Python密码学编程
  7. linux定时执行任务命令,crontab(linux下定时执行任务命令)
  8. ML Pipeline原理
  9. Jupyter notebook最简原型界面设计 - ipywidgets与lineup_widget
  10. [python]python jieba 模块