将数据批量发送到fit_generator

问题描述 投票:0回答:1

我想将生成器传递给fit_generator,该生成器将成批产生多维数组x和y。 x的尺寸为(1000000,200),y的尺寸为(1000000,2000)。我正在按帧分类。我当前的代码如下:

def my_generator():

    current = 0
    batch_size = 500
    for i in range(current, 1000000, batch_size):
        x_batch =x[i, :]
        y_batch=y[i, :]
        yield(x_batch, y_batch)

model.fit_generator(generator=(my_generator()), steps_per_epoch=2000, epochs=1, validation_data=(x_val, y_val))

但是我不相信我要向fit_generator函数发送正确的批次尺寸,或者我的代码不正确。谁能帮帮我?

python python-3.x keras generator
1个回答
0
投票

现在,您正在从xy中批量提取大小为1的批次。要获取完整批次,请更改以下行

        x_batch = x[i, :]
        y_batch = y[i, :]

至此

        x_batch = x[i:i + batch_size, :]
        y_batch = y[i:i + batch_size, :]

这将从i到(但不包括)i + batch_size抽取一个切片,而不是仅抽取一个单数组切片。

© www.soinside.com 2019 - 2024. All rights reserved.