我正在使用keras R构建分类模型,我的代码如下:
model <- keras_model_sequential()
model %>%
layer_dense(units = 256, activation = 'relu', input_shape = ncol(x_train),kernel_regularizer = regularizer_l2(0.001),) %>%
layer_dropout(rate = 0.4) %>%
layer_dense(units = 128, activation = 'relu',kernel_regularizer = regularizer_l2(0.001),) %>%
layer_dropout(rate = 0.3) %>%
layer_dense(units = 2, activation = 'sigmoid')
history <- model %>% compile(
loss = 'binary_crossentropy',
optimizer = 'adam',
metrics = c('accuracy')
)
model %>% fit(x_train,
y_train,
epochs = 50,
batch_size = 128,
validation_data = (x_val,y_val))
一切都很好,但是当我尝试使用'validation_data'将外部数据(x_val,y_val)用作验证数据时,则出现此错误:
Error: unexpected ',' in:
" batch_size = 128,
validation_data =(x_val,"
如果我仅使用validation_split = 0.2,那么一切都很好。 我看了很多遍代码,但无法弄清楚这里出了什么问题。 有人可以帮我吗?
非常感谢, 何
答案 0 :(得分:0)
该问题基于要传递的输入参数。应该是list
,因为tuple
中没有R
(尽管python
根据keras文档
validation_data-在每个时期结束时用于评估损失和任何模型指标的数据。该模型将不会根据此数据进行训练。这可以是列表(x_val,y_val)或列表(x_val,y_val,val_sample_weights)。 validate_data将覆盖validation_split。
因此,我们只需将(x_val, y_val)
替换为list(x_val, y_val)
model %>%
fit(x_train,
y_train,
epochs = 50,
batch_size = 128,
validation_data = list(x_val,y_val))