TensorFlow - Ottimizzatori

Gli ottimizzatori sono la classe estesa, che include informazioni aggiuntive per addestrare un modello specifico. La classe optimizer viene inizializzata con parametri dati, ma è importante ricordare che non è necessario alcun tensore. Gli ottimizzatori vengono utilizzati per migliorare la velocità e le prestazioni per l'addestramento di un modello specifico.

L'ottimizzatore di base di TensorFlow è:

tf.train.Optimizer

Questa classe è definita nel percorso specificato di tensorflow / python / training / optimizer.py.

Di seguito sono riportati alcuni ottimizzatori in Tensorflow:

  • Discesa stocastica in gradiente
  • Stocastico Discesa gradiente con clipping gradiente
  • Momentum
  • Lo slancio di Nesterov
  • Adagrad
  • Adadelta
  • RMSProp
  • Adam
  • Adamax
  • SMORMS3

Ci concentreremo sulla discesa Stochastic Gradient. L'illustrazione per creare l'ottimizzatore per lo stesso è menzionata di seguito:

def sgd(cost, params, lr = np.float32(0.01)):
   g_params = tf.gradients(cost, params)
   updates = []
   
   for param, g_param in zip(params, g_params):
      updates.append(param.assign(param - lr*g_param))
   return updates

I parametri di base sono definiti all'interno della specifica funzione. Nel capitolo successivo, ci concentreremo sull'ottimizzazione della discesa del gradiente con l'implementazione di ottimizzatori.