示例1: 返回各时刻状态

import tensorflow as tf
import numpy as np
import keras
from keras.layers import ConvLSTM2Dlstm_input = np.random.random((4,6,30,30,3)).astype(np.float32)
lstm_input = tf.convert_to_tensor(lstm_input)lstm_out1 = ConvLSTM2D(filters=1,kernel_size=[5,5],strides=(1,1),padding='valid',activation='relu',input_shape=(6,30,30,3),return_sequences=True)(lstm_input)
lstm_out2 = ConvLSTM2D(filters=2,kernel_size=[5,5],strides=(1,1),padding='valid',activation='relu',return_sequences=True)(lstm_out1)
lstm_out3 = ConvLSTM2D(filters=3,kernel_size=[5,5],strides=(1,1),padding='valid',activation='relu',return_sequences=True)(lstm_out2)with tf.Session() as sess:sess.run(tf.global_variables_initializer())lstm_out1_,lstm_out2_,lstm_out3_ = sess.run([lstm_out1,lstm_out2,lstm_out3])print(lstm_out1_.shape)print(lstm_out2_.shape)print(lstm_out3_.shape)"""
返回:
(4, 6, 26, 26, 1)
(4, 6, 22, 22, 2)
(4, 6, 18, 18, 3)
"""

备注:

return_sequences: 默认是False,控制LSTM的输出:

  • False: 仅返回最后一个时刻的状态(hidden_state),shape = [B,H,W,C],是一个4维张量
  • True: 返回所有时刻的输出(hidden_state),shape = [B,Clip_len,H,W,C],是一个5维张量

示例2: 同时返回各时刻状态与最后一个时刻的state(包含state.h,state.c)

用return_state=True控制

import tensorflow as tf
import numpy as np
import keras
from keras.layers import ConvLSTM2Dlstm_input = np.random.random((4,6,30,30,3)).astype(np.float32)
lstm_input = tf.convert_to_tensor(lstm_input)lstm_out,state_h,state_c = ConvLSTM2D(filters=1,kernel_size=[5,5],strides=(1,1),padding='valid',activation='relu',batch_input_shape=(-1,6,30,30,3),return_sequences=False,return_state=True)(lstm_input)with tf.Session() as sess:sess.run(tf.global_variables_initializer())lstm_out_,state_h_,state_c_= sess.run([lstm_out,state_h,state_c])print(lstm_out_==state_h_)print(lstm_out_.shape)print(state_h_.shape)print(state_c_.shape)"""
返回:[ True]]]]
(4, 26, 26, 1)
(4, 26, 26, 1)
(4, 26, 26, 1)
"""

综上:

return_sequences: 决定是否返回所有时刻的状态

return_state:决定是否返回最后一个时刻的cell状态,由示例2结果可见,最后一个时刻的state = [h,c]

注意:在keras 中文文档中,在介绍ConvLSTM2D时,没有介绍 return_state 参数,该参数在LSTM的介绍中介绍,但是在ConvLSTM2D中通用。。。自己差点以为ConvLSTM2D中没有这个功能。。。

keras ConvLSTM2D 的简单应用相关推荐

  1. keras 双向LSTM 简单示例

    示例1: 仅返回各个时刻的状态 import tensorflow.compat.v1 as tf from keras.layers import ConvLSTM2D,TimeDistribute ...

  2. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)...

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) #for reproducibility再现性 from keras.d ...

  3. python基础知识及数据分析工具安装及简单使用(Numpy/Scipy/Matplotlib/Pandas/StatsModels/Scikit-Learn/Keras/Gensim))

    Python介绍. Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置 python基础知识及数据分 ...

  4. keras教程-静态图编程框架keras-学习心得以及知识点总结

    在过去的四个月里(2020三月开始的),和朋友一起对着官网的keras教程学习了一遍,学习的过程中发现有一些解释的不清楚的地方(官网的教程实在是~~~),我们自己做了实验,探索了问题的各个角落以及每个 ...

  5. 掌声送给TensorFlow 2.0!用Keras搭建一个CNN | 入门教程

    作者 | Himanshu Rawlani 译者 | Monanfei,责编 | 琥珀 出品 | AI科技大本营(id:rgznai100) 2019 年 3 月 6 日,谷歌在 TensorFlow ...

  6. Keras还是TensorFlow?深度学习框架选型实操分享

    译者| 王天宇.林椿眄 责编| Jane.琥珀 出品| AI科技大本营 深度学习发展势头迅猛,但近两年涌现的诸多深度学习框架让初学者无所适从.如 Google 的 TensorFlow.亚马逊的 MX ...

  7. Keras,亡于谷歌?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨机器之心 来源丨机器之心 编辑丨极市平台 导读 将 Keras ...

  8. Keras vs PyTorch:谁是第一深度学习框架?

    「第一个深度学习框架该怎么选」对于初学者而言一直是个头疼的问题.本文中,来自 deepsense.ai 的研究员给出了他们在高级框架上的答案.在 Keras 与 PyTorch 的对比中,作者还给出了 ...

  9. keras中lstm参数_如何使用Keras为自定义NER构建深度神经网络

    在这篇文章中,我们将学习如何使用Keras创建一个简单的神经网络来从非结构化文本数据中提取信息(NER). 模型架构 在这里,我们将使用BILSTM + CRF层.LSTM层用于过滤不需要的信息,将仅 ...

最新文章

  1. java项目中怎么查看用的序列_如何在Java应用程序中使用序列化分类器对...
  2. 面向对象(下)知识点
  3. ios 不同的数据类型转化为json类型
  4. 操作系统实验报告14:Peterson 算法
  5. 东风本田crv2020新款混动说明书_能上绿牌,无续航焦虑!2020北京车展混动新车抢先看...
  6. JJWT签发与验证token
  7. 虎扑入股“造物”App关联公司 后者为模玩、手办平台
  8. 翻译 - 【Dojo Tutorials】Getting Started with dojox/app
  9. FFmpeg源代码简单分析:日志输出系统(av_log()等)
  10. 6.企业安全建设指南(金融行业安全架构与技术实践) --- 安全培训
  11. SDN(软件定义网络)简史-早期
  12. 什么是SysWow64
  13. 小天使改名(水题 杭电排位赛-2)
  14. leet75:颜色分类
  15. webrtc入门:13.pion webrtc开源的webrtc框架
  16. java类型的数组初始化_java数组初始化详解
  17. 特殊符号备用——三角形
  18. Qt数据库:(五)QSqlQueryModel
  19. QT tablewidget实时刷新显示内存溢出问题
  20. 2022的取舍与得失

热门文章

  1. vs2015ef链接mysql_【转载】VS2015 + EF6连接MYSQL5.6
  2. myisam为什么比innodb查询快_mysql存储引擎之MyISAM 和 InnoDB的比较
  3. 路由器上的usb接口有什么用_路由器上面的USB接口有什么用途,你都知道吗?
  4. django mysql返回json_Django 1.8.11 查询数据库返回JSON格式数据
  5. 小学计算机打字比赛教案,小学信息技术二年级教案
  6. 一段简单的python代码_一个简单的python写的C/S程序
  7. 多台Linux服务器一起关机,linux – 一台服务器,两台APC UPS上的冗余电源:如何触发关机?...
  8. Ubuntu为julia安装深度学习框架MXNet(支持CUDA和OPenCV编译)
  9. 如何在R中使用range()?
  10. csh sum算总和_如何在R中使用sum()–在R中查找元素的总和