神經網絡越複雜 , 數據量越大 , 咱們須要在訓練神經網絡的過程上花費的時間也就越多. 緣由很簡單, 就是由於計算量太大了. 但是每每有時候爲了解決複雜的問題, 複雜的結構和大數據又是不能避免的, 因此咱們須要尋找一些方法, 讓神經網絡聰明起來, 快起來。那些能夠加速神經網絡訓練的方法就叫作優化器(Optimizer) 推薦閱讀:加速神經網絡訓練 (Speed Up Training)git
這個部分的理論知識實在太多了,我簡單的整理了一點點,詳見機器學習:各類優化器Optimizer的總結與比較 下面是TensorFlow中提供的相關優化器的APIgithub
tf.train.GradientDescentOptimizer
tf.train.AdadeltaOptimizer
tf.train.AdagradOptimizer
tf.train.AdagradDAOptimizer
tf.train.MomentumOptimizer
tf.train.AdamOptimizer
tf.train.FtrlOptimizer
tf.train.ProximalGradientDescentOptimizer
tf.train.ProximalAdagradOptimizer
tf.train.RMSPropOptimizer
複製代碼
② 在收斂軌跡方面bash
其實從上述的兩個可視化的例子中咱們就能夠看到SGD的速度應該是最慢的,可是這並不影響他是咱們在實際使用中用到的最多的優化器。畢竟在實際使用中速度並非惟一決定因素,準確率纔是。 因此說:網絡