了解fit_generator(steps_per_epoch),validation_steps,evaluate_generator(步骤)和predict_generator(步骤)

时间:2019-07-29 13:13:29

标签: python tensorflow keras generator

我在项目中使用keras是新手。我一直在模型中使用generator

我真的很困惑我应该输入什么值

  

1)在fit_generator中:steps_per_epoch和validation_steps?

     

2)Evaluation_generator:步骤?

     

3)预测生成器:步骤?

我已经提到了keras documentation和其他几个stack1stack2问题。我听不懂更好的是,我可以提供有关数据形状的示例,以说明我目前的工作方式,并相应地回答我的问题。另外,如果我的理解有误,请更正

model.fit_generator(trainGen, steps_per_epoch=25, epochs = 100, validation_data=ValGen, validation_steps= 4)

第一季度:每个时期都有25 steps。对于每个步骤,trainGen都会产生形状为(244*100*4, 244*100*2)的元组并进行训练。

  

我的batch_size和我的batchessteps_per_epoch is 25是什么?

第二季度: 我知道val_acc and val_loss将在25th step of the an epoch的末尾计算。我选择我的validation_steps = 4。因此ValGen产生一个形状为(30*100*4, 30*100*2) 4 times at the end of 25th step of an epoch

的元组
  

我已任意选择validation_steps = 4.,但如何选择   validation_steps的正确数量? val_loss & val_acc如何   计算过的? (以单批或四次计算平均值   使用batch_size)

第三季度: 例如,在evaluate_generator & predict_generator中,生成器为这两个生成了元组形状(30*100*4, 30*100*2)

  

如何为两个steps参数选择正确的数字   evaluate_generator & predict_generator?在keras文件中,它表示为停止前从发生器产生的步骤总数(样本批次)? In my case what will the batches of samples ?

如果需要任何其他信息,请告诉我。

1 个答案:

答案 0 :(得分:2)

步骤不是您“选择”的参数,您可以将其计算为:

steps = number of samples / batch size

因此,这里您唯一可以选择的参数是批处理大小,该值选择为训练时模型不会用完内存的值。典型值在32到64之间。

对于训练集,使用训练集的样本数,然后将其除以训练批次大小,对于验证集,将验证集中的样本数除以验证批数。两个批次的大小可以相等。

这适用于所有使用生成器的函数。