我正在尝试构建一个带有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。
谢谢
发布于 2019-01-17 08:54:04
有一个不错的剧本,您可以通过它来控制内部过程。这意味着,您可以在每次迭代中定义自己的数据生成方式,以及目录中的流动数据。
在这个脚本中,作者从.npy文件中加载数据,而您需要读取可以由matplotlib、CV或其他包完成的图像。根据你的选择使用它。然后添加您想要用于增强的功能,如旋转、缩放、剪切等。
https://stackoverflow.com/questions/54231350
复制相似问题