尝试使用keras和Tensorflow在R中构建图像分类器。 我尝试拟合模型后发生错误。无法理解为什么会发生或如何解决。
library(EBImage)
library(keras)
library(tensorflow)
library(devtools)
setwd('C:/Users/Adhish/Desktop/Images')
pics <- c('B1.jpg','B2.jpg','B3.jpg','B4.jpg','B5.jpg','B6.jpg',
'D1.jpg','D2.jpg','D3.jpg','D4.jpg','D5.jpg','D6.jpg')
mypic <- list()
for (i in 1:12)
{
mypic[[i]] <- readImage(pics[i])
}
# Resizing to make the dimensions of all the images similar
for (i in 1:12)
{
mypic[[i]] <- resize(mypic[[i]], 100, 100)
}
#reshape to create matrix for training purpose
for (i in 1:12)
{
mypic[[i]] <- array_reshape(mypic[[i]], c(100,100,3))
}
# row bind
trainx <- NULL
for (i in 1:4 && 7:10)
{
trainx <- rbind(trainx, mypic[[i]])
}
testx <- rbind(mypic[[5]],mypic[[6]],mypic[[11]],mypic[[12]])
trainy<- c(0,0,0,0,1,1,1,1)
testy <- c(0,0,1,1)
#onehotencoding
trainLabels <- to_categorical(trainy)
testLabels <- to_categorical(testy)
#model
model <- keras_model_sequential()
model %>%
layer_dense(units = 256, activation = 'relu', input_shape = c(30000)) %>%
layer_dense(units = 128, activation = 'relu') %>%
layer_dense(units = 2, activation = 'softmax')
summary(model)
#compile
model %>%
compile(loss = 'binary_crossentropy', optimizer = optimizer_rmsprop(),
metrics = c('accuracy'))
#fit model
model %>%
fit(trainx, trainLabels, epochs = 30, batch_size = 32,
validation_split = 0.4)
py_call_impl(可调用,dots $ args,dots $ keywords)错误: ValueError:输入数组应具有与目标数组相同数量的样本。找到2个输入样本和8个目标样本。