python - 如何处理以下异常 - 'PngStream' 对象没有属性 'chunk_eXIf'
问题描述
我正在尝试CNN
使用 8 个隐藏层构建一个并在后端进行相同的Keras
编码Tensorflow
。执行时出现未知错误:'PngStream' object has no attribute 'chunk_eXIf'
.
我尝试在谷歌上搜索相同的错误。只显示了 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,所以所有 epoch 都应该正确运行!我有所有.jpg。
谢谢
解决方案
有一个nice-script,您可以通过它来控制内部进程。这意味着,您可以定义自己在每次迭代中生成数据的方式,以及从目录中流动的数据。
在这个脚本中,作者从.npy文件中加载数据,而您需要读取可以通过matplotlib、CV或其他包完成的图像。根据您的选择使用它。然后添加您想要用于增强的功能,例如旋转、缩放、剪切等。
推荐阅读
- javascript - 如何在 Web 视图中隐藏 xml 元素后删除空间
- c++ - Mac Xcode 上的数论库 (NTL) - c++ - (Undefined symbols for architecture x86_64) Linker error - Apple Mach-O Linker (ld) Error Group
- c++ - 启动程序时出错:检测到 GTK+ 2.x 符号。不支持在同一进程中使用 GTK+ 2.x 和 GTK+ 3
- java - String name1 = "some name" 或 String name1 = new String("some name") 哪个更好?
- android - android 同步适配器安全异常
- c - 免费的STM32硬故障
- node.js - 如何正确使用 Promises 处理多个请求
- objective-c - [__NSCFConstantString count]:无法识别的选择器发送到实例 - GADRequest 错误或 AdMob 崩溃
- python - 如何为已编译的 Python 扩展生成 .pyi 文件?
- java - 使用 java 在电子邮件中发送附件