【发布时间】:2021-10-25 12:53:54
【问题描述】:
我正在尝试塑造数据框,以便能够在 R 上运行 LSTM。
我有 100 个列表,每个列表有 4 个特征和 10 行,我想预测 100 个值。 我已将我的列表重塑为一个数组尝试运行模型,但出现类似于此的错误
ValueError: Data cardinality is ambiguous:
x sizes: 10
y sizes: 100
我不明白我需要将什么形状应用于我的数组才能使其工作
我将我的问题重新创建为数据样本
library("keras")
#creation of the dataframe
x <- data.frame(
x1 = sample(c(0,1), replace=TRUE, size=1000),
x2 = sample(c(0,1), replace=TRUE, size=1000),
x3 = sample(c(0,1), replace=TRUE, size=1000),
x4 = sample(c(0,1), replace=TRUE, size=1000)
)
y <- data.frame( y = sample(c(0,1), replace=TRUE, size=100))
#transform into list
x_list <- list()
for(i in 1:100) {
x_list[[i]] <- x[(10*i+1) :((1+i)*10),]
}
#transform into array
arr_x <- array_reshape(as.numeric(unlist(x_list)),
dim = c(dim(x_list[[1]])[1],
dim(x_list[[1]])[2],
length(x_list) )
)
dim(x_list[[1]])[1]
dim(x_list[[1]])[2]
length(x_list)
lstm_model <- keras_model_sequential()
lstm_model %>%
layer_lstm(units = 64,
input_shape = c(10,4),
return_sequences = TRUE
)
lstm_model %>%
compile(optimizer = 'rmsprop', metrics = 'binary_crossentropy')
summary(lstm_model)
lstm_model %>% fit(
x = arr_x,
y = y,
batch_size = 1,
epochs = 20,
verbose = 0,
shuffle = FALSE
)
【问题讨论】: