Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python神经网络

作者:傲世,小狂徒   发布日期:2026-04-04   浏览:81

# Python神经网络示例代码

# 导入必要的库
import numpy as np

# 定义激活函数(Sigmoid)
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

# 定义Sigmoid函数的导数
def sigmoid_derivative(x):
    return x * (1 - x)

# 初始化权重和偏置
input_layer_neurons = 3  # 输入层神经元数量
hidden_layer_neurons = 3  # 隐藏层神经元数量
output_neurons = 1  # 输出层神经元数量

# 权重和偏置初始化
wh = np.random.uniform(size=(input_layer_neurons, hidden_layer_neurons))
bh = np.random.uniform(size=(1, hidden_layer_neurons))
wout = np.random.uniform(size=(hidden_layer_neurons, output_neurons))
bout = np.random.uniform(size=(1, output_neurons))

# 输入数据
X = np.array([[1, 0, 1], [1, 1, 1], [0, 1, 0], [1, 0, 1]])
y = np.array([[1], [1], [0], [1]])

# 超参数
learning_rate = 0.1
epochs = 10000

# 训练神经网络
for i in range(epochs):
    # 前向传播
    hidden_layer_input1 = np.dot(X, wh)
    hidden_layer_input = hidden_layer_input1 + bh
    hiddenlayer_activations = sigmoid(hidden_layer_input)

    output_layer_input1 = np.dot(hiddenlayer_activations, wout)
    output_layer_input = output_layer_input1 + bout
    output = sigmoid(output_layer_input)

    # 计算误差
    E = y - output

    # 反向传播
    slope_output_layer = sigmoid_derivative(output)
    slope_hidden_layer = sigmoid_derivative(hiddenlayer_activations)
    d_output = E * slope_output_layer
    Error_at_hidden_layer = d_output.dot(wout.T)
    d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer

    # 更新权重和偏置
    wout += hiddenlayer_activations.T.dot(d_output) * learning_rate
    bout += np.sum(d_output, axis=0, keepdims=True) * learning_rate
    wh += X.T.dot(d_hiddenlayer) * learning_rate
    bh += np.sum(d_hiddenlayer, axis=0, keepdims=True) * learning_rate

# 打印输出结果
print("最终输出值:")
print(output)

解释说明:

  1. 导入库:使用 numpy 进行矩阵运算。
  2. 定义激活函数:使用 Sigmoid 函数作为激活函数,并定义其导数用于反向传播。
  3. 初始化权重和偏置:随机初始化输入层到隐藏层、隐藏层到输出层的权重和偏置。
  4. 输入数据:定义训练数据 X 和标签 y
  5. 超参数设置:设定学习率和训练轮数。
  6. 前向传播:计算每一层的输出。
  7. 计算误差:计算预测值与真实值之间的误差。
  8. 反向传播:根据误差调整权重和偏置。
  9. 更新权重和偏置:通过梯度下降法更新权重和偏置。
  10. 打印输出结果:展示最终的预测结果。

这个简单的神经网络可以用来理解基本的前向传播和反向传播过程。

上一篇:python中sum函数的用法

下一篇:python dict 合并

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站