执行训练
训练的数据输入可以全部载入内存,下面这两种方法 #按照批次进行训练(传入的是一个批次的样本和标签)样本少,将所有的样本作为一个批次 cost = model.train_on_batch(x_data,y_data) #划分批次进行训练(传入的是所有的数据进行分批次训练)样本数量多。 model.fit(x_train,y_train,batch_size=32,epochs=10) 也可以自己从硬盘中分批次读取。 #定义数据处理 train_datagen = ImageDataGenerator( rotation_range = 40, # 随机旋转度数 width_shift_range = 0.2, # 随机水平平移 height_shift_range = 0.2,# 随机竖直平移 rescale = 1/255, # 数据归一化 shear_range = 20, # 随机错切变换 zoom_range = 0.2, # 随机放大 horizontal_flip = True, # 水平翻转 fill_mode = 'nearest', # 填充方式 ) batch_size = 32 # 生成训练数据,这个不会一次载入 train_generator = train_datagen.flow_from_directory( 'image/train', target_size=(150,150), batch_size=batch_size, train_generator.class_indices#打印类别 #测试集 test_datagen = ImageDataGenerator( rescale = 1/255, # 数据归一化 ) # 测试数据 test_generator = test_datagen.flow_from_directory( 'image/test', target_size=(150,150), batch_size=batch_size, ) model.fit_generator(train_generator, steps_per_epoch=len(train_generator),#路径内有400个照片每个epoch有多少个周期呢?这里不用批次了 epochs=30,#一共训练多少个周期 validation_data=test_generator,#验证集的迭代器 validation_steps=len(test_generator))#验证集一个周期分多少个批次呢