Как решить «ValueError: входные массивы должны иметь то же количество выборок, что и целевые массивы. Найдено 2 входных выборки и 8 целевых выборок». - PullRequest
0 голосов
/ 04 июня 2019

Попытка построить Классификатор изображения в R, используя керасы и Tensorflow.Ошибка возникает после того, как я пытаюсь соответствовать модели.Не в состоянии понять, почему это происходит или как ее решить.

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 (вызываемый, точки $ args, точки $ ключевые слова): ValueError: Входные массивы должны иметь то же количество выборок, что и цельмассивы.Найдено 2 входных и 8 целевых образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...