BatchSize
更多信息
- 设置 BatchSizen 指定 n 个范例应一起处理
- 默认设置 BatchSize->Automatic 指定 BatchSize 应根据可用的 GPU 或系统内存等因素进行选择.
- 当通过编写 net[input,BatchSize->n] 对网络进行计算时,可指定 BatchSize. 如果通过 TargetDevice->"GPU" 也同时指定了 GPU 计算,这将变得很重要,因为在这种情况下,内存通常更受限制.
- 对于包含动态维度(通常指定为 "Varying")的网络,通常会自动将 BatchSize 设为 16.
- 可通过 "BatchSize" 属性从 NetTrainResultsObject 中获取训练的 BatchSize.
范例
打开所有单元 关闭所有单元基本范例 (1)
定义一个单层神经网络,并以 BatchSize 为300来训练该网络:
net = NetChain[{100, Tanh, 100, Tanh, 1}, "Input" -> "Scalar", "Output" -> "Scalar"];
trainingData = Table[i -> Sin[i], {i, -Pi, Pi, Pi / 300.}];
trained = NetTrain[net, trainingData, BatchSize -> 300]trained[Pi]属性和关系 (1)
在使用较大的 batch size 时, NetTrain 通常每秒处理更多的输入,代价是使用更多的内存. 训练一个 BatchSize 为 1 的简单网络:
net = LinearLayer[];
data = Thread[RandomReal[1, 2000] -> RandomReal[1, 2000]];trained = NetTrain[net, data, MaxTrainingRounds -> 4, BatchSize -> 1];//AbsoluteTimingBatchSize 为 1000:
trained = NetTrain[net, data, MaxTrainingRounds -> 4];//AbsoluteTiming这也可以通过返回每秒由 NetTrain 处理的平均范例看出:
NetTrain[net, data, "MeanExamplesPerSecond", MaxTrainingRounds -> 4, BatchSize -> 1]NetTrain[net, data, "MeanExamplesPerSecond", MaxTrainingRounds -> 4, BatchSize -> 1000]根据任务的不同,较大的 batch size 对最终所得网络的质量帮助不大,并可能在 GPU 上进行训练时耗尽可用内存. 此外,只要 batch size 足够大,足以给出梯度的低方差估计,则最好采用较小的 batch size,将给定的训练时间用来进行更频繁地更新.
技术笔记
相关指南
文本
Wolfram Research (2016),BatchSize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BatchSize.html (更新于 2018 年).
CMS
Wolfram 语言. 2016. "BatchSize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2018. https://reference.wolfram.com/language/ref/BatchSize.html.
APA
Wolfram 语言. (2016). BatchSize. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/BatchSize.html 年
BibTeX
@misc{reference.wolfram_2026_batchsize, author="Wolfram Research", title="{BatchSize}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/BatchSize.html}", note=[Accessed: 20-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_batchsize, organization={Wolfram Research}, title={BatchSize}, year={2018}, url={https://reference.wolfram.com/language/ref/BatchSize.html}, note=[Accessed: 20-June-2026]}