手动实现gru网络结构
目标
通过使用numpy库手动实现PyTorch的GRU门控循环单元网络的计算过程。GRU是一种常用的循环神经网络(RNN)变种,主要用于处理时间序列数据。代码的核心目标是通过将PyTorch的网络权重提取出来,并用NumPy通过矩阵运算来复现GRU的计算过程。
以下是详细解释:
核心计算公式
r t = σ ( W i r x t + b i r + W h r h ( t − 1 ) + b h r ) z t = σ ( W i z x t + b i z + W h z h ( t − 1 ) + b h z ) n t = tanh ( W i n x t + b i n + r t ∗ ( W h n h ( t − 1 ) + b h n ) ) h t = ( 1 − z t ) ∗ n t + z t ∗ h ( t − 1 ) \begin{array}{ll} r_t = \sigma(W_{ir} x_t + b_{ir} + W_{hr} h_{(t-1)} + b_{hr}) \\ z_t = \sigma(W_{iz} x_t + b_{iz} + W_{hz} h_{(t-1)} + b_{hz}) \\ n_t = \tanh(W_{in} x_t + b_{in} + r_t * (W_{hn} h_{(t-1)}+ b_{hn})) \\ h_t = (1 - z_t) * n_t + z_t * h_{(t-1)} \end{array} rt=σ(Wirxt+bir+Whrh(t−1)+bhr)zt=σ(Wizxt+biz+Whzh(t−1)+bhz)nt=

最低0.47元/天 解锁文章
193

被折叠的 条评论
为什么被折叠?



