使用NumPy初始化神经网络的权重和偏置

本教程将演示如何使用NumPy库初始化神经网络中的权重和偏置。

import numpy as np

# 设置随机数生成器的种子
np.random.seed(0)

# 初始化权重矩阵
weights1 = 2 * np.random.random((2, 4)) - 1
weights2 = 2 * np.random.random((4, 3)) - 1

# 初始化偏置向量
bias1 = np.zeros((1, 4))
bias2 = np.zeros((1, 3))

以下是代码的逐行解释:

  1. np.random.seed(0): 这行代码设置了随机数生成器的种子。设置种子可以确保每次运行代码时生成相同的随机数序列,这对于调试和结果复现非常有用。

  2. weights1 = 2 * np.random.random((2, 4)) - 1: 这行代码创建了一个2行4列的矩阵weights1,用于表示神经网络中第一层的权重。np.random.random((2, 4))生成一个2行4列的矩阵,其中每个元素都是0到1之间的随机数。然后,将矩阵乘以2并减去1,将元素的范围缩放到-1到1之间。

  3. weights2 = 2 * np.random.random((4, 3)) - 1: 这行代码与上一行类似,创建了一个4行3列的矩阵weights2,表示神经网络中第二层的权重,元素范围同样在-1到1之间。

  4. bias1 = np.zeros((1, 4)): 这行代码创建了一个1行4列的零矩阵bias1,用于表示神经网络中第一层的偏置。

  5. bias2 = np.zeros((1, 3)): 这行代码与上一行类似,创建了一个1行3列的零矩阵bias2,表示神经网络中第二层的偏置。

通过以上步骤,我们使用NumPy成功初始化了神经网络的权重和偏置。需要注意的是,这仅仅是权重和偏置的一种初始化方法,还有其他更复杂的初始化策略可以根据具体问题进行选择。

深度学习基础:使用NumPy初始化权重和偏置

原文地址: https://www.cveoy.top/t/topic/fM4w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录