如何通过一系列批次将大型Tensor喂入Model.fit?

时间:2019-04-04 19:25:01

标签: c# python tensorflow keras

我将训练数据作为两个Tensor对象(不是ndarray):(ENTIRE_DATASET_SIZE,FEATURE_NUM)的trainData和(ENTIRE_DATASET_SIZE,1)的trainValues(有是1个输出值)。

我目前正在像这样将它们喂入我的模型:

model.fit_dyn(trainData, trainValues,
    epochs: 36000,
    steps_per_epoch: 1,
    initial_epoch: startingEpoch,
    verbose: 2,
    validation_data: validation,
    validation_steps: validationSampleCount,
    callbacks: new ICallback[]{
        Run.TensorBoard,
        checkpoints,
    });

我正在考虑按照建议in some places将训练数据分成几批,尽管这些数据完全适合内存。

我尝试过:

const int BatchSize = 1000;
var trainBatches = tf.split(
    trainData,
    num_or_size_splits: BatchSize);
var trainValueBatches = tf.split(
    trainValues,
    num_or_size_splits: BatchSize);

然后将trainBachestrainValueBatches传递给fit,但是我似乎无法弄清楚必须为其他参数传递什么。似乎fit不喜欢Tensor对象的数组。

TensorFlow 1.12

0 个答案:

没有答案