如何处理以下异常-'PngStream'对象没有属性'chunk_eXIf'

时间:2019-01-17 07:57:28

标签: python tensorflow keras python-imaging-library conv-neural-network

我正在尝试构建具有8个隐藏层的CNN,并在具有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 :(得分:0)

有一个nice-script,您可以通过它控制内部过程。这意味着,您可以定义自己的每次迭代中生成数据的方式,以及从目录中流出数据的方式。

在此脚本中,作者从 .npy 文件中加载了数据,而您需要读取可由 matplotlib CV 完成的图像strong>或其他软件包。根据您的选择使用它。然后添加要用于增强的功能,例如旋转,缩放,剪切等。