import tensorflow as tf"""
tf.nn.rnn_cell        # 定义rnn 细胞核相关的信息的
tf.nn.rnn_cell_impl   # 定义rnn细胞核具体是如何实现的
tf.nn.dynamic_rnn()   # 单向动态rnn。
tf.nn.bidirectional_dynamic_rnn()   # 双向动态rnn
tf.nn.static_rnn()    # 单向静态rnn
tf.nn.static_bidirectional_rnn()   # 双向静态rnn
""""""
tf.nn.dynamic_rnn()   # 单向动态rnn。特点 1、在每个批次执行之间构建rnn的执行结构。 允许每个批量数据的 时间步不一致。 效率慢。2、输入要求:3-D tensor[N, n_steps, num_classes]3、输出形状: 3-D tensor[N, n_steps, lstm_size]tf.nn.static_rnn()    # 单向静态rnn1、静态rnn在执行之前,执行结构已经构建好, 每个批量数据的时间步必须一致。 效果快2、输入的要求是一个列表(每一个值对应一个时刻的输入):[[N, num_classes], [N, num_classes],[N, num_classes] ....]3、返回的输出,也是一个列表(每一个值对应一个时刻的输出)[[N, lstm_size], [N, lstm_size],[N, lstm_size] ....]
"""# 一、关于rnn中的细胞核cell
"""
tf.nn.rnn_cell.BasicLSTMCell     # 基础的LSTM cell
tf.nn.rnn_cell.LSTMCell()        # 带peephole的  LSTM cell
tf.nn.rnn_cell.BasicRNNCell()    # 基础的rnn   vanilla rnn
tf.nn.rnn_cell.GRUCell()         # GRU实现tf.nn.rnn_cell.MultiRNNCell()     # 堆栈多层隐藏层的
tf.nn.rnn_cell.DropoutWrapper()   # rnn的dropout
tf.nn.rnn_cell.RNNCell    # 所有cell实现的父类
"""def BasicRNN():"""学习tf.nn.rnn_cell.BasicRNNCell() 使用:return:"""cell = tf.nn.rnn_cell.BasicRNNCell(num_units=64, activation=tf.nn.tanh)print(cell.state_size, cell.output_size)def BasicRNN_n_steps():# 定义一个输入,每个时刻2个样本(batch_size),每个样本由3个维度组成(one-hot)batch_size = tf.placeholder_with_default(2, shape=[], name='batch')inputs1 = tf.placeholder(tf.float32, shape=[2, 3])inputs2 = tf.placeholder(tf.float32, shape=[2, 3])inputs = [inputs1, inputs2]# 实例化一个细胞核cell = tf.nn.rnn_cell.BasicRNNCell(num_units=4)# 初始化一个状态值state0 = cell.zero_state(batch_size, tf.float32)# 获取t=1时刻的输出 (需要传入 t=1时刻的输入和 上一时刻的状态值)# output1, state1 = cell.__call__(inputs[0], state0)output1, state1 = cell(inputs[0], state0)print(output1, state1)# 获取t=2时刻的输出 (需要传入 t=2时刻的输入和 上一时刻的状态值state1)output2, state2 = cell(inputs[1], state1)print(output2, state2)with tf.Session() as sess:sess.run(tf.global_variables_initializer())data1 = [[1.2, 2.3, 3.4],[2.3, 3.5, 3.8]]data2 = [[1.32, 2.33, 3.34],[2.33, 3.35, 3.38]]feed = {inputs1: data1, inputs2: data2}output1_, state1_, output2_, state2_ = sess.run([output1, state1, output2, state2], feed)print(output1_, state1_)print('**'*56)print(output2_, state2_)def BasicLSTM():"""学习lstm cell:return:"""cell = tf.nn.rnn_cell.BasicLSTMCell(num_units=3)# 定义一个输入,总共2个时刻(时间步),每个时刻输入4个样本(batch_size,),每个样本由2个维度组成(one-hot维度)old_inputs = tf.placeholder(tf.float32, [8, 2])inputs = tf.split(old_inputs, num_or_size_splits=2, axis=0)print(inputs)# 初始化状态值s0 = cell.zero_state(batch_size=4, dtype=tf.float32)# 直接将输入 传入静态rnn。tf.nn.static_bidirectional_rnn()rnn_outputs, final_state = tf.nn.static_rnn(cell=cell, inputs=inputs, initial_state=s0)# rnn_outputs  [[N, lstm_size], [N, lstm_size]]print(rnn_outputs)with tf.Session() as sess:sess.run(tf.global_variables_initializer())data = [[2.3, 2.5],[2.33, 2.5],[2.34, 2.45],[2.3, 23.5],[2.33, 2.45],[2.3, 2.5],[2.33, 2.65],[2.3, 2.5]]print(sess.run([rnn_outputs, final_state], feed_dict={old_inputs: data}))if __name__ == '__main__':BasicRNN()BasicRNN_n_steps()BasicLSTM()
D:\Anaconda\python.exe D:/AI20/HJZ/04-深度学习/4-RNN/20191228___AI20_RNN/02_RNN基本api.py
64 64
Tensor("basic_rnn_cell/Tanh:0", shape=(2, 4), dtype=float32) Tensor("basic_rnn_cell/Tanh:0", shape=(2, 4), dtype=float32)
Tensor("basic_rnn_cell/Tanh_1:0", shape=(2, 4), dtype=float32) Tensor("basic_rnn_cell/Tanh_1:0", shape=(2, 4), dtype=float32)
2020-02-18 10:24:39.299294: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
[[-0.48828983  0.9539078  -0.66409636  0.6394202 ][-0.6233796   0.9742228  -0.8671773   0.5339205 ]] [[-0.48828983  0.9539078  -0.66409636  0.6394202 ][-0.6233796   0.9742228  -0.8671773   0.5339205 ]]
****************************************************************************************************************
[[-0.4096039   0.71057636 -0.49753952  0.4326929 ][-0.4899121   0.7949111  -0.80847675  0.07424883]] [[-0.4096039   0.71057636 -0.49753952  0.4326929 ][-0.4899121   0.7949111  -0.80847675  0.07424883]]
[<tf.Tensor 'split:0' shape=(4, 2) dtype=float32>, <tf.Tensor 'split:1' shape=(4, 2) dtype=float32>]
[<tf.Tensor 'rnn/basic_lstm_cell/Mul_2:0' shape=(4, 3) dtype=float32>, <tf.Tensor 'rnn/basic_lstm_cell/Mul_5:0' shape=(4, 3) dtype=float32>]
[[array([[1.9140340e-01, 1.6005790e-02, 2.5509506e-01],[1.8950416e-01, 1.5850056e-02, 2.5679973e-01],[1.8151365e-01, 1.6453112e-02, 2.5943112e-01],[2.0262927e-02, 1.5629010e-12, 2.4361372e-05]], dtype=float32), array([[0.31692508, 0.02951055, 0.37255847],[0.32423702, 0.0286498 , 0.36590496],[0.33835158, 0.02595335, 0.35356337],[0.20455933, 0.01601724, 0.36540356]], dtype=float32)], LSTMStateTuple(c=array([[0.46875435, 0.19634287, 1.4682989 ],[0.4777323 , 0.19432597, 1.4763477 ],[0.49135807, 0.18868431, 1.4950181 ],[0.2809511 , 0.09612122, 1.6794734 ]], dtype=float32), h=array([[0.31692508, 0.02951055, 0.37255847],[0.32423702, 0.0286498 , 0.36590496],[0.33835158, 0.02595335, 0.35356337],[0.20455933, 0.01601724, 0.36540356]], dtype=float32))]Process finished with exit code 0

