就像许多人在开发深度学习模型一样,我的硬件资源(即GPU内存)也使我受阻。我有一个音频分类问题,为此我正在尝试许多RNN。数据非常大,我只能使用小批量,并且还必须限制lstm的大小。我知道许多人使用频谱图或其他方法向网络提供更多压缩数据,但是我特别想知道如何使用原始数据。
这是我目前正在以大约4个批次进行的操作:
$my_array = json_decode(json_encode( $my_array, JSON_NUMERIC_CHECK ));
理想情况下,我想为GPU上的批次计算每个参数的梯度,然后将其移至RAM,同时计算下一批的梯度。经过一些批次后,我想平均每个参数的梯度,并使用它们来更新网络。
我从最初的github页面得到了这个想法,该页面描述了类似于在多个GPU上并行化的内容:https://github.com/tensorflow/models/tree/master/research/inception
答案 0 :(得分:0)
使用tf.Variable对象存储渐变。将它们放在CPU上。