LSTM基本原理及实践(下)(更新中)

本文内容是上文《LSTM基本原理及实践(上)》的实战篇:手动实现LSTM网络并对文本数据进行分类。
本文的内容和资料是来自2020 Google DevFest TensorFlow CodeLab活动中段清华老师的分享~


任务描述

  • 基本任务:不使用TF官方的LSTM层,实现一个自定义的、继承自tf.keras.Layer的LSTM层
  • 进阶任务:基于以上任务,实现一个直接以字符串为输入的文本分类模型
  • 终极任务:基于以上模型,训练互联网情感分析数据集INEWS,并给出训练后的准确率。

数据集

  • 各系统用户可以通过终端下载数据集,我以天池notebook环境为例:pip install zh-dataset-inews

  • 注意 天池notebook中下载完数据集需要重启kernel
    在这里插入图片描述

  • 查看数据集

from zh_dataset_inews import title_train,label_train,content_train
len(title_train)

输出:
在这里插入图片描述

for x,y in zip(title_train[:10],label_train[:10]):
    print(x,y)

输出:
在这里插入图片描述


LSTM手动实现

前置知识:

  • LSTM原理具体可以看《LSTM基本原理及实践(上)》
  • LSTM相关公式如下:
    在这里插入图片描述
  • 根据官方手册,自定义实现一个模型主要是三步:
    • __init__ :进行于输入无关的初始化
    • build:当你知道输入的张量的维度时也可以将他们初始化
    • call:进行前向计算
1 基础任务
class CustomLSTM(tf.keras.layers.Layer):
    """
    #LSTM's input:{batch_size,sequence_length,input_size}
    #LSTM'S output 1:{batch_size,sequence_length,output_size}
    #       output 2:{batch_size,output_size}
    """
    def __init__(self,output_size,return_sequences=False):
        super(CustomLSTM,self).__init__()
        self.output_size=output_size
        self.return_sequences=return_sequences
        
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值