Я пытаюсь создать 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.
Спасибо