我正在尝试通过R Studio中的Keras张量流构建预测模型,但出现以下错误。请问有人知道吗?这是我第一次使用Keras或深度学习以及R。请帮助我,并提出更改建议。谢谢,队友!
图书馆(keras)
train_data <-read.csv(file =“ trialtrainfinal.csv”,head = FALSE)
test_data <-read.csv(file =“ trialtest.csv”,head = FALSE)
train_targets <-read.csv(file =“ traintarget.csv”,head = FALSE)平均值<-apply(train_data,2,平均值)
std <-apply(train_data,2,sd)
train_data <-标度(train_data,center =平均值,scale = std)
test_data <-标度(test_data,center = mean,scale = std)build_model <-function(){
+模型<-keras_model_sequential()%>%
+ layer_dense(单位= 64,激活=“ relu”,
+ input_shape = dim(train_data)[[2]])%>%
+ layer_dense(单位= 64,激活=“ relu”)%>%
+ layer_dense(单位= 1)
+
+模型%>%compile(
+优化程序=“ rmsprop”,
+损失=“ mse”,
+指标= c(“ mae”)
+)
+}k <-4
索引<-样本(1:nrow(train_data))
折叠<-cut(1:length(indices),breaks = k,labels = FALSE)
num_epochs <-100
all_scores <-c()
for(i in 1:k){
+ cat(“加工折页编号”,i,“ \ n”)
+ val_indices <-其中(倍数== i,arr.ind = TRUE)
+ val_data <-train_data [val_indices,]
+ val_targets <-train_targets [val_indices,]
+
+
+ partial_train_data <-train_data [-val_indices,]
+ partial_train_targets <-train_targets [-val_indices]
+
+
+模型<-build_model()
+
+
+模型%>%fit(partial_train_data,partial_train_targets,
+历元= num_epochs,batch_size = 1,详细= 0)
+
+
+结果<-模型%>%评估(val_data,val_targets,详细= 0)
+ all_scores <-c(all_scores,results $ mean_absolute_error) +}
1号加工折页
py_call_impl中的错误(可调用,dots $ args,dots $ keywords): ValueError:没有为“ dense_5”提供数据。需要每个键中的数据:['dense_5']
详细的回溯: 文件“ E:\ Anaconda \ envs \ r-reticulate \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training.py”,第728行,适合 use_multiprocessing = use_multiprocessing) 文件“ E:\ Anaconda \ envs \ r-reticulate \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py”,行224,适合 distribution_strategy = strategy) _process_training_inputs中的第547行“ E:\ Anaconda \ envs \ r-reticulate \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py” use_multiprocessing = use_multiprocessing) _process_inputs中的第594行的文件“ E:\ Anaconda \ envs \ r-reticulate \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training_v2.py” 步骤=步骤) _standardize_user_data中第2519行的文件“ E:\ Anaconda \ envs \ r-reticulate \ lib \ site-packages \ tensorflow_core \ python \ keras \ engine \ training.py” exception_prefix ='目标') 文件“ E:\ Anaconda \ envs \ r-reticul
当我使用命令“ summary(model)”时,会得到以下结果:Model:“ sequential”
密集(密集)(无,64)896
dense_1(密集)(无,64)4160
总参数:5,121 可训练的参数:5,121 不可训练的参数:0
py_call_impl(可调用,dots $ args,dots $ keywords)错误: ValueError:没有为“ dense_2”提供数据。需要每个键中的数据:['dense_2']
答案 0 :(得分:0)
鉴于错误消息,它表明没有正确填充正在馈入模型的数据。您可能需要确认partial_train_data和partial_train_targets实际上具有值,并且在形状等方面以及网络根据设计期望的方面是一致的。在模型构建步骤之后,应该有一个可以使用的命令,例如model.summary(),它会根据数据形状/尺寸返回网络体系结构。我希望这会有所帮助。
答案 1 :(得分:0)
尝试将train_data和test_data转换为矩阵。 使用data.matrix或as.matrix