Как работает Mini Batch? - PullRequest
       64

Как работает Mini Batch?

0 голосов
/ 15 января 2020

У меня есть несколько вопросов о мини-партии.

Предположим, у нас есть два кода, как показано ниже

Первый код:

def custom():
   b = tf.convert_to_tensor([0], dtype=tf.float32)
   def cross_entropy(y_true, y_pred):
       for i in range(0,7):
           a = K.categorical_crossentropy(y_true[:,i,:], y_pred[:,i,;])
           b = b + a
   return b
return cross_entropy

Второй код:

def custom():
   b = tf.convert_to_tensor([0], dtype=tf.float32)
   c = tf.convert_to_tensor([0], dtype=tf.float32)
   def cross_entropy(y_true, y_pred):
       for i in range(0,7):
           g = tf.reduce_sum(y_true[:,l,:],axis=-1)
           g = tf.reduce_sum(g, axis=0)
           a = K.categorical_crossentropy(y_true[:,i,:], y_pred[:,i,;])
           b = b + K.sum(a)
           c = c + g
   return b/c
return cross_entropy

Как я понимаю, первый код вычисляет сумму потерь (не сумму партии, а некоторый индекс i). Затем они усредняют потери для всей партии, но более поздний процесс работает в бэкэнде и не показывается в этом коде.

Второй код вычисляет потери как первый, но код, очевидно, усредняет потери для партии размер. И затем они пытаются усреднить потери для всей партии снова в бэкэнде.

Есть ли какая-то ошибка в моем понимании?

Пожалуйста, дайте мне знать

...