You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用random.uniform()传low/size参数报TypeError解决方法

问题诱因

报错的核心原因是混淆了Python标准库random模块和NumPy库的随机数生成接口:

  • 你当前调用的random.uniform是Python标准库自带方法,函数签名为random.uniform(a, b),仅接收两个位置参数,返回[a,b]区间内的单个浮点数,既不支持low/high关键字传参,也没有size参数用来批量生成指定维度的随机数组,和你写的调用语法完全不匹配,所以会连续抛出参数不匹配的TypeError。
  • 你代码里用到的low、high、size传参规则,是NumPy库中numpy.random.uniform的接口定义,属于典型的导入来源错误。另外你代码中用到的dot(矩阵点乘)、exp(指数运算)也都是NumPy提供的数组运算函数,进一步说明你本来要调用的就是NumPy的随机接口。
修复方案

优先选择第一种方案,改动最小也适配你后续的神经网络计算逻辑:

  • 方案1:替换导入源为NumPy的随机模块,在代码开头补充正确的导入语句即可,原有初始化逻辑完全不需要改动:
# 替换原有random导入,同时导入后续计算需要的dot、exp
from numpy import random, dot, exp

# 原有业务代码无需修改即可正常运行
def apply_net(y_in):
  global w, b
  z=dot(w, y_in)+b
  return(1/(1+exp(-z)))

N0=2
N1=1 
w=random.uniform(low=-10,high=+10,size=(N1,N0))
b=random.uniform(low=-1,high=+1,size=N1)
  • 方案2:如果坚持使用Python标准库random,需要手动构造指定维度的随机数列表,但这种写法下后续的矩阵点乘、sigmoid计算都需要自行适配列表运算,开发成本很高,不推荐:
import random
# 手动构造维度匹配的权重、偏置
w = [[random.uniform(-10, 10) for _ in range(N0)] for _ in range(N1)]
b = [random.uniform(-1, 1) for _ in range(N1)]

内容的提问来源于stack exchange,提问作者ilovegilliananderson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:09:59