python - 调用函数时Python中的值错误
问题描述
我收到以下代码的值错误:
def ReLu(x):
if x>0:
return x
else:
return 0
当我使用矩阵调用函数时发生错误
x = np.random.randn(4,4)
z = ReLu(x)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
解决方案
看起来您正在尝试在矩阵上执行 ReLu 函数,IIRC 将采用零下值并将它们“向上移动”到 0,并且将保持正值不变。
正如其他人所建议的那样,您出错的地方是您缺少一些关于 numpy api 如何运行的基本原则。
我相信,修正后的 RELU 函数是:
def ReLu(x):
x[x < 0] = 0
为什么?你在这里做的是三重的。第一个解析的表达式x < 0
返回另一个相同形状的 numpy 数组,除了数组元素小于零的“真”值和其他地方的“假”值。
表达式的下一个解决部分是选择 numpy 数组的“视图”。这基本上意味着“给我那些与我们之前定义的真实值匹配的数组元素”。
最后一步是为这些值分配您想要的值,即 0。
希望这会有所帮助!
推荐阅读
- react-native - 在 react native 的渲染块中使用 if else 语句
- windows - 如何使双击 ps1 文件打开 powershell?
- python - 高效存储安卓传感器数据,手机10秒后停止响应
- android - RecyclerView 跳过布局
- python - 存储嵌套 forloop 输出的建议?
- javascript - 是否可以创建一个仅影响其所在 div 的按钮,而其他 div 中的按钮使用相同的脚本代码?
- angular - “typeof Blockly”类型上不存在属性“JavaScript”
- regex - 在 RegEx 中的最后一个斜杠之后获取值并忽略类别 slug
- php - 从 woocommerce 产品 url 获取页面参数
- java - 如何将我的变量保持为私有并仍然获得所需的输出?