神经网络权重和偏置初始化: 示例讲解
神经网络权重和偏置初始化: 示例讲解
在构建神经网络时,正确的权重和偏置初始化至关重要。本文将以一个简单的例子,教你如何使用NumPy初始化一个2输入3输出的神经网络的权重和偏置。
import numpy as np
# 设置随机种子以保证结果可复现
np.random.seed(0)
# 初始化第一层权重和偏置 (2输入4隐藏单元)
weights1 = 2 * np.random.random((2, 4)) - 1
bias1 = np.zeros((1, 4))
# 初始化第二层权重和偏置 (4隐藏单元3输出)
weights2 = 2 * np.random.random((4, 3)) - 1
bias2 = np.zeros((1, 3))
代码解释:
np.random.seed(0): 设置随机种子,确保每次运行代码时生成相同的随机数,便于调试和比较结果。weights1 = 2 * np.random.random((2, 4)) - 1: 初始化第一层的权重矩阵。np.random.random((2, 4))生成一个2行4列的矩阵,元素值为0到1之间的随机数。2 * ... - 1将随机数范围缩放至-1到1之间,避免神经元饱和,加快训练速度。
bias1 = np.zeros((1, 4)): 初始化第一层的偏置向量,初始值为0。weights2和bias2: 使用相同的方法初始化第二层的权重和偏置。
总结:
本例展示了如何使用NumPy初始化一个简单神经网络的权重和偏置。请注意,这只是一个简单的示例,实际应用中可能需要根据具体问题和网络结构选择更复杂的初始化方法。
原文地址: https://www.cveoy.top/t/topic/fM1i 著作权归作者所有。请勿转载和采集!