我有两门课。0=狗,1=非狗。
8800张图像(150150像素)正在培训,4400张图像用于验证。
4400只狗,4400只非狗在训练。2200只狗,2200只非狗正在验证中。
非日志图像包含船、树、钢琴等的随机图像。
我把我的网络训练到了87%以上的精确度。
绘图:
accvsvvalacc-http://imgur.com/a/6y6DG
损失损失-http://imgur.com/a/QGZQx
我的网络:#model dog/nondog
model = Sequential()
model.add(Convolution2D(16, 3, 3, input_shape=(3, img_width, img_height)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(16, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(64, 3, 3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
我在模型的末尾有一个节点,因为我知道我在处理二进制分类问题,如果我只需要从非狗分类狗。在
我面临的问题是,当我把一张看不见的狗图片发送给系统时,它总是将其归类为非日志。我没有正确地处理这个问题?如果我的准确率如此之高,有人能解释一下为什么它从不把狗图片归类为狗吗?你有什么可以推荐给我的人际网络或方法的改变吗?在
编辑:
最初我用70x70的图像进行训练。刚完成150x150图像的再培训。也不是模型.预测我正在使用model.predict_类. 但问题还是一样。结果总是一个非狗的结果,我尝试的每一个图像。:(
编辑2:完整代码:
^{pr2}$
我为杂乱无章的代码道歉,经常会发生很多变化。。在