1、环境介绍
python3.6,tensorflow1.4版本,pycharm编译器
2、函数库导入
import cv2
import matplotlib.pyplot as plt
import os, PIL, pathlib
import numpy as np
from tensorflow.keras.layers import Conv2D,MaxPooling2D,Dropout,Dense,Flatten,Activation
import pandas as pd
from tensorflow.keras.models import Sequential
import warnings
from tensorflow import keras
import pathlib
from tensorflow.keras.layers import BatchNormalization
import tensorflow as tf
3、数据集获取
数据集链接,含有猫狗两类图像,图像尺寸不等,猫狗图片各1000张。
猫:
狗:
4、神经网络搭建:
def createModel(num_classes):
model = Sequential() # 顺序模型
model.add(
Conv2D(16, (5, 5), strides=(2, 2), padding="same", input_shape=(256, 256, 3), data_format='channels_last',
kernel_initializer='uniform', activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(32, (3, 3), strides=(2, 2), activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
model.add(Conv2D(64, (3, 3), activation="relu"))
model.add(Conv2D(128, (3, 3), activation="relu"))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), name="pool5"))
model.add(Conv2D(256, (1, 1), activation="relu"))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(256))
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(Dropout(0.5))
model.add(Dense(num_classes))
model.add(BatchNormalization())
model.add(Activation("softmax"))
model.summary()
return model
神经网