Попытка стандартизировать / нормализовать данные до go в CNN, но возникают проблемы - PullRequest
0 голосов
/ 09 мая 2020

У меня есть следующий фрагмент кода, и я пытаюсь стандартизировать / нормализовать данные перед обучением моего CNN.

X = [] # Image data
y = [] # Labels

datagen = ImageDataGenerator(samplewise_center=True)

Loops through imagepaths to load images and labels into arrays
for path in imagepaths:
  img = cv2.imread(path) # Reads image and returns np.array
  img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  img = cv2.resize(img, (200, 200)) 
  img = datagen.standardize(img) #ERROR POINTING HERE
  X.append(img)

....

Однако при запуске я получаю следующее сообщение об ошибке, указывающее на строку Я прокомментировал выше:

UFuncTypeError: Cannot cast ufunc 'subtract' output from dtype('float64') to dtype('uint8') with casting rule 'same_kind' 

Есть идеи, где я ошибаюсь в стандартизации? Или есть более простой способ стандартизации? Я видел некоторые решения, в которых люди делят на 255, но я не уверен, как именно это реализовать. Спасибо!

1 Ответ

0 голосов
/ 09 мая 2020

нужно применить img_to_array метод:

from keras.preprocessing.image import img_to_array

img = cv2.resize(img, (200, 200)) 
img = img_to_array(img)
img = datagen.standardize(img)
...