第十天,三层神经网络的代码实现以及输出层的设计

本文详细介绍了如何在三层神经网络中设计并实现Softmax输出层,重点讲解了Softmax函数确保输出值在0到1之间且总和为1的特性,这对于概率解释和分类任务至关重要。
摘要由CSDN通过智能技术生成
'''
 用数组来实现深度学习的神经网络的计算,分为输入层,隐藏层,和输出层,参与计算的 有每个神经元的权重,以及偏置,还有
 激活函数,也就是上面的 阶跃函数,sigmoid函数  relu函数 
 计算公式为   Y = XW + B 
'''

def sigmoid_fun(x):     # 激活函数
    return 1 /(1 + np.exp(-x))


X1_in = np.array([0.1,0.2])   #定义2个输入神经元

X2_in = np.array([0.5,0.6,0.7])  # 定义另一个输入神经元

W_1 = np.array([[0.5,0.7,0.9],[1.1,1.3,1.5]])  #定义两个输入神经元的权重

B_1 = np.array([0.7,0.8,0.9])  # 定义一个偏置,偏置的个数和一个输入神经元的权重的个数相等

Y_1 = np.dot(X1_in,W_1) + B_1    # 得出输出层神经元

# 接下来是使用激活函数激活输出神经元
Z_1 = sigmoid_fun(Y_1)

print(Z_1)

'''
以上是 第0层到第一层的神经网络实现方式,如果要实现3层神经网络,则可以使用函数的方式来实现。
理论上 输入层和权重可以有无数个,就像大脑神经一样,四通八达
'''

def  W_init_fun():     #定义一个权重和偏置的初始函数
    dic_init = {}       #定义一个 空的字典,用来保存 权重和偏置  
    dic_init['W1'] = np.array([[0.1,0.2,0.3],[0.4,0.5,0.6]])  
    # 定义一个2维数组作为输入层的权重,意味着输入参数至少要俩个参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值