[英]How to get numpy.exp to work with an array as well as a scalar?
我正在做一項要求我用 Python 編寫 sigmoid 函數的作業。 我對此很陌生,所以我有點了解 Sigmoid 函數的工作原理。
分配要求我對其進行編碼,以便無論 z 是數組還是標量,該函數都可以工作。 我知道數組是什么,但我不知道標量是什么。 搜索它只產生了我不明白的數學術語。 作業還建議我使用numpy.exp
來解決問題。 無論如何,這就是我寫的,它顯然不起作用。 我不確定我的邏輯是否錯誤,或者僅僅是因為我沒有考慮標量與數組的問題。 任何人都可以幫助我了解那是什么或在哪里可以找到該信息?
這是代碼:
def sigmoid(z):
'''
Input:
z: is the input (can be a scalar or an array)
Output:
h: the sigmoid of z
'''
### START CODE HERE (REPLACE INSTANCES OF 'None' with your code) ###
# calculate the sigmoid of z
h = 1/1+np.exp(-z)
### END CODE HERE ###
return h
# Testing your function
if (sigmoid(0) == 0.5):
print('SUCCESS!')
else:
print('Oops!')
if (sigmoid(4.92) == 0.9927537604041685):
print('CORRECT!')
else:
print('Oops again!')
您必須用括號封裝分數的分母,如下所示:
h = 1/(1+np.exp(-z))
當您忘記括號時,您實際上是在評估 1 除以 1,然后添加 np.exp(0)。 這將導致您達到 2,這就是為什么您的總和與您的 0.5 目標不匹配。
標量是常規數字,與矩陣或數組相反。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.