Resource exhausted error:
OOM when allocating tensor?with shape[***,*****,***] and type float
Resource exhausted
顯卡內(nèi)存不夠:
解決方法精髓:making your model smaller or reducing your batch size
1. batch_size太大,內(nèi)存不夠痪宰,最快的嘗試解決方案嗡善。
2.如果batch_size=1了蜕衡,還是不行,那就是tensor太大了啊谱净,而我的GPU顯存只有7G。
例如我embedding之后得到的tensor shape是: (None, 60000, 60)。
此時(shí):首先观蜗,確保代碼邏輯正確性。這種情況下衣洁,就減少一些影響網(wǎng)絡(luò)大小的參數(shù)(例如embedding dim等墓捻,提示那個(gè)tensor太大就減小哪個(gè)),先確保代碼邏輯的正確性。不要太自信了砖第,當(dāng)你把所有參數(shù)都調(diào)的很小還跑不動(dòng)撤卢,你就要懷疑你的網(wǎng)絡(luò)了。
tf.float64 -> tf.float32 -> tf.float16?for all your variables.?
如果參數(shù)都小的時(shí)候跑通了梧兼,逐步增大各個(gè)參數(shù)放吩。終極方案就是加GPU了。
在這個(gè)過(guò)程中還發(fā)現(xiàn)一個(gè)問(wèn)題羽杰,當(dāng)tensor非常大時(shí)渡紫,第一個(gè)epoch時(shí)特別慢,要30分鐘左右考赛,后面的epoch會(huì)好點(diǎn)惕澎,兩三分鐘。聽(tīng)說(shuō)增加SGD就可以了颜骤。其實(shí)還是網(wǎng)絡(luò)大唧喉,而內(nèi)存小唄。