5-RNN-02_RNN基本api相关推荐

  1. pytorch torch.nn.RNN

    应用 rnn = nn.RNN(10, 20, 2) input = torch.randn(5, 3, 10) h0 = torch.randn(2, 3, 20) output, hn = rnn ...

  2. python基础模型_零基础python代码策略模型实战

    内容摘要 1 本文概述 本文主要介绍了python基础.爬虫.与数据库交互.调用机器学习.深度学习.NLP等.分别介绍了各个模块的安装,环境的搭建等.并且以机器学习选股为例,把各个模块连贯起来,核心代 ...

  3. 深度学习框架哪家强?MXNet称霸CNN、RNN和情感分析,TensorFlow仅擅长推断特征提取

    深度学习框架哪家强:TensorFlow?Caffe?MXNet?Keras?PyTorch?对于这几大框架在运行各项深度任务时的性能差异如何,各位读者不免会有所好奇. 微软数据科学家Ilia Kar ...

  4. tensorflow lstm 实现 RNN / LSTM 的关键几个步骤 多层通俗易懂

    https://blog.csdn.net/Jerr__y/article/details/61195257?depth_1-utm_source=distribute.pc_relevant.non ...

  5. 基于TensorFlow打造强化学习API:TensorForce是怎样炼成的?

    TensorForce 是一个构建于 TensorFlow 之上的新型强化学习 API.强化学习组件开发者 reinforce.io 近日发表了一篇博客文章介绍了 TensorForce 背后的架构和 ...

  6. Keras【Deep Learning With Python】RNN Classifier 循环神经网络

    文章目录 1 前言 2 RNN-循环神经网络 2.1 序列数据 2.2 处理序列数据的神经网络 2.3 应用 3 代码实现 4 代码讲解 5 输出 1 前言 本文分为RNN简单讲解,与Keras快速搭 ...

  7. TensorFlow中RNN实现的正确打开方式

    上周写的文章<完全图解RNN.RNN变体.Seq2Seq.Attention机制>介绍了一下RNN的几种结构,今天就来聊一聊如何在TensorFlow中实现这些结构,这篇文章的主要内容为: ...

  8. Tensorflow:tf.contrib.rnn.DropoutWrapper函数(谷歌已经为Dropout申请了专利!)、MultiRNNCell函数的解读与理解

    Tensorflow:tf.contrib.rnn.DropoutWrapper函数(谷歌已经为Dropout申请了专利!).MultiRNNCell函数的解读与理解 目录 1.tf.contrib. ...

  9. TF学习——TF之API:TensorFlow的高级机器学习API—tf.contrib.learn的简介、使用方法、案例应用之详细攻略

    TF学习--TF之API:TensorFlow的高级机器学习API-tf.contrib.learn的简介.使用方法.案例应用之详细攻略 目录 tf.contrib.learn的简介 tf.contr ...

