首先,我定义了一个relu函数并将其矢量化。
然后,我将一个任意列表输入到这个relu函数中,但是它返回错误的结果,因为relu( 1.5 )的值应该是1.5。
守则如下:
import numpy as np
def relu(x):
return x if x > 0 else 0
relu = np.vectorize(relu)
print(relu([-3,-1.5,0,1.5,3]))
# result: array([0, 0, 0, 1, 3])你能解释一下为什么会发生这种事吗?
发布于 2022-10-23 11:51:02
因为除非指定了输出类型,否则矢量图从第一个元素假定类型。使用
relu = np.vectorize(relu,otypes=[float])https://stackoverflow.com/questions/74170850
复制相似问题