最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

keras自定義損失函數并且模型加載的寫法介紹

 更新時間:2020年06月15日 08:38:37   作者:Briwisdom  
這篇文章主要介紹了keras自定義損失函數并且模型加載的寫法介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

keras自定義函數時候,正常在模型里自己寫好自定義的函數,然后在模型編譯的那行代碼里寫上接口即可。如下所示,focal_loss和fbeta_score是我們自己定義的兩個函數,在model.compile加入它們,metrics里‘accuracy'是keras自帶的度量函數。

def focal_loss():
 ...
 return xx
def fbeta_score():
 ...
 return yy
model.compile(optimizer=Adam(lr=0.0001), loss=[focal_loss],metrics=['accuracy',fbeta_score] )

訓練好之后,模型加載也需要再額外加一行,通過load_model里的custom_objects將我們定義的兩個函數以字典的形式加入就能正常加載模型啦。

weight_path = './weights.h5'
model = load_model(weight_path,custom_objects={'focal_loss': focal_loss,'fbeta_score':fbeta_score})

補充知識:keras如何使用自定義的loss及評價函數進行訓練及預測

1.有時候訓練模型,現(xiàn)有的損失及評估函數并不足以科學的訓練評估模型,這時候就需要自定義一些損失評估函數,比如focal loss損失函數及dice評價函數 for unet的訓練。

2.在訓練建模中導入自定義loss及評估函數。

#模型編譯時加入自定義loss及評估函數
model.compile(optimizer = Adam(lr=1e-4), loss=[binary_focal_loss()],
    metrics=['accuracy',dice_coef])

#自定義loss及評估函數
def binary_focal_loss(gamma=2, alpha=0.25):
 """
 Binary form of focal loss.
 適用于二分類問題的focal loss
 focal_loss(p_t) = -alpha_t * (1 - p_t)**gamma * log(p_t)
  where p = sigmoid(x), p_t = p or 1 - p depending on if the label is 1 or 0, respectively.
 References:
  https://arxiv.org/pdf/1708.02002.pdf
 Usage:
  model.compile(loss=[binary_focal_loss(alpha=.25, gamma=2)], metrics=["accuracy"], optimizer=adam)
 """
 alpha = tf.constant(alpha, dtype=tf.float32)
 gamma = tf.constant(gamma, dtype=tf.float32)

 def binary_focal_loss_fixed(y_true, y_pred):
  """
  y_true shape need be (None,1)
  y_pred need be compute after sigmoid
  """
  y_true = tf.cast(y_true, tf.float32)
  alpha_t = y_true * alpha + (K.ones_like(y_true) - y_true) * (1 - alpha)

  p_t = y_true * y_pred + (K.ones_like(y_true) - y_true) * (K.ones_like(y_true) - y_pred) + K.epsilon()
  focal_loss = - alpha_t * K.pow((K.ones_like(y_true) - p_t), gamma) * K.log(p_t)
  return K.mean(focal_loss)

 return binary_focal_loss_fixed

#'''
#smooth 參數防止分母為0
def dice_coef(y_true, y_pred, smooth=1):
 intersection = K.sum(y_true * y_pred, axis=[1,2,3])
 union = K.sum(y_true, axis=[1,2,3]) + K.sum(y_pred, axis=[1,2,3])
 return K.mean( (2. * intersection + smooth) / (union + smooth), axis=0)

注意在模型保存時,記錄的loss函數名稱:你猜是哪個

a:binary_focal_loss()

b:binary_focal_loss_fixed

3.模型預測時,也要加載自定義loss及評估函數,不然會報錯。

該告訴上面的答案了,保存在模型中l(wèi)oss的名稱為:binary_focal_loss_fixed,在模型預測時,定義custom_objects字典,key一定要與保存在模型中的名稱一致,不然會找不到loss function。所以自定義函數時,盡量避免使用我這種函數嵌套的方式,免得帶來一些意想不到的煩惱。

model = load_model('./unet_' + label + '_20.h5',custom_objects={'binary_focal_loss_fixed': binary_focal_loss(),'dice_coef': dice_coef})

以上這篇keras自定義損失函數并且模型加載的寫法介紹就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • pytorch中的自定義數據處理詳解

    pytorch中的自定義數據處理詳解

    今天小編就為大家分享一篇pytorch中的自定義數據處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python實現(xiàn)斐波那契數列的示例代碼

    Python實現(xiàn)斐波那契數列的示例代碼

    斐波那契數列是一種經典的數學問題,在計算機科學和編程中經常被用來演示算法和遞歸的概念,本文將詳細介紹斐波那契數列的定義、計算方法以及如何在Python中實現(xiàn)它,需要的可以參考下
    2024-01-01
  • python3實現(xiàn)單目標粒子群算法

    python3實現(xiàn)單目標粒子群算法

    這篇文章主要為大家詳細介紹了python3實現(xiàn)單目標粒子群算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python中DataFrame判斷兩列數據是否相等的方法

    Python中DataFrame判斷兩列數據是否相等的方法

    本文主要介紹了DataFrame判斷兩列數據是否相等的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • 在Python IDLE 下調用anaconda中的庫教程

    在Python IDLE 下調用anaconda中的庫教程

    這篇文章主要介紹了在Python IDLE 下調用anaconda中的庫教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python中利用Future對象異步返回結果示例代碼

    python中利用Future對象異步返回結果示例代碼

    future是一種對象,表示異步執(zhí)行的操作。下面這篇文章主要給大家介紹了關于python中利用Future對象異步返回結果的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • python中numpy基礎學習及進行數組和矢量計算

    python中numpy基礎學習及進行數組和矢量計算

    這篇文章主要給大家介紹了python中numpy基礎知識,以及進行數組和矢量計算的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-02-02
  • Python 創(chuàng)建子進程模塊subprocess詳解

    Python 創(chuàng)建子進程模塊subprocess詳解

    這篇文章主要介紹了Python 創(chuàng)建子進程模塊subprocess詳解,本文詳細講解了subprocess模塊的方法、參數、使用實例等,需要的朋友可以參考下
    2015-04-04
  • python?用matplotlib繪制折線圖詳情

    python?用matplotlib繪制折線圖詳情

    這篇文章主要講訴了python?用matplotlib繪制折線圖的詳細內容,眾所周知,matplotlib?是一款功能強大開源的數據可視化模塊,憑借著強大的擴展性構建出更高級別的繪圖工具接口如seaborn、ggplot,下面我們就根據之前兩篇文章基礎掌握折線圖的繪制,需要的朋友可以參考一下
    2021-12-12
  • Python獲取ip地址的3種方法代碼

    Python獲取ip地址的3種方法代碼

    在Python中獲取IP地址的方法有很多種,這篇文章主要給大家介紹了關于Python獲取ip地址的3種方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論

上犹县| 巴南区| 抚顺市| 久治县| 二连浩特市| 慈利县| 鄱阳县| 定陶县| 泽普县| 两当县| 临潭县| 黄大仙区| 遂川县| 监利县| 赤壁市| 崇文区| 沁源县| 定兴县| 拜城县| 稻城县| 襄樊市| 宁波市| 磐安县| 阳原县| 贺兰县| 花垣县| 富锦市| 焉耆| 内丘县| 华亭县| 茶陵县| 安泽县| 布拖县| 白山市| 万州区| 盘山县| 阳东县| 墨江| 阳朔县| 乐都县| 凉城县|