微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 R 中创建 keras 模型时出现问题

如何解决在 R 中创建 keras 模型时出现问题

在这个很棒的论坛上寻找解决方案,但我还没有找到,所以我现在写下我的问题。

我正在尝试通过使用多个包来使用 R 深入研究神经网络。问题是来自...

[https://www.kaggle.com/c/titanic/overview]

使用keras,我在拟合步骤中发现了问题。

我构建的模型:

data$PassengerId <- NULL
data$Name <- NULL
data$Ticket <- NULL
data$Cabin <- NULL

library(caTools)
split = sample.split(data$Survived,SplitRatio = 0.75)
train_data <- subset(data,split==TRUE)
test_data <- subset(data,split==FALSE)

train_keras <- train_data
test_keras <- test_data

train_keras$Survived <- as.numeric(train_keras$Survived)
train_keras$Pclass <- as.numeric(train_keras$Pclass) 
train_keras$Sex <- as.numeric(train_keras$Sex) 
train_keras$Embarked <- as.numeric(train_keras$Embarked)
train_keras$Survived <- train_keras$Survived -1

test_keras$Survived <- as.numeric(test_keras$Survived)
test_keras$Pclass <- as.numeric(test_keras$Pclass) 
test_keras$Sex <- as.numeric(test_keras$Sex) 
test_keras$Embarked <- as.numeric(test_keras$Embarked) 
test_keras$Survived <- test_keras$Survived -1

train_keras[,-1] <- scale(train_keras[,-1])
test_keras[,-1] <- scale(test_keras[,-1])

library(keras)
library(tidyverse)

X_train <- train_keras %>% 
  select(-Survived)
y_train <- to_categorical(train_keras$Survived)

X_test <- test_keras %>% 
  select(-Survived)
y_test <- to_categorical(test_keras$Survived)

classifier <- keras_model_sequential() 

classifier %>% 
  layer_dense(units = 256,activation = 'relu',input_shape = ncol(X_train)) %>% 
  layer_dropout(rate = 0.4) %>% 
  layer_dense(units = 128,activation = 'relu') %>%
  layer_dropout(rate = 0.3) %>%
  layer_dense(units = 2,activation = 'sigmoid')

history <- classifier %>% compile(
  loss = 'binary_crossentropy',optimizer = 'adam',metrics = c('accuracy')
)

因此,在清理数据,将其分为测试和训练,正确键入之后,我在 keras 中构建了模型。到现在为止,没有问题。正如我所说,问题出在拟合这个模型的时刻。

classifier %>% fit(
  X_train,y_train,epochs = 100,batch_size = 5,validation_split = 0.2
)

这引发了错误

py_call_impl(callable,dots$args,dots$keywords) 中的错误: 值错误:在用户代码中:

深入挖掘,我看到了一些奇怪的东西,指向序列模型上的维度。

assert_input_compatibility\n ' 输入张量。收到的输入:' + str(inputs))\n\n ValueError: 层序列_12 需要 1 个输入,但是 它接收了 7 个输入张量。收到的输入:[

如果我看得更深,我会发现整个架构是用 (None,1) 形状的张量定义的,这对我来说(很抱歉我缺乏这方面的经验)很奇怪。我知道问题是我喂模型的方式,但我仍然不知道我什么时候有问题。

提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。