RNN cell的实现
程序员文章站
2024-03-25 10:45:16
...
RNN cell的实现
flyfish
已编译通过
步骤
1 使用tanh**函数计算隐藏状态
2 使用新的隐藏状态 计算预测值,
已提供softmax函数
3 在cache中存储
4 返回
import numpy as np
def softmax(x):
e_x = np.exp(x - np.max(x))
return e_x / e_x.sum(axis=0)
def rnn_cell_forward(xt, a_prev, parameters):
# Retrieve parameters from "parameters"
#字符串与值的一种映射方法
Wax = parameters["Wax"]
Waa = parameters["Waa"]
Wya = parameters["Wya"]
ba = parameters["ba"]
by = parameters["by"]
#按照上面的公式写就行
# compute next activation state using the formula given above np.tanh
#使用上面的np.tanh公式计算下一个**状态
a_next = np.tanh(np.dot(Wax, xt) + np.dot(Waa, a_prev) + ba)
yt_pred = softmax(np.dot(Wya, a_next) + by)
# store values you need for backward propagation in cache
#cache在反向传播中会使用
cache = (a_next, a_prev, xt, parameters)
return a_next, yt_pred, cache
np.random.seed(1)
xt = np.random.randn(3,10)
a_prev = np.random.randn(5,10)
Waa = np.random.randn(5,5)
Wax = np.random.randn(5,3)
Wya = np.random.randn(2,5)
ba = np.random.randn(5,1)
by = np.random.randn(2,1)
parameters = {"Waa": Waa, "Wax": Wax, "Wya": Wya, "ba": ba, "by": by}
a_next, yt_pred, cache = rnn_cell_forward(xt, a_prev, parameters)
print("a_next = ", a_next)
print("a_next.shape = ", a_next.shape)
print("yt_pred[1] =", yt_pred[1])
print("yt_pred.shape = ", yt_pred.shape)
上一篇: 【PCL】平面拟合
推荐阅读
-
RNN cell的实现
-
pytorch RNN(构建多个相似结构的模型)
-
关于相同数据在RNN cell 和 RNN上运行结果不一致的分析
-
机器视觉实验一 图像增强的Matlab实现
-
Unity 基础 之 在 UGUI 上简单实现VideoPlayer视频播放的功能,简单暂停播放/显示视频名称/显示时长/拖拽播放等
-
关于Object-C 底层实现self isa 的理解 iOS
-
基于站点数据的图卷积神经网络的实现 pyotrch
-
关于Object-C 底层实现self isa 的理解 iOS
-
用 Pytorch 实现一个简单的图卷积神经网络
-
c++ 模板类+重载 模仿Karto SLAM karto的基础类实现