Otimizadores são a classe estendida, que inclui informações adicionais para treinar um modelo específico. A classe do otimizador é inicializada com parâmetros fornecidos, mas é importante lembrar que nenhum Tensor é necessário. Os otimizadores são usados para melhorar a velocidade e o desempenho para treinar um modelo específico.
O otimizador básico do TensorFlow é -
tf.train.Optimizer
Esta classe é definida no caminho especificado de tensorflow / python / training / optimizer.py.
A seguir estão alguns otimizadores no Tensorflow -
- Descida do gradiente estocástico
- Descida do gradiente estocástico com recorte de gradiente
- Momentum
- Momento de Nesterov
- Adagrad
- Adadelta
- RMSProp
- Adam
- Adamax
- SMORMS3
Vamos nos concentrar na descida do Gradiente Estocástico. A ilustração para criar um otimizador para o mesmo é mencionada abaixo -
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
Os parâmetros básicos são definidos dentro da função específica. Em nosso capítulo subsequente, vamos nos concentrar na Otimização de Gradiente Descendente com implementação de otimizadores.