如果我在一张(大)图像上训练我的模型,一步是否等于纪元?

Is one step equal to on epoch if i train my model on one (large) image?

我正在使用 tensorflow 对象检测实现主动学习管道 api。 因此,我从 xView 数据集中的一张图像开始(大小约为 3000x4000 像素)。

现在我正在训练我的 faster_rcnn 网络,批量大小为 1。 如果只有一张图片可以训练,batch size 为 1,那么每一步(打印在控制台上)是否等于一个 epoch?

假设在 20 个主动学习周期后,训练数据集中有 20 张图像,我训练了 19 步,最后一张图像从未被训练过,对吗?

如果图像数量增加但每个主动学习周期的步数保持不变,网络将永远不会对后来添加的图像进行训练,或者会在停止的地方恢复训练(例如图像 19)

您似乎正确理解了 epoch:这是一个训练过程,您在数据集中的每个图像上训练一次。如果你的批量大小等于数据集大小,那么,你每个时期有一个迭代。

如果你训练 19 步(batch size = 1)并且有 20 张图像,那么其中一张将被遗漏在 near-epoch 之外......但遗漏的图像不一定是 "last" 一个,("last" 取决于图像的排序方式)。这取决于您未指定的数据摄取软件。

这些输入包中的大多数都采用 "shuffle" 操作,该函数会在每个纪元开始时对数据集进行随机排序。 我还使用了一个按照你的建议执行的摄取包,从前一个停止的地方开始每一次通过(伪时代训练组)。每次数据集用完时,它还有一个重新洗牌或不重新洗牌的选项。

要获得明确的答案,您必须查看框架的文档以及为您的特定模型所做的配置选择。如果没有这样的文档,你就只能做我已经做过几次的事情:花十分钟的原始尖叫时间:-),然后阅读代码。