<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 如何在 Python 中使用 Keras 進行深度學習的度量 > 原文: [https://machinelearningmastery.com/custom-metrics-deep-learning-keras-python/](https://machinelearningmastery.com/custom-metrics-deep-learning-keras-python/) Keras 庫提供了一種在訓練深度學習模型時的計算方法和報告一系列標準指標的方法。 除了為分類和回歸問題提供標準指標外,Keras 還允許您在訓練深度學習模型時定義和報告您自己的自定義指標。當您想要在訓練期間更好地獲取模型函數的表現度量時,這將特別有用。 在本教程中,您將了解如何使用內置指標以及如何在 Keras 中訓練深度學習模型時定義和使用您自己的指標。 完成本教程后,您將了解: * Keras 指標的工作原理以及在訓練模型時如何使用它們。 * 通過實例了解如何使用 Keras 中的回歸和分類指標。 * 通過實例如何在 Keras 中定義和使用您自己的自定義指標。 讓我們開始吧。 ![Metrics and How to Use Custom Metrics for Deep Learning with Keras in Python](https://img.kancloud.cn/d1/71/d17101104ce9a2e9ad2d73d0b73abb05_640x425.png) 度量標準以及如何在 Python 中使用 Keras 進行深度學習的自定義度量標準 [Indi Samarajiva](https://www.flickr.com/photos/indi/6901400708/) 的照片,保留一些權利。 ## 教程概述 本教程分為 4 個部分;他們是: 1. Keras 指標 2. Keras 回歸指標 3. Keras 分類指標 4. Keras 的自定義指標 ## Keras 指標 Keras 允許您列出在模型訓練期間要監控的指標。 您可以通過指定“ _metrics_ ”參數并為模型上的 _compile()_ 函數提供函數名稱列表(或函數名稱別名)來完成此操作。 例如: ```py model.compile(..., metrics=['mse']) ``` 您列出的特定指標可以是 Keras 函數的名稱(如 _mean_squared_error_ )或這些函數的字符串別名(如' _mse_ ')。 度量值記錄在訓練數據集的每個迭代的末尾。如果還提供了驗證數據集,則還會記錄為驗證數據集計算的度量指標。 所有度量都以詳細輸出和從調用 _fit()_ 函數返回的歷史對象中報告。在這兩種情況下,度量函數的名稱都用作度量值的鍵。對于驗證數據集的度量標準,將“ _val__ ”前綴添加到密鑰。 損失函數和明確定義的 Keras 指標都可用作訓練指標。 ## Keras 回歸指標 以下是您可以在 Keras 中用于回歸問題的指標列表。 * **均方差**:mean_squared_error,MSE 或 mse * **平均絕對誤差**:mean_absolute_error,MAE,mae * **均勻絕對百分比誤差**:mean_absolute_percentage_error,MAPE,mape * **余弦近似** :cosine_proximity,cosine 下面的示例演示了一個簡單的人為回歸問題中的 4 個內置回歸指標。 ```py from numpy import array from keras.models import Sequential from keras.layers import Dense from matplotlib import pyplot # prepare sequence X = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) # create model model = Sequential() model.add(Dense(2, input_dim=1)) model.add(Dense(1)) model.compile(loss='mse', optimizer='adam', metrics=['mse', 'mae', 'mape', 'cosine']) # train model history = model.fit(X, X, epochs=500, batch_size=len(X), verbose=2) # plot metrics pyplot.plot(history.history['mean_squared_error']) pyplot.plot(history.history['mean_absolute_error']) pyplot.plot(history.history['mean_absolute_percentage_error']) pyplot.plot(history.history['cosine_proximity']) pyplot.show() ``` 運行該示例將在每次迭代結束后打印度量標準值。 ```py ... Epoch 96/100 0s - loss: 1.0596e-04 - mean_squared_error: 1.0596e-04 - mean_absolute_error: 0.0088 - mean_absolute_percentage_error: 3.5611 - cosine_proximity: -1.0000e+00 Epoch 97/100 0s - loss: 1.0354e-04 - mean_squared_error: 1.0354e-04 - mean_absolute_error: 0.0087 - mean_absolute_percentage_error: 3.5178 - cosine_proximity: -1.0000e+00 Epoch 98/100 0s - loss: 1.0116e-04 - mean_squared_error: 1.0116e-04 - mean_absolute_error: 0.0086 - mean_absolute_percentage_error: 3.4738 - cosine_proximity: -1.0000e+00 Epoch 99/100 0s - loss: 9.8820e-05 - mean_squared_error: 9.8820e-05 - mean_absolute_error: 0.0085 - mean_absolute_percentage_error: 3.4294 - cosine_proximity: -1.0000e+00 Epoch 100/100 0s - loss: 9.6515e-05 - mean_squared_error: 9.6515e-05 - mean_absolute_error: 0.0084 - mean_absolute_percentage_error: 3.3847 - cosine_proximity: -1.0000e+00 ``` 然后創建訓練時期上的 4 個度量的線圖。 ![Line Plot of Built-in Keras Metrics for Regression](https://img.kancloud.cn/39/0e/390ebfc142ec2e34ab156619284ff19b_640x480.png) 用于回歸的內置 Keras 度量的線圖 注意,使用字符串別名值指定度量[' _mse_ ',' _mae_ ',' _mape_ ',' _cosine_ ' ]并使用其擴展函數名稱作為歷史對象上的鍵值引用。 我們還可以使用其擴展名稱指定指標,如下所示: ```py model.compile(loss='mse', optimizer='adam', metrics=['mean_squared_error', 'mean_absolute_error', 'mean_absolute_percentage_error', 'cosine_proximity']) ``` 如果將函數名稱導入腳本,我們也可以直接指定它們。 ```py from keras import metrics model.compile(loss='mse', optimizer='adam', metrics=[metrics.mean_squared_error, metrics.mean_absolute_error, metrics.mean_absolute_percentage_error, metrics.cosine_proximity]) ``` 您還可以將損失函數用作指標。 例如,您可以使用均方對數誤差( _mean_squared_logarithmic_error_ , _MSLE_ 或 _msle_ )損失函數作為度量,如下所示: ```py model.compile(loss='mse', optimizer='adam', metrics=['msle']) ``` ## Keras 分類指標 以下是您可以在 Keras 中用于分類問題的指標列表。 * **二進制準確度**:binary_accuracy,acc * **分類準確度**:categorical_accuracy,acc * **稀疏分類準確度**:sparse_categorical_accuracy * **前 k 個分類準確度**:top_k_categorical_accuracy(要求你指定一個 k 參數) * **稀疏頂部 k 分類精度**:sparse_top_k_categorical_accuracy(需要指定 k 參數) 準確度是具體的數值。 無論您的問題是二元分類還是多類分類問題,您都可以指定' _acc_ '指標來報告準確性。 下面是一個使用了內置的精度指標的二元分類問題的示例。 ```py from numpy import array from keras.models import Sequential from keras.layers import Dense from matplotlib import pyplot # prepare sequence X = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) y = array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1]) # create model model = Sequential() model.add(Dense(2, input_dim=1)) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['acc']) # train model history = model.fit(X, y, epochs=400, batch_size=len(X), verbose=2) # plot metrics pyplot.plot(history.history['acc']) pyplot.show() ``` 運行該示例,在每個訓練時期結束時輸出了準確率。 ```py ... Epoch 396/400 0s - loss: 0.5934 - acc: 0.9000 Epoch 397/400 0s - loss: 0.5932 - acc: 0.9000 Epoch 398/400 0s - loss: 0.5930 - acc: 0.9000 Epoch 399/400 0s - loss: 0.5927 - acc: 0.9000 Epoch 400/400 0s - loss: 0.5925 - acc: 0.9000 ``` 創建每次迭代結束后的精確度線圖。 ![Line Plot of Built-in Keras Metrics for Classification](https://img.kancloud.cn/5a/fd/5afd5b3eb3f3bc4d4ea53c28a70b685a_640x480.png) 用于分類的內置 Keras 度量的線圖 ## Keras 的自定義指標 您還可以定義自己的度量標準,并在調用 _compile()_ 函數時在“ _metrics_ ”參數的函數列表中指定函數名稱。 我經常想要跟蹤的度量是均方根誤差或 RMSE。 您可以通過檢查現有指標的代碼來了解如何編寫自定義指標。 例如,下面是 Keras 中 [mean_squared_error 損失函數和度量的代碼。](https://github.com/fchollet/keras/blob/master/keras/losses.py) ```py def mean_squared_error(y_true, y_pred): return K.mean(K.square(y_pred - y_true), axis=-1) ``` K 是 Keras 使用的后端。 該示例和損失函數和度量的其他示例中的方法是在后端使用標準數學函數來計算想要的度量。 例如,我們可以編寫自定義指標來計算 RMSE,如下所示: ```py from keras import backend def rmse(y_true, y_pred): return backend.sqrt(backend.mean(backend.square(y_pred - y_true), axis=-1)) ``` 您可以發現該函數與 MSE 的代碼相同,只是添加了 _sqrt()_ 包裝結果。 我們可以在我們的回歸示例中對此進行如下測試。請注意,我們只是直接列出函數名稱,而不是將其作為 Keras 要解析的字符串或別名提供。 ```py from numpy import array from keras.models import Sequential from keras.layers import Dense from matplotlib import pyplot from keras import backend def rmse(y_true, y_pred): return backend.sqrt(backend.mean(backend.square(y_pred - y_true), axis=-1)) # prepare sequence X = array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]) # create model model = Sequential() model.add(Dense(2, input_dim=1, activation='relu')) model.add(Dense(1)) model.compile(loss='mse', optimizer='adam', metrics=[rmse]) # train model history = model.fit(X, X, epochs=500, batch_size=len(X), verbose=2) # plot metrics pyplot.plot(history.history['rmse']) pyplot.show() ``` 運行該示例,在每個訓練時期結束后返回自定義 RMSE 度量指標。 ```py ... Epoch 496/500 0s - loss: 1.2992e-06 - rmse: 9.7909e-04 Epoch 497/500 0s - loss: 1.2681e-06 - rmse: 9.6731e-04 Epoch 498/500 0s - loss: 1.2377e-06 - rmse: 9.5562e-04 Epoch 499/500 0s - loss: 1.2079e-06 - rmse: 9.4403e-04 Epoch 500/500 0s - loss: 1.1788e-06 - rmse: 9.3261e-04 ``` 在運行結束時,將創建自定義 RMSE 度量標準的折線圖。 ![Line Plot of Custom RMSE Keras Metric for Regression](https://img.kancloud.cn/9a/09/9a094ccae05edb1b3580e852843a79cb_640x480.png) 用于回歸的自定義 RMSE Keras 度量的線圖 您的自定義度量函數必須在 Keras 內部數據結構上運行,根據所使用的后端可能會有所不同(例如使用 tensorflow 時 _tensorflow.python.framework.ops.Tensor_ )而不是直接使用 原始 yhat 和 y 值。 出于這個原因,我建議盡可能使用后端數學函數來保持一致性和執行速度。 ## 進一步閱讀 如果您要深入了解,本節將提供有關該主題的更多資源。 * [Keras 指標 API 文檔](https://keras.io/metrics/) * [Keras 指標源代碼](https://github.com/fchollet/keras/blob/master/keras/metrics.py) * [Keras 損失函數 API 文檔](https://keras.io/losses/) * [Keras 損失函數源代碼](https://github.com/fchollet/keras/blob/master/keras/losses.py) ## 總結 在本教程中,您了解了在訓練深度學習模型時如何使用 Keras 指標。 具體來說,你學到了: * Keras 指標的工作原理以及如何配置模型以在訓練期間報告指標。 * 如何使用 Keras 內置的分類和回歸指標。 * 如何在訓練深度學習模型的同時有效地定義和返回自己的自定義指標。 你有任何問題嗎? 在下面的評論中提出您的問題,我會盡力回答。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看