same_face = [] diff_face = [] for i in range(9999): # 如果两张图片标签相同,则将两个图片作为相同组样本 if labels[i] == labels[i + 1]: same_face.append([images[i], images[i + 1]]) # 如果两张图片标签不同,则作为差异组样本 else: diff_face.append([images[i], images[i + 1]]) # 转化为numpy.ndarray,便于传入keras构造的神经网络进行计算 x_train1 = np.array([f[0] for f in same_face + diff_face]) x_train2 = np.array([f[1] for f in same_face + diff_face]) y_train = np.array([1 for i in same_face] + [0 for j in diff_face]) # 如果有模型文件存在,则导入之前的模型参数继续计算 if os.path.exists("H:/face_detection/LeNet.h5"): LeNet = load_model("H:/face_detection/LeNet.h5") print("model loaded") # 使用重构后的generator进行训练 LeNet.fit_generator(generator=get_train_batch([x_train1, x_train2], y_train, batch_size=100), steps_per_epoch=100, epochs=5) # 保存模型 LeNet.save("H:/face_detection/face_detection/LeNet.h5")