首页 > 解决方案 > 如何在 keras(R) 中构建张量流模型以进行多标签分类?

问题描述

我想在 R 中使用 keras 的 Tensorflow 模型的帮助下预测几个标签。

我的训练数据目标:num [1:535, 1:5]

我的训练数据标签(一个热编码):num [1:535, 1:5, 1:2]

如果我使用以下适用于一个标签的模型,适用于多个标签(在本例中为 5),我会收到错误消息

py_call_impl(callable, dots$args, dots$keywords) 中的错误:
ValueError:检查目标时出错:预期dense_43 有2 维,但得到了形状为(535, 5, 2) 的数组

model <- keras_model_sequential()
model %>% 
  layer_dense(units = 50, input_shape = c(measurements)) %>% 
  layer_dropout(0.9) %>%
  layer_dense(units = 2, activation = 'sigmoid')
model %>% compile(
  loss = 'binary_crossentropy',
  optimizer = "Nadam",
  metrics = 'accuracy')
history <- model %>% fit(
  data.training, data.trainLabels, 
  epochs = 10000, batch_size = 128, 
  view_metrics = FALSE, validation_split = 0.2)

我尝试过使用第二个密集层单元(我尝试了 5 个标签,10 个标签 x2,张量的形状等),但无济于事。

我需要如何修改我的模型,以便它可以预测所有 5 个标签?

标签: rtensorflowmachine-learningkerasmodel

解决方案


推荐阅读