簡體   English   中英

如何讓 numpy.exp 與數組和標量一起使用?

[英]How to get numpy.exp to work with an array as well as a scalar?

我正在做一項要求我用 Python 編寫 sigmoid 函數的作業。 我對此很陌生,所以我有點了解 Sigmoid 函數的工作原理。

S形函數

分配要求我對其進行編碼,以便無論 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM