rnn、lstm,gru中output信息说明

在一般的rnn模型中,rnn一般输出的形式如下[batch,seq_len,hidden_size],如果用做分类,一般是取最后一个状态[batch,hidden_size],如果用于做词性标注和分词则取全部的状态[batch,seq_len,hidden_size],下面介绍下用于文本分类取最后状态的两种方法,一种是直接transpose,取[-1]最后一个状态,大小变为[batch,hidden_size],另外一个是直接[:,-1,:]把中间的seq_len删除,直接变成[batch,hidden_size],直接看代码:

   
   
  1. In [2]: import tensorflow as tf
  2. In [3]: output=tf.get_variable(name='out',shape=[10,30,128])
  3. In [4]: output.get_shape()
  4. Out[4]: TensorShape([Dimension(10), Dimension(30), Dimension(128)])
  5. In [7]: output_trans = tf.transpose(output, [1, 0, 2])
  6. In [8]: output_trans.get_shape()
  7. Out[8]: TensorShape([Dimension(30), Dimension(10), Dimension(128)])
  8. In [9]: output_trans[-1].get_shape()
  9. Out[9]: TensorShape([Dimension(10), Dimension(128)])
  10. In [10]: output[:,-1,:].get_shape()
  11. Out[10]: TensorShape([Dimension(10), Dimension(128)])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值