循环神经网络系列(二)Tensorflow中dynamic_rnn

本文是循环神经网络系列的第二篇,重点介绍如何在Tensorflow中使用dynamic_rnn进行多步计算。通过dynamic_rnn,我们可以一步完成多个RNN单元的计算,例如输入h0、x1得到output1、h1,再依次输入h1、x2和h2、x3等。文章详细解析了dynamic_rnn的使用方法,包括输入格式、输出结果的形状以及两种不同输入方式的优缺点。
摘要由CSDN通过智能技术生成

1.回顾

上一篇博文(循环神经网络系列(一)Tensorflow中BasicRNNCell)中我们介绍了在Tensoflow中,每个RNN单元的实现,以及对应各个参数的含义。自那之后,我们就能通过Tensorflow实现一个单元的计算了。

import tensorflow as tf
import numpy as np

x = np.array([[1, 0, 1, 2], [2, 1, 1, 1]])
X = tf.placeholder(dtype=tf.float32, shape=[2, 4], name='input')
cell = tf.nn.rnn_cell.BasicRNNCell(num_units=5)  # output_size:10,也可以换成GRUCell,LSTMAACell,BasicRNNCell
h0 = cell.zero_state(batch_size=2, dtype=tf.float32)  # batch_size:2
output, h1 = cell.call(X, h0)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    a, b = (sess.run([output, h1], feed_dict={
   X: x}))
    print('output:')
    print(a)
    print('h1:')
    print(b)
    
>>

output:
[[ 0.4495004   0.9573416   0.6013933   0.75571895 -0.8172958 ]
 [ 0.6624889   0.7011481   0.68771356  0.77796507 -0.7617092 ]]
h1:
[[ 0.4495004   0.9573416   0.6013933   0.75571895 -0.8172958 ]
 [ 0.6624889   0.7011481   0.68771356  0.77796507 -0.7617092 ]]

通过以上的代码,我们完成了如下操作:
在这里插入图片描述

但是通常情况下,我们都是要进行这样的操作:

在这里插入图片描述

输入 h 0 , x 1 h_0,x_1 h0,x

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值