Keras拟合函数应采用哪种形式输入和标签数据?

时间:2020-05-16 11:46:08

标签: r tensorflow keras deep-learning neural-network

我正在尝试训练具有1个输入神经元,3个输出神经元的顺序分类器。数据位于数据帧XY中,但是如何将这些数据馈送到fit库中的keras函数中?换句话说,train_xtrain_y的变量类型应该是什么(例如,它是数据帧,矩阵,列表等)?

[...]

predictor <- keras_model_sequential() %>%
  layer_dense(units = 8, activation = "relu", input_shape = c(1)) %>%
  layer_dense(units = 8, activation = "relu") %>%
  layer_dense(units = 3, activation = "softmax")

[...]

train_x <- X
train_y <- Y

history <- predictor %>% fit(
  train_x,
  train_y,
  epochs = 20,
  verbose = 2
)

编辑:

如果可以使用数据框,那么应该如何设置input_shape

1 个答案:

答案 0 :(得分:1)

fit的变量类型应该是向量,矩阵或数组。

根据documentation,其内容如下,

x- 训练数据的向量,矩阵或数组(如果模型具有多个输入,则列出)。如果模型中的所有输入均已命名,则还可以传递将输入名称映射到数据的列表。如果从框架本机张量(例如TensorFlow数据张量)进行馈送,则x可以为NULL(默认值)。

y-目标(标签)数据的矢量,矩阵或数组(如果 模型有多个输出)。如果模型中的所有输出均已命名, 您还可以传递将输出名称映射到数据的列表。 y可以为NULL (预设)如果是从框架原生张量(例如TensorFlow 数据张量)。

模型需要知道应该期望的输入形状。因此,顺序模型中的第一层(并且只有第一层,因为随后的层可以进行自动形状推断)需要接收有关其输入形状的信息。例如:您可以将batch_size参数传递给图层。如果将batch_size=32input_shape=c(6, 8)都传递给一个层,它将期望每一批输入都具有批处理形状(32, 6, 8)

希望这能回答您的问题。学习愉快。

相关问题