最新文章

  1. oracle 游标小例
  2. 需求又变了,要不要怼回去?
  3. 保障危险品的物流安全问题,大数据扮演了重要角色
  4. 史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~
  5. 线程优先级抢占实验【RT-Thread学习笔记 3】
  6. 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V8.0 Android-Q-TJ4】...
  7. MessageQueue nativePollOnce 一个不一样的 ANR
  8. 城市智慧排水系统导论
  9. Windows内网渗透之信息收集
  10. leetcode【121】Best Time to Buy and Sell Stock【c++,O(n)复杂度,时间97%,空间100%】
  11. android开发 java.lang.IllegalStateException at android.media.MediaPlayer._prepare(Native Method)
  12. Malloc源码解读三——Bins与Arena
  13. 关于Android app 国际化 中英文翻译的细节处理
  14. 307 跳转会携带请求方法吗_瘦得最快的有氧运动,你小时候常玩|跳绳|开合跳|有氧运动|快走|减肥|燃脂...
  15. 八字计算方法 php,php计算四柱(生辰八字)的方法
  16. 爬取网易云音乐某一个人的评论
  17. Talib技术因子详解(四)
  18. helper.exe
  19. 什么模式下不可使用曝光补偿_到底什么拍摄模式下才能用曝光补偿功能?
  20. html-5表白神器源码,C# 表白神器源码(winform)

热门文章

  1. 全民emo时代,是什么在治愈着当代年轻人?
  2. 雷军---我看未来20年
  3. 20180731-A · Dallas Animal Shelter FY2017 · ggplot2 geom_bar + coord_polar 饼图 饼状图 · R 语言数据可视化 案例 源码
  4. 基于asp.net的物流配送信息网站(含车主和货主)
  5. 射线p0-p1相对于Y轴负向顺时针旋转角度
  6. dota2起源1和2引擎区别_DOTA2将更新起源2引擎 游戏性能大提升
  7. 辽宁大学2022年全国硕士研究生招生考试634传播理论考试大纲
  8. 【PowerBI】各种常用度量值函数以及创建日历表
  9. ios13全选手势_iOS13这六个实用小功能 你知道吗?
  10. 中国花历背后的花神传说