Я пытаюсь построить модель в R Keras с TensorFlow, у которой просто есть сплющенный слой.Вот фрагмент кода:
model <- keras_model_sequential() %>%
layer_flatten(input_shape = c(lookback, dim(train.data)[-1]))
model %>% compile(
optimizer = optimizer_rmsprop(),
loss = "mae"
)
history <- model %>% fit_generator(
train_gen,
steps_per_epoch = 500,
epochs = 20
)
lookback
равно 1200, а dim(train.data)
равно (13155, 3)
.Вход для выравнивающего слоя - (1200, 3)
, и я ожидаю, что он должен вывести 1D-вектор 3600.
train_gen
возвращает список из 2. Первый - это 3D-матрица с размерами (129, 1200, 3)
ивторой - это одномерный вектор с размерностью (129,)
.
Однако я получаю ошибку:
Error in py_call_impl(callable, dots$args, dots$keywords) :
ValueError: Error when checking target: expected dense_15 to have shape (3600,) but got array with shape (1,)
Я не знаю, почему это происходит.Если я добавлю layer_dense(units = 1)
, это сработает, но я не понимаю, почему.