项目说明
为了进行Keras对于图像处理的学习而参考[点击此处进入学习]其中包括详细的优化过程(https://www.pyimagesearch.com/2017/12/11/image-classification-with-keras-and-deep-learning/)
数据集来源
数据集包括两部分,一部分是来自Google下抓取的图片461张(包含圣诞老人),【教你如何利用Google图片抓取数据集】另一部分是来自UKBench数据集中随机抽取的461张。
项目详情
网络体系结构定义
定义最简单的Lenet,创建lenet.py
# import the necessary packages
from keras.models import Sequential
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.layers.core import Activation
from keras.layers.core import Flatten
from keras.layers.core import Dense
from keras import backend as K
class LeNet:
@staticmethod
def build(width, height, depth, classes):
# initialize the model
model = Sequential()
inputShape = (height, width, depth)
# if we are using "channels first", update the input shape
if K.image_data_format() == "channels_first":
inputShape = (depth, height, width)
# first set of CONV => RELU => POOL layers
model.add(Conv2D(20, (5, 5), padding="same",
input_shape=inputShape))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
# second set of CONV => RELU => POOL layers
model.add(Conv2D(50, (5, 5), padding="same"))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
# first (and only) set of FC => RELU layers
model.add(Flatten())
model.add(Dense(500))
model.add(Activation("relu"<