《猫狗分类》题目链接
题目所给训练集是20000张大小不一的猫狗图片,猫10000张,狗10000张,测试集是5000张混合在一起的猫狗图片。
训练集下载train.zip
测试集下载test.zip
前言
实验内容是按照博客《在lintcode刷AI题:猫狗分类器》
来完成的,万分感谢作者。
一、认识VGG16神经网络
小知识:训练神经网络中的epochs表示对每张训练图片,神经网络的观看次数。
下图为VGG16的网络结构:黑色表示卷积层,红色表示最大池化层,蓝色是全连接层。

对应的,在Keras框架下搭建VGG16网络如下:
from keras.models import Sequential
from keras.layers.core import Flatten,Dense,Dropout
from keras.layers.convolutional import Convolution2D,MaxPooling2D,ZeroPadding2D
from keras.optimizers import SGD
import cv2
import numpy as np
def VGG_16(weights_path=None):
model=Sequential()
model.add(ZeroPadding2D((1,1),input_shape=(3,224,224)))
model.add(Convolution2D(64,3,3,activation="relu"))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(64,3,3,activation="relu"))
model.add(MaxPooling2D((2,2),strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(128,3,3,activation="relu"))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(128,3,3,activation="relu"))
model.add(MaxPooling2D((2,2),strides=(2,2)))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(256,3,3,activation="relu"))
model.add(ZeroPadding2D((1,1)))
model.add(Convolution2D(256,3,3

本文介绍了使用VGG16神经网络进行猫狗分类的实践过程。首先,对不同大小的图片进行resize至224x224,然后通过VGG16提取特征。接着,构建一个简单的神经网络,利用VGG16的特征进行训练。经过多次训练,随着epochs的增加,模型的准确率从0.59提升至0.965。
最低0.47元/天 解锁文章
1869

被折叠的 条评论
为什么被折叠?



