TensorFlow2.0入门到进阶系列——6_循环神经网络

1、理论部分

卷积神经网络-CV
循环神经网络-NLP

  • Embedding与变长输入的处理
  • 序列式问题
  • 循环神经网络
  • LSTM模型

1.1、Embedding与变长输入的处理

Embedding

  • One-hot编码;
    • Word -> index -> [0,0,0,…,0,1,0,…,0]
  • Dense embedding(密集编码)
    • Word -> index -> [1.2,4.2,2.9,…,0.1]
      变长输入
  • Padding
    • Word index:[3,2,5,9,1]
    • Padding:[3,2,5,9,1,0,0,0,0,0]
  • 合并

为什么需要循环神经网络——合并+padding的缺点

  • 信息丢失
    • 多个embedding合并
    • Pad噪音、无主次
  • 无效计算太多,低效
    • 太多的padding

1.2、循环神经网络

序列式问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.3、LSTM长短期记忆网络

为什么需要LSTM

  • 普通RNN的信息不能长久传播(存在于理论上)
  • 引入选择机制
    • 选择性输出
    • 选择性输入
    • 选择性遗忘
  • 选择性 -> 门
    • Sigmoid函数:[0,1]
  • 门限机制
    • 向量A -> sigmoid -> [0.1,0.9,0.4,0,0.6]
    • 向量B -> [13.8,14,-7,-4,30.0]
    • A为门限,B为信息
    • A * B = [0.138,12.6,-2.8,0,18.0]
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

2、实战部分

  • Keras实战embedding
  • Keras搭建循环神经网络
  • Keras文本生成实战
  • Keras搭建LSTM网络
  • Kaggle文本分类数据集实战

2.1、Keras实战embedding

import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf

from tensorflow import keras

print(tf.__version__)
print(sys.version_info)
for module in mpl, np, pd, sklearn, tf, keras:
    print(module.__name__, module.__version__)
imdb = keras.datasets.imdb    #电影评论(好/坏)
vocab_size = 10000     #限制数据集中词表数量
index_from = 3         #控制词表的index从哪里开始算
(train_data, train_labels), (test_data, test_labels) = imdb.load_data(
    num_words = vocab_size, index_from = index_from)
print(train_data[0], train_labels[0])     #train_data每一个样本,都是一个向量
print(train_data.shape, train_labels.shape)     #train_data.shape因为第二维度不定长,所以没给出来,train_labels.shape就是一维的
print(len(train_data[0]), len(train_data[1]))
print</
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值