我正在寻找一种方法来检索每个时期的损失值,以便将我的适应度函数(对于遗传算法)定义为:fitness <- 1 / (history$metrics$loss + 0.00000001)
但我有一个错误说:Error in history$metrics : object of type 'closure' is not subsettable
一开始,我创建了一个继承自 KerasCallback 类的新 R6 类。
# define custom callback class
LossHistory <- R6::R6Class("LossHistory",
inherit = KerasCallback,
public = list(
losses = NULL,
on_batch_end = function(batch, logs = list()) {
self$losses <- c(self$losses, logs[["loss"]])
}
))
然后我称之为:
history <- LossHistory$new()
model %>% fit(
X_train, Y_train,
batch_size=128, epochs=20, verbose=0,
callbacks= list(history)
)
你知道我的健身功能有什么问题吗?问候。