keras实现goolenet模型的训练
#导出需要的库
import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.keras import regularizers
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Input, Flatten, Dense, Dropout, BatchNormalization
from tensorflow.keras.layers import Conv2D, MaxPooling2D, AveragePooling2D, ZeroPadding2D
from tensorflow.keras.layers import Concatenate
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.optimizers import Adam, SGD
#定义参数
#类别数目
CLASS_NUM = 5
# 每次喂入神经网络的数据个数
BATCH_SIZE = 16
#把所有数据训练一遍需要的步数
EPOCH_STEPS = int(4323/BATCH_SIZE)
#喂入神经网络需要的维度
IMAGE_SHAPE = (224, 224, 3)
#训练数据文件路径
IMAGE_TRAIN = './Dataset/Flowers'
#保存模型的名称
MODEL_NAME = 'googlenet_flower.h5'
# 准备数据
#数据增强
train_datagen = ImageDataGenerator(
rescale=1./255,#对图像进行缩放
rotation_range=30,#旋转角度
width_shift_range=0.2,#水平平移,相对总宽度的比例
height_shift_range=0.2,#垂直平移,相对总高度的比例
shear_range=0.2,#随机错切换角度
zoom_range=0.2,#随机缩放范围
horizontal_flip=True#水平翻转
)
#从训练数据文件中按批次读取数据
generator_main = train_datagen.flow_from_directory(
IMAGE_TRAIN,#训练数据文件
target_size=(IMAGE_SHAPE[0], IMAGE_SHAPE[1]),#模型需要的尺度
batch_size=BATCH_SIZE,#批次大小
class_mode='categorical'#类别模式选择
)
#数据生成器,从generator中批次取出数据与标签
def my_generat