TensorFlow - optymalizatory

Optymalizatory to klasa rozszerzona, która zawiera dodatkowe informacje potrzebne do trenowania określonego modelu. Klasa optymalizatora jest inicjowana z podanymi parametrami, ale należy pamiętać, że nie jest potrzebny żaden Tensor. Optymalizatory służą do poprawy szybkości i wydajności podczas treningu określonego modelu.

Podstawowym optymalizatorem TensorFlow jest -

tf.train.Optimizer

Ta klasa jest zdefiniowana w określonej ścieżce tensorflow / python / training / optimizer.py.

Oto kilka optymalizatorów w Tensorflow -

  • Stochastyczne zejście gradientowe
  • Stochastyczne opadanie gradientu z obcinaniem gradientu
  • Momentum
  • Pęd Niestierowa
  • Adagrad
  • Adadelta
  • RMSProp
  • Adam
  • Adamax
  • SMORMS3

Skoncentrujemy się na zejściu ze stochastycznego gradientu. Ilustracja przedstawiająca tworzenie optymalizatora dla tego samego jest wymieniona poniżej -

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

Podstawowe parametry są zdefiniowane w ramach określonej funkcji. W kolejnym rozdziale skupimy się na optymalizacji gradientu zejścia z wdrożeniem optymalizatorów.