Tensorflow与RNN、双向LSTM等的踩坑记录及解决

本文详细记录了使用TensorFlow处理不定长文本序列的步骤,包括数据读取、序列预测与拟合、多任务设置、zero padding的处理方法,以及解决双向LSTM信息瓶颈的策略,如序列拼接、平均值和池化操作。
摘要由CSDN通过智能技术生成

1、tensorflow(不定长)文本序列读取与解析

tensorflow读取csv时需要指定各列的数据类型。

但是对于RNN这种接受序列输入的模型来说,一条序列的长度是不固定。这时如果使用csv存储序列数据,应当首先将特征序列拼接成一列。

例如两条数据序列,第一项是标签,之后是特征序列

[0, 1.1, 1.2, 2.3] 转换成 [0, '1.1_1.2_2.3']

[1, 1.0, 2.5, 1.6, 3.2, 4.5] 转换成 [1, '1.0_2.5_1.6_3.2_4.5']

这样每条数据都只包含固定两列了。

读取方式是指定第二列为字符串类型,再将字符串按照'_'分割并转换为数字。

关键的几行代码示例如下:

def readMyFileFormat(fileNameQueue):
    reader = tf.TextLineReader()
    key, value = reader.read(fileNameQueue)

    record_defaults = [["Null"], [-1], ["Null"], ["Null"], [-1]]
    phone1, seqlen, ts_diff_strseq, t_cod_strseq, userlabel = tf.decode_csv(value, record_defaults=re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大富大贵7

很高兴能够帮助到你 感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值