日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

吴恩达 深度学习 2021版 作业

發布時間:2023/12/31 pytorch 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 吴恩达 深度学习 2021版 作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

練習

  • 神經網絡與深度學習
    • 神經網絡基礎
      • Numpy基礎
        • 1-使用numpy構建基本函數

神經網絡與深度學習

神經網絡基礎

Numpy基礎

學習目標:

  • 使用numpy,包括函數調用及向量矩陣運算
  • 廣播
  • 向量化代碼

  • 1-使用numpy構建基本函數

    1.1- sigmoid function和np.exp()
    在使用np.exp()之前,你將使用math.exp()實現Sigmoid函數。然后,你將知道為什么np.exp()比math.exp()更可取。

    練習:構建一個返回實數x的sigmoid的函數。將math.exp(x)用于指數函數。

    提示:
    有時也稱
    為邏輯函數。它是一種非線性函數,即可用于機器學習(邏輯回歸),也能用于深度學習。

    要引用特定程序包的函數,可以使用package_name.function()對其進行調用。運行下面的代碼查看帶有math.exp()的示例。

    但是在深度學習中很少使用math庫,是因為在深度學習中更多的使用矩陣與向量,故numpy更加實用

    import math def basic_sigmoid(x):s = 1/(1 + math.exp(-x))return s basic_sigmoid(3)

    0.9525741268224334

    import numpy as np x = np.array([1,2,3]) print(1 / (1 + np.exp(-x)))

    [0.73105858 0.88079708 0.95257413]

    import numpy as np def sigmoid(x):s = 1/(1 + np.exp(-x))return s x = np.array([1,2,3]) sigmoid(x)

    array([0.73105858, 0.88079708, 0.95257413])

    1.2- Sigmoid gradient
    正如你在教程中所看到的,我們需要計算梯度來使用反向傳播優化損失函數。 讓我們開始編寫第一個梯度函數吧。

    練習:創建函數sigmoid_grad()計算sigmoid函數相對于其輸入x的梯度。 公式為:

    我們通常分兩步編寫此函數代碼:
    1.將s設為x的sigmoid。 你可能會發現sigmoid(x)函數很方便。
    2.計算

    def sigmoid_derivative(x):s = sigmoid(x)ds = s * (1 - s)return ds x = np.array([1,2,3]) sigmoid_derivative(x)

    array([0.19661193, 0.10499359, 0.04517666])

    1.3- 重塑數組
    深度學習中兩個常用的numpy函數是np.shape和np.reshape()。
    -X.shape用于獲取矩陣/向量X的shape(維度)。
    -X.reshape(…)用于將X重塑為其他尺寸。

    例如,在計算機科學中,圖像由shape為

    的3D數組表示。但是,當你讀取圖像作為算法的輸入時,會將其轉換為維度為
    的向量。換句話說,將3D陣列“展開”或重塑為1D向量
    練習:實現image2vector() ,該輸入采用維度為(length, height, 3)的輸入,并返回維度為(lengthheight3, 1)的向量。例如,如果你想將形為(a,b,c)的數組v重塑為維度為(a*b, 3)的向量,則可以執行以下操作:
    v = v.reshape((v.shape[0]*v.shape[1], v.shape[2]))
    #v.shape[0] = a ; v.shape[1] = b ; v.shape[2] = c

    def image2vector(image):v = image.reshape(image.shape[0] * image.shape[1] * image.shape[2], 1)return v image = np.array([[[ 0.67826139, 0.29380381],[ 0.90714982, 0.52835647],[ 0.4215251 , 0.45017551]],[[ 0.92814219, 0.96677647],[ 0.85304703, 0.52351845],[ 0.19981397, 0.27417313]],[[ 0.60659855, 0.00533165],[ 0.10820313, 0.49978937],[ 0.34144279, 0.94630077]]])print ("image2vector(image) = " + str(image2vector(image)))

    image2vector(image) = [[0.67826139]
    [0.29380381]
    [0.90714982]
    [0.52835647]
    [0.4215251 ]
    [0.45017551]
    [0.92814219]
    [0.96677647]
    [0.85304703]
    [0.52351845]
    [0.19981397]
    [0.27417313]
    [0.60659855]
    [0.00533165]
    [0.10820313]
    [0.49978937]
    [0.34144279]
    [0.94630077]]

    1.4- 行標準化
    我們在機器學習和深度學習中使用的另一種常見技術是對數據進行標準化。 由于歸一化后梯度下降的收斂速度更快,通常會表現出更好的效果。 通過歸一化,也就是將x更改為(將x的每個行向量除以其范數)。(化為單位向量)

    練習: 執行 normalizeRows()來標準化矩陣的行。 將此函數應用于輸入矩陣x之后,x的每一行應為單位長度(即長度為1)向量。

    def normalizeRows(x):x_norm = np.linalg.norm(x, axis = 1, keepdims = True)x = x / x_normreturn x x = np.array([[0, 3, 4],[10, 12, 13]]) print("normalizeRows(x) = " + str(normalizeRows(x)))

    normalizeRows(x) = [[0. 0.6 0.8 ]
    [0.49206783 0.5904814 0.63968818]]

    行標準化: x_norm = np.linalg.norm(x, axis = 1, keepdims = True)
    x = x / x_norm

    1.5- 廣播和softmax函數
    練習: 使用numpy實現softmax函數。 你可以將softmax理解為算法需要對兩個或多個類進行分類時使用的標準化函數。 你將在本專業的第二門課中了解有關softmax的更多信息。
    操作指南:

    #首先算出每行元素之和(得n行1列矩陣),再將原矩陣與該矩陣相除 def softmax(x):xExp = np.exp(x)xSum = np.sum(xExp, axis = 1, keepdims = True)s = xExp / xSumreturn s x = np.array([[9, 2, 5, 0, 0],[7, 5, 0, 0 ,0]]) print("softmax(x) = " + str(softmax(x)))

    總結:

  • -np.exp(x)適用于任何np.array x并將指數函數應用于每個坐標
  • sigmoid函數及其梯度
  • image2vector通常用于深度學習
  • np.reshape被廣泛使用。 保持矩陣/向量尺寸不變有助于我們消除許多錯誤。
  • numpy具有高效的內置功能
  • broadcasting非常有用

  • 2-向量化
    2.1實現L1和L2損失函數
    練習: 實現L1損失函數的Numpy向量化版本。 我們會發現函數abs(x)(x的絕對值)很有用

    提示:
    -損失函數用于評估模型的性能。 損失越大,預測(
    ) 與真實值()的差異也就越大。 在深度學習中,我們使用諸如Gradient Descent之類的優化算法來訓練模型并最大程度地降低成本。
    -L1損失函數定義為

    總結

    以上是生活随笔為你收集整理的吴恩达 深度学习 2021版 作业的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。