深度学习基础:使用NumPy初始化权重和偏置
使用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))
以下是代码的逐行解释:
-
np.random.seed(0): 这行代码设置了随机数生成器的种子。设置种子可以确保每次运行代码时生成相同的随机数序列,这对于调试和结果复现非常有用。 -
weights1 = 2 * np.random.random((2, 4)) - 1: 这行代码创建了一个2行4列的矩阵weights1,用于表示神经网络中第一层的权重。np.random.random((2, 4))生成一个2行4列的矩阵,其中每个元素都是0到1之间的随机数。然后,将矩阵乘以2并减去1,将元素的范围缩放到-1到1之间。 -
weights2 = 2 * np.random.random((4, 3)) - 1: 这行代码与上一行类似,创建了一个4行3列的矩阵weights2,表示神经网络中第二层的权重,元素范围同样在-1到1之间。 -
bias1 = np.zeros((1, 4)): 这行代码创建了一个1行4列的零矩阵bias1,用于表示神经网络中第一层的偏置。 -
bias2 = np.zeros((1, 3)): 这行代码与上一行类似,创建了一个1行3列的零矩阵bias2,表示神经网络中第二层的偏置。
通过以上步骤,我们使用NumPy成功初始化了神经网络的权重和偏置。需要注意的是,这仅仅是权重和偏置的一种初始化方法,还有其他更复杂的初始化策略可以根据具体问题进行选择。
原文地址: https://www.cveoy.top/t/topic/fM4w 著作权归作者所有。请勿转载和采集!