簡體   English   中英

R 中 Keras 的自定義指標

[英]Custom metric for Keras in R

我想創建一個自定義指標,以便在 R 中訓練完全連接的神經網絡。問題是我無法弄清楚如何將語法傳遞給 R tensorflow。所需的 function 將是這樣的:

fganancia   <- function(probs, data)
{
tbl <- as.data.table( list( "prob"=probs, "gan"= ifelse( data==1, 29250, -750 ) ) )
setorder( tbl, -prob )
tbl[ , gan_acum :=  cumsum( gan ) ]
gan <- max( tbl$gan_acum )
return(  gan  )
}

如果這是一個列表,我想根據y_prob對這個列表進行排序( y_true會受到這種排序的影響)。 然后根據其值(0 或 1)為y_true分配 2 個不同的值,最后計算累積和並獲得它的最大值。

是否可以在 R tensorflow 中重現此內容?

經過一整天的研究解決了。 這將是 keras tensorflow 的等效代碼:

Ganancia<- custom_metric("Ganancia",function(y_true, y_pred) {

  
  weights = k_ones_like(y_true)
  loss = k_switch(k_equal(y_true,1), weights*29250, weights*(-750))
  values = tf$argsort(y_pred,axis = 0, direction='DESCENDING')
  ganancia = tf$gather(loss, values)
  ganancia=k_cumsum(ganancia, axis = 1)
  max=k_max(ganancia)
  

  
  return(max)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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