首页 > Python资料 博客日记
Python中NumPy库提供的函数——np.random.randn的基本用法
2024-03-25 13:00:04Python资料围观31次
一、基本用法
np.random.randn
是NumPy中用于生成服从标准正态分布(均值为0,标准差为1)的随机数的函数。它生成的随机数遵循标准正态分布,也称为高斯分布。
以下是使用np.random.randn
生成随机数的示例:
import numpy as np
# 生成一个随机数,服从标准正态分布
random_number = np.random.randn()
print(random_number)
# 生成一个包含多个随机数的 NumPy 数组
random_array = np.random.randn(3, 4) # 生成一个 3x4 的数组,包含随机数
print(random_array)
运行结果:
np.random.normal
。
请注意,生成的随机数是伪随机数,它们是通过确定性算法生成的,但通常在实际应用中足够随机。要使随机数生成具有确定性,可以设置随机种子,使用函数,此用于np.random.seed
实验的可重复性非常重要。
二、举例神经网络初始化过程中用到一些代码
class TwoLayerNet:
def __init__(self, input_size, hidden_size, output_size, weight_init_std=0.01):
# 初始化权重
self.params = {}
self.params['W1'] = weight_init_std * np.random.randn(input_size, hidden_size)
self.params['b1'] = np.zeros(hidden_size)
self.params['W2'] = weight_init_std * np.random.randn(hidden_size, output_size)
self.params['b2'] = np.zeros(output_size)
(1)、代码的作用解释
1、self.params = {}
:初始化一个名为 的空字典params
。该字典将用于存储神经网络的参数,包括权重和偏差。
2、self.params['W1']
:将第一层(隐藏层的输入)的权重矩阵初始化为'W1'
。该权重矩阵的大小由input_size
(输入特征的数量)和hidden_size
(隐藏层中的神经元或单元的数量)决定。权重使用从均值 0 和标准差 的高斯(正态)分布中抽取的随机值进行初始化weight_init_std
。
3、self.params['b1']
:将第一层(隐藏层的输入)的偏置向量初始化为'b1'
。该偏置向量的大小由 确定hidden_size
,并且用全零进行初始化。
4、self.params['W2']
:将第二层(隐藏到输出)的权重矩阵初始化为'W2'
。hidden_size
该权重矩阵的大小由(隐藏层中的神经元数量)和output_size
(输出层中的神经元或单元数量)决定。与“W1”类似,权重是使用从均值为 0 和标准差 的高斯分布中抽取的随机值来初始化的weight_init_std
。
5、self.params['b2']
:将第二层(隐藏到输出)的偏置向量初始化为'b2'
。该偏置向量的大小由 确定output_size
,并且用全零进行初始化。
(2)、weight_init_std的解释
weight_init_std
参数控制初始权重的范围。根据具体的神经网络实现,您可能会在训练期间看到对这些参数执行的进一步操作,例如用于学习的前向和后向传播。
weight_init_std
,该值设置为 0.01。该值表示使用从高斯(正态)分布中抽取的随机值初始化神经网络层的权重时使用的标准偏差。
当weight_init_std
设置为0.01时,表示神经网络的初始权重取自均值为0、标准差为0.01的高斯分布。该值是神经网络中权重初始化的常见选择,并且在处理小规模数据集或深度网络时经常使用。较小的值会weight_init_std
导致较小的初始权重,这有助于稳定训练过程并防止梯度在反向传播期间变得太大。
总体而言选择weight_init_std
可能会影响神经网络从数据中学习的效率以及训练期间收敛的速度。不同的值可能更适合不同的任务和架构,因此它通常是一个可以在神经网络模型开发过程中调整的超参数。
标签:
相关文章
最新发布
- Python淘宝书籍图书销售数据爬虫可视化分析大屏全屏系统 开题报告
- Python中NumPy库提供的函数——np.random.randn的基本用法
- 从静态到动态化,Python数据可视化中的Matplotlib和Seaborn
- 爬虫实战+数据分析:全国消费支出分析及未来预测
- aardio封装库) sunny抓包工具的使用
- Python广东广州二手房源爬虫数据可视化分析大屏全屏系统 开题报告
- AttributeError: ‘DataFrame‘ object has no attribute ‘iteritems‘解决方案【Bug已解决-Python】
- Microsoft SQL Server 编写汉字转拼音函数
- 用python复制粘贴excel指定单元格(可保留格式)
- 【头歌-Python】Python第一章作业(初级)
点击排行
- PyPy JIT编译器背后的奥秘(揭开PyPy高性能Python的编译优化技术)
- Python数字ceil()方法
- PyCharm:提升Python开发效率的强大IDE工具
- Numba:无缝将Python代码编译为机器代码的利器(让你的Python程序跑的飞快!Numba高效编译的6大技巧)
- 彻底理解Global Interpreter Lock,解锁Python多线程编程(为什么Python多线程速度这么慢)
- Ruff更新到v0.0.281(Rust 编写的高性能 Python 代码分析工具)
- 8月16日魔珐科技发布了三款超写实3D虚拟人产品掀起AIGC「新工业革命」
- PyPy与CPython扩展库的兼容性问题及优化方案 (揭秘PyPy如何与C扩展无缝衔接,5个兼容性要点让你易如反掌)