Как обработать следующее исключение - у объекта 'PngStream' нет атрибута 'chunk_eXIf' - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь создать CNN с 8 скрытыми слоями и кодирую то же самое в Keras с Tensorflow бэкэндом. При выполнении я получаю неизвестную ошибку: 'PngStream' object has no attribute 'chunk_eXIf'.

Я попытался найти в Google ту же ошибку. только 3 ссылки появились! ни один из них не полезен.

#Importing
from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense

#classifier
classifier = Sequential()


#convolution layer-1
classifier.add(Convolution2D(32, 9, padding='same', input_shape = (128, 128, 3), activation = 'relu' ))
#maxpooling layer-1
classifier.add(MaxPooling2D(pool_size=(2, 2), strides=None))

#convolution layer-2
classifier.add(Convolution2D(64, 5, padding='same', activation = 'relu' ))
#maxpooling layer-2
classifier.add(MaxPooling2D(pool_size=(2, 2), strides=None))

#convolution layer-3
classifier.add(Convolution2D(64, 3, padding='same', activation = 'relu' ))
#maxpooling layer-3
classifier.add(MaxPooling2D(pool_size=(2, 2), strides=None))

classifier.add(Flatten())

#full connection
classifier.add(Dense(1028, activation = 'relu'))

classifier.add(Dense(4, activation = 'relu'))

#compiling
classifier.compile(optimizer='adam',
          loss='categorical_crossentropy',
          metrics=['accuracy'])

#preprocessing
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

#loading images
training_set = train_datagen.flow_from_directory(
                                                   r'D:\ImageDataset\Training',
                                                    target_size=(128, 128),
                                                    batch_size=32,
                                                    class_mode='categorical')

#training begins here
classifier.fit_generator(
        training_set,
        steps_per_epoch=7594,
        epochs=5)
classifier.save('cnn_four_classes.h5')

Все эпохи должны быть запущены без ошибок, поскольку в моих тренировочных данных нет изображений .png! У меня есть все .jpg.

Спасибо

1 Ответ

0 голосов
/ 17 января 2019

Существует nice-script , с помощью которого вы можете контролировать внутренний процесс. Это означает, что вы можете определить свой собственный способ генерации данных на каждой итерации вместе с текущими данными из каталога.

В этих сценариях автор загружает данные из файла .npy , в то время как вам необходимо прочитать изображение, которое можно сделать с помощью matplotlib , CV или другой пакет. Используйте его по своему выбору. Затем добавьте функцию, которую вы хотите использовать для увеличения , такую ​​как вращение, масштабирование, сдвиг и т. Д.

...