TF210——字母预测Embedding_1pre1.md
TF210——字母预测Embedding_1pre1.md
用RNN输入一个字母,预测下一个字母(Embedding编码)
按照六步法,首先import相关模块

我们用到的字母有5个是 a b c d e,为了送入神经网络,把字母表示为数字0 1 2 3 4

生成训练用的输入特征x_train和标签y_train,输入特征a,对应的标签是b,输入特征b,对应的标签是c,输入特征d,对应的标签是e,输入特征e,对应的标签是a

将他们打乱顺序

把输入特征变成Embedding层期待的形状:
- 第一个维度喂入输入特征的个数,使整个数据集样本数,有5个,可以用len(x_train)得到
- 第二个维度循环核时间展开步数,因为输入一个字母就得到输出,所以时间展开步数是1
再把y_train变为numpy格式

在用Sequential搭建网络时,多了一层Embedding层,先对输入数据进行编码,这一层会生成一个五行两列的可训练参数矩阵,实现编码可训练
随后,搭建有三个记忆体的循环层,设置Dense层全连接实现了输出层yt的计算

随后是cmopile fit summary和六步法一样,执行反向传播训练参数矩阵

提取参数和acc/loss可视化,同样用了六步法八股的套路

应用:字母预测
在预测结果时,把读到的输入字母直接查找表示它的ID值,把读到的输入字母直接查找表示它的ID值,调整为Embedding层希望的形状
- 只送入1组输入特征所以送入样本数是1,
- 输入1次就给出预测结果,所以时间展开步数是1
- 每个时间步输入的是字母对应的独热码,是5个数,所以这里是5
通过predict得到预测结果,选出预测结果最大的一个,print输出预测结果
