【强化学习】使用LSTM模型来预测歌词

目录

问题描述:

解决思路:

1.LSTM算法

2.具体实现

实现步骤

代码展示

完成截图

参考:


问题描述:

        选择一位歌手的英文歌曲,以txt文件存储在python文件同级。

参考歌词文件:

Hands-On-Reinforcement-Learning-with-Python/ZaynLyrics.txt at master · PacktPublishing/Hands-On-Reinforcement-Learning-with-Python · GitHub

解决思路:

1.LSTM算法

        LSTM算法建立在RNN算法的基础上。LSTM解决了,RNN算法在训练过程中会出现梯度消失的情况。

        在LSTM单位中,有三种门槛。分别是忘记门槛,输入门槛和输出门槛。数据的更新将是沿着从左到右来进行更新。

其中三种门槛的作用分别是

        a)选择进行更新的是哪种数据

        b)选择哪种数据应该存入到内存中

        c)决定该输出哪种数据

2.具体实现

实现步骤

a)导入数据包和文件读取:

import numpy as np
import tensorflow as tf

with open("ZaynLyrics.txt","r") as f:
    data = f.read()
    data = data.replace('\n','')
    data = data.lower()

# 检验数据是否导入成功
# print(data[:50])

b)然后,将所有字符存储在all_chars变量中:

#store all the charachters in the all_chars variable
all_chars = list(set(data))

c)将唯一字符的数量存储在unique_chars中:


#store the number of unique characters 
unique_chars = len(all_chars)

d)我们还将字符总数存储在total_chars中:

#store the total number of character
total_chars =len(data)

e)建立字符与索引相互之间的映射。如:char_to_ix 代表字符到索引的映射

char_to_ix = {ch:i for i ,ch in enumerate(all_chars)}
ix_to_char = {i:ch for i ,ch in enumerate(all_chars)}

f)接下来,定义一个generate_batch函数,它将生成输入值和目标值。目标值就是i乘以输入值的位移

def generate_batch(s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值