R Keras展平层-获得形状为1的阵列
我试图用TensorFlow在R Keras中建立一个模型,它只有一个平坦层。以下是代码片段:R Keras展平层-获得形状为1的阵列,r,tensorflow,machine-learning,keras,deep-learning,R,Tensorflow,Machine Learning,Keras,Deep Learning,我试图用TensorFlow在R Keras中建立一个模型,它只有一个平坦层。以下是代码片段: model <- keras_model_sequential() %>% layer_flatten(input_shape = c(lookback, dim(train.data)[-1])) model %>% compile( optimizer = optimizer_rmsprop(), loss = "mae" ) history <- mode
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
)
我不知道为什么会这样。如果我添加一个
层密度(单位=1)
它可以工作,但我不明白为什么。目标形状不兼容:您提供一个大小为1的向量作为目标(即(129,)
表示大小为1的129个样本标签),但是模型的输出形状是(无,3600)
,因此它需要大小为3600的向量。这就是为什么当你添加一个有一个单元的密集层时,问题就解决了:密集层的输出形状是(None,1)
,你提供(129,)
,它们相互匹配,因此没有问题可以抱怨。我如何解决这个问题?我只想要一个展平层,并从中获得输出。基本上,我正在尝试学习展平层的工作原理。@user2840286然后您需要修改train\u gen
,以将形状数组(1293600)
作为标签返回,即基本上是输入的展平版本。
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,)