rnn神经网络模型代码
时间: 2023-07-22 22:19:13 浏览: 161
以下是一个简单的RNN神经网络模型的代码示例:
```python
import numpy as np
# 定义sigmoid激活函数
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 定义RNN神经网络模型
class RNN:
def __init__(self, input_size, output_size, hidden_size):
# 初始化权重矩阵
self.U = np.random.uniform(-np.sqrt(1./input_size), np.sqrt(1./input_size), (hidden_size, input_size))
self.W = np.random.uniform(-np.sqrt(1./hidden_size), np.sqrt(1./hidden_size), (hidden_size, hidden_size))
self.V = np.random.uniform(-np.sqrt(1./hidden_size), np.sqrt(1./hidden_size), (output_size, hidden_size))
def forward(self, x):
# 初始化状态向量
h = np.zeros((self.W.shape[0], 1))
# 初始化输出向量
y = np.zeros((self.V.shape[0], 1))
# 遍历时间步
for t in range(len(x)):
# 计算隐藏状态
h = np.tanh(np.dot(self.U, x[t]) + np.dot(self.W, h))
# 计算输出
y = np.dot(self.V, h)
return y
# 测试RNN模型
input_size = 3
output_size = 2
hidden_size = 4
x = [np.random.randn(input_size, 1) for _ in range(5)]
rnn = RNN(input_size, output_size, hidden_size)
y = rnn.forward(x)
print(y)
```
在这个例子中,我们通过初始化权重矩阵来构建RNN神经网络模型,并定义了一个sigmoid激活函数。在forward()函数中,我们遍历每个时间步,并计算隐藏状态和输出。最后,我们通过调用forward()函数来测试RNN模型。
阅读全文