神经网络之前向传播,求图片的激活函数sigmoid

前向传播,求图片的激活函数sigmoid


手绘一张28x28像素点的数字9图片

对于这个28x28=784个像素的输入值,如果我们如图有2个隐藏层每层16个神经元,那么第1层每个神经元需要784个权重w,共784x16=12544个w,以及16个偏置b;第2层需要16x16=256个权重w和16个偏置b;第三层需要10x16=160个权重和10个偏置b;这些加在一起是:12544+256+160+16+16+10=13002

import cv2
import numpy as np

def sigmoid(inx):
    return 1.0 / (1 + np.exp(-inx))
img9 =  np.array(cv2.imread("9.png",0),dtype="float64")
#l0层(输入层)  (16,784) * (784,)
l0 = img9.reshape((-1,))
w0 = np.random.normal(0,1,(16,784))
b0 = np.random.normal(0,1,(16,))
l1 = w0.dot(l0) + b0
l1 = sigmoid(l1)
#l1层(隐藏层)  (16,16) * (16,)
w1 = np.random.normal(0,1,(16,16))
b1 = np.random.normal(0,1,(16,))
l2 = w1.dot(l1) + b1
l2 = sigmoid(l2)
#l2层(隐藏层) (10,16) * (16,)
w2 = np.random.normal(0,1,(10,16))
b2 = np.random.normal(0,1,(10,))
l3 = w2.dot(l2) + b2
#l3层(输出层)
l3 = sigmoid(l3) #激活函数
print(l3)
print(l3.shape)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值