keras::fit()错误中的class_权重参数。类存在于数据中,但不存在于类中
我有一个稍微不平衡的数据集,我试图给它分配权重 中提供的示例不适用于我。当我尝试使用相同的代码时:keras::fit()错误中的class_权重参数。类存在于数据中,但不存在于类中,r,class,keras,deep-learning,R,Class,Keras,Deep Learning,我有一个稍微不平衡的数据集,我试图给它分配权重 中提供的示例不适用于我。当我尝试使用相同的代码时: system.time ( baseline_history <- fit ( object = model_baseline, x = as.matrix(x_train_tbl), y = y_train_vec, ba
system.time (
baseline_history <- fit (
object = model_baseline,
x = as.matrix(x_train_tbl),
y = y_train_vec,
batch_size = 1024,
epochs = 30,
class_weight = list("0" = 1, "1" = 1.67),
validation_split = 0.2) )
我有点不知所措,因为我在class_weights中明确指出它是一个列表。我甚至试过
weights <- list("0" = 1, "1" = 1.67)
> weights
$`0`
[1] 1
$`1`
[1] 1.67
is.list(weights)
[1] TRUE
权重
$`0`
[1] 1
$`1`
[1] 1.67
is.列表(权重)
[1] 真的
为了确保它工作,但我仍然得到相同的错误。有什么想法吗?我假设你有你的
y\u train\u vec
作为一个因素,这就是问题所在
出于某种原因,class_weight
似乎不能很好地处理因子,因此您可以简单地将其更改为数值
y\u train\u vec=as.numeric(y\u train\u vec)
这将为您提供因子的内部表示(它将为您提供1和2的列表),然后您可以相应地指定class\u权重
system.time(
基线检查历史
weights <- list("0" = 1, "1" = 1.67)
> weights
$`0`
[1] 1
$`1`
[1] 1.67
is.list(weights)
[1] TRUE