我正在尝试训练具有1个输入神经元,3个输出神经元的顺序分类器。数据位于数据帧X
和Y
中,但是如何将这些数据馈送到fit
库中的keras
函数中?换句话说,train_x
和train_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
?
答案 0 :(得分:1)
fit
的变量类型应该是向量,矩阵或数组。
根据documentation,其内容如下,
x- 训练数据的向量,矩阵或数组(如果模型具有多个输入,则列出)。如果模型中的所有输入均已命名,则还可以传递将输入名称映射到数据的列表。如果从框架本机张量(例如TensorFlow数据张量)进行馈送,则x可以为NULL(默认值)。
y-目标(标签)数据的矢量,矩阵或数组(如果 模型有多个输出)。如果模型中的所有输出均已命名, 您还可以传递将输出名称映射到数据的列表。 y可以为NULL (预设)如果是从框架原生张量(例如TensorFlow 数据张量)。
模型需要知道应该期望的输入形状。因此,顺序模型中的第一层(并且只有第一层,因为随后的层可以进行自动形状推断)需要接收有关其输入形状的信息。例如:您可以将batch_size参数传递给图层。如果将batch_size=32
和input_shape=c(6, 8)
都传递给一个层,它将期望每一批输入都具有批处理形状(32, 6, 8)
。
希望这能回答您的问题。学习愉快。