Эта линия выполняет приведение:
images[i] = img_i
С images.dtype == np.float64
, но img_i.dtype
- это вероятно np.uint8
.
ВыМожно отследить этот тип ошибки, указав правило приведения:
np.copy_to(images[i], img_i, casting='no')
# TypeError: Cannot cast scalar from dtype('uint8') to dtype('float64') according to the rule 'no'
Это можно исправить, присвоив массиву правильный тип:
images = np.empty((len(img_paths), 32, 32, 3), dtype=np.uint8)
Или вы можете разрешитьNumpy сделать выделение для вас, но это будет временно использовать почти вдвое больше памяти:
images = np.stack([
Image.open(path_i)
for path_i in img_paths
], axis=0)