【深度学习】神经网络前向传播简单实现

步骤

  1. 输入层的每个节点与隐藏层的每个节点做点对点计算,加权求和 + 激活函数
  2. 利用同样的方法,计算隐藏层到输出层
  3. 隐藏层对加权结合后的结果使用激活函数,本例使用Sigmoid
  4. 最终的输出值与样本值进行比较,计算出误差

网络结构

【深度学习】神经网络前向传播简单实现

代码实现

import numpy as np

def _sigmoid(in_data):
    return 1.0 / (1.0 + np.exp(-in_data))

def init_network():
    network = {}
    # 输入层到隐藏层的权重矩阵和bias
    network['W1'] = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]])
    network['b1'] = np.array([0.1, 0.2, 0.3])

    # 第一个隐藏层到第二个隐藏层的权重矩阵和bias
    network['W2'] = np.array([[0.1, 0.4], [0.2, 0.5], [0.3, 0.6]])
    network['b2'] = np.array([0.1, 0.2])

    # 第二个隐藏层到输出层的权重矩阵和bias
    network['W3'] = np.array([[0.1, 0.3], [0.2, 0.4]])
    network['b3'] = np.array([0.1, 0.2])

    return network

def forward(network, x):
    # x是输入
    # network是初始化后的模型,已定义好权重矩阵和bias

    # 提取模型初始化的权重、bias对象
    w1, w2, w3 = network['W1'], network['W2'], network['W3']
    b1, b2, b3 = network['b1'], network['b2'], network['b3']

    # 前向传播

    # 输入层到第一个隐藏层
    # 输入:x,输出:z1
    a1 = x.dot(w1) + b1  # 加权求和
    z1 = _sigmoid(a1)  # 激活,得到输出z1,作为进入下一层的输入

    # 第一个隐藏层到第二个隐藏层
    # 输入:z1,输出z2
    a2 = z1.dot(w2) + b2  # 加权求和
    z2 = _sigmoid(a2)  # 激活,得到输出z2,作为进入下一层的输入

    # 第二个隐藏层到输出层
    a3 = z2.dot(w3) + b3  # 加权求和,得到输出a3

    y = a3
    return y

if __name__ == '__main__':
    # 初始化网络
    network = init_network()
    # 输入
    x = np.array([1.0, 0.5])
    # 前向传播
    y = forward(network, x)
    # 打印输出
    print(y)

Original: https://www.cnblogs.com/seansheep/p/15896608.html
Author: 在青青草原上抓羊
Title: 【深度学习】神经网络前向传播简单实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608999/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • oracle ORA-31655

    原因:是因为不是同一个schema,导致的问题产生 解决方案: 在导入语句最后添加上remap_schema=old:new 着old是原schema,也就是导出的用户名,new是…

    Linux 2023年6月8日
    084
  • shell脚本

    一、shell脚本基本介绍 格式要求 脚本要以 #!/bin/bash 开头,debain需要改成#!/bin/dash 脚本需要有可执行权限 shell常用执行方式 输入脚本的绝…

    Linux 2023年6月6日
    090
  • Docker 打包部署web项目 [Dockerfile方式]

    系统环境 IDE: IDEA 2020.2 Linux: WSL2 Ubuntu 20.04 Docker: 20.10.8 参考资料 博客园: Dockerfile常用指令介绍 …

    Linux 2023年6月14日
    0103
  • Linux命令(实时更新)

    本博客主要总结一下博主工作中比较常用的命令: 1.iconv命令 对于给定文件把它的内容从一种编码转换成另一种编码。 -f encoding : 把字符从encoding编码开始转…

    Linux 2023年6月6日
    087
  • 【Linux】指令学习

    Linux学习记录 😄生命不息,写作不止🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,欢迎指正,大家一起学习成长! 1、虚拟机网卡配置 服务器重启完成之后,我们可以通过linu…

    Linux 2023年6月6日
    0122
  • 操作系统实战45讲- 02 几行汇编几行C:实现一个最简单的内核

    本节源代码位置https://gitee.com/lmos/cosmos/tree/master/lesson02/HelloOS Hello OS 之前,我们先要搞清楚 Hell…

    Linux 2023年6月7日
    092
  • CMU15-445 数据库导论 Storage02 其他存储方式

    CMU15-445 数据库导论 Storage02 其他存储方式 1. 参考资料: [1] CMU15-445:Database Systems [Andy Pavlo] http…

    Linux 2023年6月6日
    0113
  • python 练习题:接收一个或多个数并计算乘积

    以下函数允许计算两个数的乘积,请稍加改造,变成可接收一个或多个数并计算乘积 def product(x, y): return x * y python;gutter:true; …

    Linux 2023年6月8日
    095
  • 【Leetcode】64. 最小路径和

    给定一个包含非负整数的 m x n网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动…

    Linux 2023年6月6日
    0100
  • cobbler

    cobbler cobbler cobbler简介 cobbler工作原理 cobbler的作用 cobbler服务端部署 cobbler简介 Cobbler是一个Linux服务器…

    Linux 2023年6月6日
    096
  • 带你了解我们的“彩虹运维技术栈社区”

    关于我们 彩虹象征着美好、童话、幻想,所要追求的成功,必历经挫折之后才能达到目标。我们每个人都需经历学习的枯燥、工作和生活的辛苦,不经历风雨又怎能见彩虹? TTR,全称Taste …

    Linux 2023年6月7日
    088
  • linux命令之tar 解压 压缩

    tar(全称:tape archive )命令用于备份文件。tar 是用来 创建或者 还原备份文件的工具程序,它可以加入,解开备份文件内的文件。tar linux说明 tar [&…

    Linux 2023年5月27日
    080
  • [云原生]Kubernetes-集群搭建(第2章)

    一、前置知识点 二、kubeadm部署方式介绍 三、安装要求 四、最终目标 五、准备环境 六、环境初始化 6.1 设置系统主机名以及Hosts文件的相互解析 6.2 安装依赖文件(…

    Linux 2023年6月13日
    076
  • shell: 获取每行文本的最后几个字符

    tail方式 tail参数-c就可以获取最后的几个字节 -c, –bytes=[+]NUM output the last NUM bytes; or use -c +NUM t…

    Linux 2023年6月7日
    0115
  • AI场景存储优化:云知声超算平台基于 JuiceFS 的存储实践

    云知声是一家专注于语音及语言处理的技术公司。 Atlas 超级计算平台是云知声的计算底层基础架构,为云知声在 AI 各个领域(如语音、自然语言处理、视觉等)的模型迭代提供训练加速等…

    Linux 2023年6月14日
    094
  • IDEA 构建 mybatis 源码

    mybatis 源码构建 mybatis-source 下载 mybatis源码下载 mybatis-parent 版本信息 mybatis-parent 下载 mybatis-p…

    Linux 2023年6月13日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球