Python使用NumPy构建三层神经网络详解

顾言
顾言
发布时间:2026-10-14| 6人浏览过
原创

本文通过Python和NumPy库演示三层神经网络(输入层、隐藏层、输出层)的前向传播实现。涵盖权重初始化、矩阵乘法、Sigmoid激活函数及恒等函数的使用,并提供完整的代码示例与分步解析,帮助读者理解神经网络基础架构。

三层神经网络概述

本文主要介绍如何使用Python结合NumPy库来实现一个三层神经网络的基本示例,供读者参考学习。


神经网络的实现原理相对直观,具备一定基础的用户即可掌握。其核心逻辑主要依赖于上述公式进行计算推导。


该神经网络的整体架构包含三层:输入层、隐藏层和输出层。接下来,我们将重点解析从输出层回溯至第一个隐藏层的计算过程。

本示例使用的开发环境为Jupyter Notebook。

输入层与隐藏层初始化


import numpy as np

#定义X,W1,B1
X = np.array([1.0, 0.5])
w1 = np.array([[0.1, 0.3, 0.5],[0.2, 0.4, 0.6]])
b1 = np.array([0.1, 0.2, 0.3])

#查看他们的形状
print(X.shape)
print(w1.shape)
print(b1.shape)

计算点积


#求点积
np.dot(X,w1)

应用Sigmoid激活函数


def sigmod(x):
    return 1/(1 + np.exp(-x))
Z1 = sigmod(A1)
Z1

第二层权重定义


#定义w2,b2
w2 = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])
b2 = np.array([0.1,0.2])

#查看他们的行状
print(w2.shape)
print(b2.shape)

第二层前向传播计算


A2 = np.dot(Z1,w2) + b2
A2

第二层激活输出


Z2 = sigmod(A2)
Z2

输出层与恒等函数


#定义恒等函数

def identity_function(x):
    return x

#定义w3,b3
w3 = np.array([[0.1,0.3],[0.2,0.4]])
b3 = np.array([0.1,0.2])

A3 = np.dot(Z2,w3) + b3
Y = identity_function(A3)
Y
    


将上述各个步骤的代码进行整合,形成完整的实现方案。

网络初始化与整合


#整理

#定义一个字典,将权重全部放入字典
def init_network():
    network = {}
    network['w1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]])
    network['w2'] = np.array([[0.1,0.4],[0.2,0.5],[0.3,0.6]])
    network['w3'] = np.array([[0.1,0.3],[0.2,0.4]])
    network['b1'] = np.array([0.1, 0.2, 0.3])
    network['b2'] = np.array([0.1,0.2])
    network['b3'] = np.array([0.1,0.2])
    return network

前向传播函数定义


#定义函数,导入权重与x,得到Y

def forward(network,x):
    w1,w2,w3 = network['w1'],network['w2'],network['w3']
    b1,b2,b3 = network['b1'],network['b2'],network['b3']
    
    A1 = np.dot(x,w1) + b1
    A2 = np.dot(A1,w2) + b2
    A3 = np.dot(A2,w3) + b3
    Y = identity_function(A3)
    Y

调用示例


#调用函数

network = init_network()
X = np.array([1.0,0.5])
Y = forward(network,X)

至此,关于利用Python和NumPy实现三层神经网络的示例代码介绍完毕。如需了解更多相关NumPy与神经网络的内容,建议查阅本站往期文章或继续浏览后续内容,感谢大家的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。