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.