TensorFlow|Tensorflow 神经网络训练加速

如何加快收敛速度?

  1. 使用GPU
    越是复杂的网络,GPU的性能提高也明显。使用GPU是最有效的提高收敛速度的方法
  2. 【TensorFlow|Tensorflow 神经网络训练加速】使用model.fit()
    使用tensorflow提供的model.fit()训练速度非常快,比自己编写的算法要快很多。凡是能够直接应用的,一定使用tensorflow提供的函数与方法。
  3. 使用@tf.function
    如果必须要使用定制化的算法,可以在关键的地方使用@tf.function,大概可以提高1倍的训练速度。@tf.function 一般修饰梯度带所在的函数,也可以是计算损失函数。比如:
@tf.function def train_ae(x): with tf.GradientTape() as tape: x_rec_logits = model(x) # 把每个像素点当成一个二分类的问题; rec_loss = tf.losses.binary_crossentropy(x, x_rec_logits, from_logits=True) # rec_loss = tf.losses.MSE(x, x_rec_logits) rec_loss = tf.reduce_mean(rec_loss)grads = tape.gradient(rec_loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) return rec_loss

    推荐阅读