如何分批训练模型

时间:2018-10-29 17:21:13

标签: python tensorflow image-processing keras object-detection

我在python中尝试yolo模型。 要处理数据和注释,我要分批处理数据。

batchsize = 50

#boxList= []
#boxArr = np.empty(shape = (0,26,5))
for i in range(0, len(box_list), batchsize):
    boxList = box_list[i:i+batchsize]
    imagesList = image_list[i:i+batchsize]

    #to convert the annotation from VOC format
    convertedBox = np.array([np.array(get_boxes_for_id(box_l)) for box_l in boxList])

    #pre-process on image and annotaion
    image_data, boxes = process_input_data(imagesList,max_boxes,convertedBox)
    boxes = np.array(list(itertools.chain.from_iterable(boxes)))
    detectors_mask, matching_true_boxes = get_detector_mask(boxes, anchors)

此后,我想将我的数据传递给模型进行训练。 当我追加列表时,由于数组大小,它给出了内存错误。 当我追加数组时由于形状而导致尺寸错误。

我该如何训练数据以及应该使用model.fit()或model.train_on_batch()

1 个答案:

答案 0 :(得分:0)

如果您正在使用Keras通过一堆图像训练模型,则可以使用Train生成器和验证生成器,您要做的就是将图像放在相应的类文件夹中。看一个示例代码。也请看一下此链接,也许它可以帮助您https://keras.io/preprocessing/image/。除非我不理解,否则我希望我已经回答了您的问题sample keras code