Python Входные данные в NumpyArrayIterator должны иметь ранг 4 - PullRequest
0 голосов
/ 22 октября 2019

пытаюсь проверить мою модель, и у меня появляется ошибка относительно входа генератора данных, это должно быть просто, но я не уверен, где ошибка, какой-либо совет?

Код

X = []


try:
  for image in test_imgs:    
      #print(image)
      img = cv2.imread(image, cv2.IMREAD_COLOR)
      #print(img)
      img = cv2.resize(img, (nrows, ncolumns), interpolation=cv2.INTER_CUBIC)

      X.append(img)

except:
  print(" ")

X_test = np.array(X)  

test_datagen = ImageDataGenerator(rescale=1./255)

i = 0
text_labels=[]
plt.figure(figsize=(30,20))
for batch in test_datagen.flow(X_test, batch_size=1):
  pred=model.predict(batch)
  if pred > 0.5:
    text_labels.append(1)
  else:
    text_labels.append(0)


plt.subplot(5 / columns + 1 , columns, i + 1)
plt.title('This is a ' + text_labels[i])
imgplot = plt.imshow(batch[0])
i+=1

if i % 10 == 0:
  break


plt.show()  

Ошибка

115             raise ValueError(Input data in `NumpyArrayIterator
116                              should have rank 4. You passed an array 
117                              with shape', self.x.shape)
118         channels_axis = 3 if data_format == channels_last else 1
119         if self.x.shape[channels_axis] not in {1, 3, 4}:

ValueError: ('Входные данные в NumpyArrayIterator должны иметь ранг 4. Вы передали массив с формой', (0,))

...