神经网络中如何实现支持数组输入输出的ReLU激活函数
适配数组输入的ReLU自定义函数实现方案
你当前编写的ReLU函数仅支持单个标量输入,当传入2×1数组时,if x < 0 语句需要对整个数组做布尔判断,会触发数组真值不明确的报错,也无法输出预期的数组格式结果。
神经网络场景下通常会使用NumPy数组/深度学习框架张量存储数据,直接用向量化运算实现即可兼容任意维度的输入,输出和输入维度完全一致:
import numpy as np def relu(x): return np.maximum(0, x)
调用示例:
input_arr = np.array([[-2], [3]]) print(relu(input_arr)) # 输出为 [[0] [3]],完全符合2×1数组的预期格式
如果你的输入是原生Python嵌套列表格式的2×1数组,也可以用遍历实现:
def relu(x): return [[max(0, item[0])] for item in x]
如果是在PyTorch、TensorFlow等深度学习框架中使用,直接调用框架自带的ReLU接口即可,无需自行实现标量逻辑。
内容的提问来源于stack exchange,提问作者Regina Briseño
相关产品推荐
相关产品推荐

