[英]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.