没有合适的资源?快使用搜索试试~ 我知道了~
首页keras 简单 lstm实例(基于one-hot编码)
资源详情
资源评论
资源推荐

keras 简单简单 lstm实例实例(基于基于one-hot编码编码)
主要介绍了keras 简单 lstm实例(基于one-hot编码),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
简单的LSTM问题,能够预测一句话的下一个字词是什么
固定长度的句子,一个句子有3个词。
使用使用one-hot编码编码
各种引用各种引用
import keras
from keras.models import Sequential
from keras.layers import LSTM, Dense, Dropout
import numpy as np
数据预处理数据预处理
data = 'abcdefghijklmnopqrstuvwxyz'
data_set = set(data)
word_2_int = {b:a for a,b in enumerate(data_set)}
int_2_word = {a:b for a,b in enumerate(data_set)}
word_len = len(data_set)
print(word_2_int)
print(int_2_word)
一些辅助函数一些辅助函数
def words_2_ints(words):
ints = []
for itmp in words:
ints.append(word_2_int[itmp])
return ints
print(words_2_ints('ab'))
def words_2_one_hot(words, num_classes=word_len):
return keras.utils.to_categorical(words_2_ints(words), num_classes=num_classes)
print(words_2_one_hot('a'))
def get_one_hot_max_idx(one_hot):
idx_ = 0
max_ = 0
for i in range(len(one_hot)):
if max_ < one_hot[i]:
max_ = one_hot[i]
idx_ = i
return idx_
def one_hot_2_words(one_hot):
tmp = []
for itmp in one_hot:
tmp.append(int_2_word[get_one_hot_max_idx(itmp)])
return "".join(tmp)
print( one_hot_2_words(words_2_one_hot('adhjlkw')) )
构造样本构造样本
time_step = 3 #一个句子有3个词
def genarate_data(batch_size=5, genarate_num=100):
#genarate_num = -1 表示一直循环下去,genarate_num=1表示生成一个batch的数据,以此类推
#这里,我也不知道数据有多少,就这么循环的生成下去吧。
#入参batch_size 控制一个batch 有多少数据,也就是一次要yield进多少个batch_size的数据
'''
例如,一个batch有batch_size=5个样本,那么对于这个例子,需要yield进的数据为:
abc->d
bcd->e
cde->f
def->g
efg->h
然后把这些数据都转换成one-hot形式,最终数据,输入x的形式为:
[第1个batch]
[第2个batch]
...
[第genarate_num个batch]
每个batch的形式为:
[第1句话(如abc)]
[第2句话(如bcd)]
...
每一句话的形式为:
[第1个词的one-hot表示]
[第2个词的one-hot表示]
...
'''
cnt = 0
batch_x = []
batch_y = []
sample_num = 0
while(True):
for i in range(len(data) - time_step):
batch_x.append(words_2_one_hot(data[i : i+time_step]))
batch_y.append(words_2_one_hot(data[i+time_step])[0]) #这里数据加[0],是为了符合keras的输出数据格式。 因为不加[0],表示是3维的数据。 你可以自己尝试不加0,看下面的test打印出来是什么
sample_num += 1



















weixin_38677806
- 粉丝: 5
- 资源: 942
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0