《python深度学习》学习笔记与代码实现(第六章,6.2理解循环神经网络)

《python深度学习》第六章

6.2 理解循环神经网络

首先,用numpy自己写一个简单的神经网络来认识神经网络

import numpy as np 
 
    
timesteps = 10
input_features = 32
output_features = 64

# 输入数据,随机噪声,仅作示例
inputs = np.random.random((timesteps,input_features))

# 输出数据,初始状态,全零向量
state_t = np.zeros((output_features,))   

# 创建随机的权重矩阵
W = np.random.random((output_features,input_features))
U = np.random.random((output_features,output_features))
b = np.random.random((output_features,))

successive_outputs = []

for input_t in inputs:
    output_t = np.tanh(np.dot(W,input_t) + np.dot(U,state_t) + b)
    successive_outputs.append(output_t)
#     更新网络的状态,用于下一个时间步
    state_t = output_t
    
final_output_sequence = np.stack(successive_outputs,axis = 0)

# print(final_output_sequence)

简单理解:本层的输入,与上一层的输出有关,还有之前的状态有关

6.2.1 keras中的循环层

# 6.2.1 keras中的循环层

from keras.layers import SimpleRNN
# SimpleRNN 不仅可以处理单个输入,也可以处理批量输入
# SimpleRNN 的输出有两种模式,一种是输出每一步的结果,一种是只输出最终结果,

from keras.models import Sequential
from keras.layers import Embedding,SimpleRNN
model = Sequential()
# 举一个例子,,只输出最终结果
model.add(Embedding(10000,32))
model.add(SimpleRNN(32))
model.summary()
Layer (type)                 Output Shape              Param #   
=================================================================
embedding_1 (Embedding)      (None, None, 32)          320000    
_________________________________________________________________
simple_rnn_1 (SimpleRNN)     (None, 32)                2080      
=================================================================
Total params: 322,080
Trainable params: 322,080
Non-trainable params: 0
_________________________________________________________________
# 举一个例子,输出每一步的结果
model = Sequential()
model
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值