【问题标题】:Epoch size (in terms of iterations) with data augmentation caffe带有数据增强 caffe 的 Epoch 大小(以迭代计)
【发布时间】:2016-05-17 01:51:39
【问题描述】:

假设如果一个人有训练样本,并且他的批量大小是 500,那么完成 1 个 epoch 需要 2 次迭代。现在假设我正在使用 caffe 框架的动态数据增强,即;每个示例 10 种作物。
我的问题是 epoch 大小仍然会像上面的例子那样是 2 次迭代还是变成 2*10 = 20?

【问题讨论】:

    标签: neural-network deep-learning caffe


    【解决方案1】:

    一个时期是遍历训练数据一次所需的迭代次数。由于您增加了数据,因此您需要 10 倍以上的迭代才能完成一次训练数据的遍历。因此1 epoch = 2*10 iterations 现在。

    【讨论】:

    • 所以,如果我的批量大小是 100,那么在 1 次迭代中,只会覆盖 10 个真实的训练示例(不是作物)。我说的对吗?
    • @Shai 我在 Caffe source-code 上找不到任何证据。根据您的回答,如果我们从数据层中删除transform_param,我们应该期望更快的训练(更少的图像),对吗?我做了这个实验,将裁剪设置为仅比原始输入大小小 1 个像素,并且使用的训练时间和 GPU 内存几乎相同。我认为动态数据增强只是为了在不同时期之间改变图像,实际上增加了网络看到的图像数量。
    • @Berriel AFAIK,如果您在"Data" 层中从transform_param 中删除增强,您只需在每批中处理更多“真实”图像。但是,批量大小将保持不变,caffe 的迭代次数也将保持不变,因此您将不会看到运行时的实际减少。
    • @Shai 当然,我也预料到了。我的意思是,Deven 的评论似乎是错误的,不是吗?对于 100 的批大小,在 1 次迭代中,将使用 100 个不同的真实训练示例,每个训练示例都进行随机变换,对吗?我对此很感兴趣,因为它可能会导致 NVIDIA 的 DIGITS 出现错误,用户可以设置 epoch 数而不是迭代次数。
    • @Berriel whoo... 真的需要为此深入研究代码,或者从更可靠的来源获得答案。我目前没有资格。
    猜你喜欢
    • 2021-11-09
    • 1970-01-01
    • 2016-01-05
    • 2017-05-17
    • 2017-09-02
    • 2016-08-28
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    相关资源
    最近更新 更多