我必須訓練一個非常大的前饋神經網絡進行模式識別。網絡有10,000個輸入神經元,200個輸出神經元,它的隱藏層有5100個神經元。函數x /(1 + abs(x))被用作激活函數。訓練一個非常大的神經網絡
訓練數據集的大小爲100,000。
問題是需要很長時間來訓練神經網絡,這使得網絡的微調非常耗時。
兩個可能的選擇來向我提高訓練表現:
- 減少隱含層的大小介於500和1000這將大大減少所需的乘法運算的次數。但是我不確定這種降低是否會損害識別精度。獲得一個高性能的矩陣乘法庫(甚至可能引入OpenCL/CUDA),目前只實現了天真的矩陣乘法,這應該比仔細調整的要慢。
有沒有更好的選擇?我是ANN的新手,任何建議都會感激。
謝謝。
'天真矩陣乘法。那很不好。很壞。非常非常糟糕。使用BLAS。也許ATLAS – bolov
你想爲自己寫ANN嗎?否則應該有已經優化的ANN實現,您可以將其用於您的設計。 – MatthiasB
人們已經在幾十本書或者數百本書中就這個話題寫過建議...... – PlasmaHH