如何创建一个简单的RNN模型?在谷歌Keras有详细的介绍。
Keras中,有4种类型的RNN模型,分别是:
- SimpleRNN (全连接的简单RNN)
- LSTM(长短时记忆模型)
- GRU (门控逻辑模型)
- StackedRNNCells(堆叠模型)
另外,keras还提供了RNN类,用来使用上述4种模型构建循环神经网络。RNN可以看作是构建循环神经网络的容器,只要将不同的循环神经网络的模型或者单元加入到RNN这个容器中即可。
在上述4种模型中,前面的3种都提供了直接的RNN实现以及相应的模型,堆叠模型只提供了模型。因此堆叠模型必须使用RNN+StackedRNNCells来实现堆叠循环神经网络。
本篇先介绍使用SimpleRNN和 RNN+SimpleRNNCell 2种方法来实现简单的循环神经网络。
- SimpleRNN
此种方法就是先建立Sequential 顺序模型,然后添加SimpleRNN即可。具体代码如下:
import tensorflow as tf
import numpy as np
from tensorflow import keras
import os
import matplotlib.pyplot as plt
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '1'
#读取本地mnist数据
def my_load_data(path='mnist.npz'):
origin_folder = 'https://storage.googleapis.com/tensorflow/tf-keras-datasets/'
path = tf.keras.utils.get_file(
path,
origin=origin_folder + 'mnist.npz',
cache_dir='DataSet/',
cache_subdir=""
)