从零构建神经网络:权重矩阵初始化的随机数生成问题
解决神经网络权重初始化(-0.5到0.5范围)的问题
嘿,我完全懂你遇到的小麻烦!np.random.rand()确实只能生成0到1之间的浮点数,要得到你想要的以0为中心、范围在-0.5到0.5的权重矩阵,其实只需要简单的数学转换或者换个numpy函数就行,给你两种实用的方案:
方案一:基于
rand()的快速转换
既然rand()输出的是0-1的数,那我们直接给每个生成的数减去0.5,就能把数值范围平移到-0.5到0.5了,代码非常简洁:weights = np.random.rand(input_size, output_size) - 0.5方案二:用
uniform()直接指定范围
如果想要更直观的写法,推荐用np.random.uniform(),它允许你直接设置随机数的上下限,可读性更高:weights = np.random.uniform(low=-0.5, high=0.5, size=(input_size, output_size))
两种方法都能完美满足你“以0为中心随机取值”的需求,选哪个全看你个人习惯~
内容的提问来源于stack exchange,提问作者Howard Wang
相关产品推荐
相关产品推荐

