使用tensorflow简单构建rnn框架

该文展示了如何利用Keras库构建一个RNN(循环神经网络),特别是LSTM层,处理文本数据。首先,对输入的文本进行预处理,包括单词编码和创建特征与标签。然后,定义了一个包含两层LSTM的模型,并应用softmax激活函数。接着,模型被编译并用Adam优化器训练。最后,模型用于预测并打印出预测结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 1.按照要求使用keras,搭建rnn处理以下内容
# (1)数据预处理

import tensorflow as tf
from tensorflow.keras import optimizers,activations,losses,layers,models
sample = "hihello"
# ①将出现的单词按照字典形式进行处理
set_list = list(set(sample))
print(set_list)
set_dict = {j:i for i,j in enumerate(set_list)}
print(set_dict)
# ②使用上面的sample,将hihell作为特征,ihello作为标签
x_str = sample[:-1]
y_str = sample[1:]
x = [set_dict[i] for i in x_str]
y = [set_dict[i] for i in y_str]
# ③设置合理的时间序列,将x进行对应的处理
n_timesteps = len(x)
n_classes = len(set_list)
x = tf.keras.utils.to_categorical(x,n_classes)
x = tf.reshape(x,(-1,n_timesteps,n_classes))
y = tf.keras.utils.to_categorical(y,n_classes)
y = tf.reshape(y,(-1,n_timesteps,n_classes))
# (2)模型操作
# ①使用LSTM模型进行处理
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.LSTM(n_classes,input_shape=(n_timesteps,n_classes),return_sequences=True))

# ②叠加一层lstm模型,元素数量相同
model.add(tf.keras.layers.LSTM(n_classes,return_sequences=True))

# ③使用对应方式将数据进行softmax处理
model.add(tf.keras.layers.Activation('softmax'))
# ④合理编译模型
model.compile(optimizer=optimizers.Adam(0.1),
              loss = losses.categorical_crossentropy,
              metrics=['accuracy'])
# ⑤训练模型
model.fit(x,y,epochs=100)
# ⑥预测结果
predictions = model.predict(x)
# ⑦将预测结果进行打印,核对结果
for i , j in enumerate(predictions):
    pre_idx = tf.argmax(j,axis=1)
    pre_val = [set_list[c] for c in pre_idx]
    print('true_val',''.join(y_str),'-->','pre_val',''.join(pre_val))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值