我是Keras的新手,发现了一个我无法理解的错误。
这是我的输入和嵌入层:
fitspline <- vector("list", 10)
set.seed(123)
for (k in 1:10){
fitspline[[k]] <- train( y ~ bs(x , degree = 3, df = k+2 ), data = data , method = "lm", trControl = train.control)$results[[3]]
}
fitspline <- cbind(c(1:10),unlist(fitspline, use.names=FALSE))
max(fitspline[,2])
在这里我创建我的模型:
chordInput = tf.keras.layers.Input(shape=(825,), dtype='int32')
durationInput = tf.keras.layers.Input(shape=(825,), dtype='int32')
chordEmbedding = tf.keras.layers.Embedding(input_dim=nChords+1, output_dim=embedDim,
input_length=seqLen)(chordInput)
durationEmbedding = tf.keras.layers.Embedding(input_dim=nDurations+1,
output_dim=embedDim, input_length=seqLen)(durationInput)
这是我适合我的数据的地方:
lstm = tf.keras.Model(inputs=[chordInput, durationInput], outputs=[chordOutput, durationOutput])
np.array(trainChords)的形状是(825,)这是我所期望的。但是,当我运行此代码时,出现错误:
train = [np.array(trainChords), np.array(trainDurations)]
target = [np.array(targetChords), np.array(targetDurations)]
lstm.fit(x=train, y=target, epochs=epochs)
放大形状不正确。我不知道它来自哪里,因为我可以将形状打印为(825,)。你有什么建议吗?
谢谢!