我正在训练970个样本并对243个样本进行验证。
在Keras中安装模型以优化val_acc时,批量大小和时代数量应该有多大?根据数据输入大小,是否有任何经验法则?
答案 0 :(得分:32)
由于你有一个非常小的数据集(大约1000个样本),你可能使用32的批量大小是安全的,这是非常标准的。除非您对数十万或数百万的观察进行培训,否则它不会对您的问题产生巨大影响。
回答有关批量大小和时代的问题:
一般:较大的批量大小会导致培训进度加快,但并不总是快速收敛。较小的批量大小训练较慢,但可以更快地收敛。它肯定是依赖于问题的。
总的来说,,模型在更多的训练时代得到改善。当它们收敛时,它们会准确地开始稳定。尝试50这样的东西并绘制纪元数(x轴)与精度(y轴)的关系图。你会看到它的平衡点。
您的数据的类型和/或形状是什么?这些图像,还是表格数据?这是一个重要的细节。
答案 1 :(得分:7)
上面的好答案。每个人都提供了很好的意见。
理想情况下,这是应该使用的批量大小的顺序:
{1, 2, 4, 8, 16} - slow
{ [32, 64],[ 128, 256] }- Good starters
[32, 64] - CPU
[128, 256] - GPU for more boost
答案 2 :(得分:6)
我使用Keras对语音数据执行非线性回归。我的每个语音文件都为我提供了一个文本文件中25000行的功能,每行包含257个实数值。我使用批量大小100,纪元50来训练Keras中的Sequential
模型,其中有1个隐藏层。在50个训练时期之后,它很好地收敛到低val_loss
。
答案 3 :(得分:3)
我使用Keras对市场组合建模进行非线性回归。我获得了最佳结果,批量大小为32,epochs = 100,同时在Keras中训练了一个带有3个隐藏层的Sequential模型。通常批量大小为32或25是好的,除非您有大数据集,否则epochs = 100。在大型数据集的情况下,批量大小为10,时期b / w为50到100。 上面提到的数字对我来说也很好。
答案 4 :(得分:0)
我有大约40,000个数据点。我发现使用更大的批次大小可以缩短训练模型所需的时间。我正在使用10,000的批处理大小。.使用非常大的批处理大小有什么弊端吗? (我正在使用keras)
答案 5 :(得分:-4)
-(void)didFinishInteractingWithScrubber:(NSScrubber *)scrubber {
NSLog(@"Manipulation ended\n");
NSAnimationContext*c = NSAnimationContext.currentContext;
[c setCompletionHandler:^{
NSLog(@"Inertial scrolling stopped!\n");
}];
}