嗨,我想微調vgg對我的問題,但是當我嘗試訓練網絡我得到這個錯誤。微調vgg提高內存錯誤
OOM分配與形狀張量時[25088,4096]
淨具有這種結構:
我藉此tensorflow預訓練VGG實施code從這個site。
我只添加這個過程訓練網絡:
with tf.name_scope('joint_loss'):
joint_loss = ya_loss+yb_loss+yc_loss+yd_loss+ye_loss+yf_loss+yg_loss+yh_loss+yi_loss+yl_loss+ym_loss+yn_loss
# Loss with weight decay
l2_loss = tf.add_n([tf.nn.l2_loss(v) for v in tf.trainable_variables()])
self.joint_loss = joint_loss + self.weights_decay * l2_loss
self.optimizer = tf.train.AdamOptimizer(learning_rate=self.learning_rate).minimize(joint_loss)
我嘗試了批量大小減少到2而不是工作,我得到了同樣的錯誤。錯誤是由於無法在內存中分配的大張量引起的。如果我在沒有最小化網絡作品的情況下提供一個值,我只在火車上得到這個錯誤。我怎樣才能避免這個錯誤?我如何節省顯卡的內存(Nvidia GeForce GTX 970)?
UPDATE:如果我使用GradientDescentOptimizer訓練過程的開始,而不是如果我使用AdamOptimizer我得到的內存錯誤,似乎GradientDescentOptimizer使用較少的內存。