为什么在GPU中分配批量大小



给定一个Keras模型(在Colab上(具有输入形状(None,256256,3(且batch_size为16,则为该输入形状分配的内存为16*256*256*3*数据类型(数据类型=2,4,8,取决于float16/32/64(。这就是它的工作原理。我的困惑是,对于给定的batch_size(=16(,可能已经分配了1*256*256*3,并且16个图像可能已经一个接一个地通过,并且最终的梯度可能已经被平均。

1(那么,分配是否取决于批大小,以便"batch_size"计算可以并行进行,而我上面提到的配置(1*256*256*3(将串行化,从而破坏GPU的目的

2(对于并行计算,CPU上会发生相同类型的分配吗(如果1(的答案是肯定的(

通常需要调整批量大小。

至于您的查询批量大小是依赖于数据的,当您使用批量时,您通常运行一个生成器对象,该对象批量加载数据,执行GD,然后继续下一步。

优选使用批处理梯度体面,因为它比GD 收敛得更快

此外,随着批量大小的增加,将加载更多的训练实例,增加内存分配,

是的,你可以使用并行计算来训练大批量,但总的来说,你做的是一样的,因为你每次都在计算整个批量,就像你在普通批量计算中所做的那样

CPU应该有核心,然后是的,否则你需要GPU,因为计算需要大量的功率。因为你在幕后所做的只是处理n维矩阵,计算偏导数,然后计算平方损失,并进一步更新权重值

最新更新