输入长度_深度学习算法(第17期)RNN如何处理变化长度的输入和输出?

上期我们一起学习了静态RNN和动态RNN的区别,
深度学习算法(第16期)----静态RNN和动态RNN
我们知道之前学过的CNN的输入输出都是固定长度,今天我们一起学习下RNN是怎么处理变化长度的输入输出的?

1. 处理变化长度的输入

到目前为止,我们已经知道在RNN中怎么使用固定长度的输入,准确的说是两个时刻长度的输入,但是如果输入的序列是变化长度的呢?比如一个句子。这种情况下,当我们调用dynamic_rnn()或者static_rnn()的时候,需要设置参数sequence_length。该参数应该是一个表示每个样本输入序列大小的一维tensor。走个例子看看:

seq_length = tf.placeholder(tf.int32, [None])
[...]
outputs, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32,
sequence_length=seq_length)

就上期的例子,假如说,第二个样本的输入长度为1的话,那么为了匹配输入tensor的大小,必须将第二个样本的第二个输入设为0,如下:

X_batch = np.arra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值