Связаны ли рассчитанные потери со всеми выборками или нет?

#deep-learning #tensorflow

#глубокое обучение #tensorflow

Вопрос:

Я новичок в глубоком обучении и Tensorflow. Я получил несколько основных вопросов с приведенным ниже примером кода :

 for j in range(no_of_training_sample):
    ...
    ...
    _, _loss = sess.run([train_step, loss], {X: x, Y: y})
  
  1. Возвращаемое значение _loss — это потери для каждой выборки данных или сумма от выборки данных 0 до выборки данных j?

  2. Когда будут обновляться параметры w, h и b после каждой sess.run() ?

  3. Как я могу изменить код, чтобы превратить его в мини-пакет?

Я попытался выполнить поиск в Интернете, но не могу получить от него быстрые ответы.

Ответ №1:

_loss это возвращаемое значение loss (второй элемент в списке, который вы передаете в качестве первого аргумента run функции) после выполнения шага графика вычислений (TF основан на «статическом» выполнении графиков вычислений, которые представляют операции, которые необходимо выполнить).

Потери могут быть определены различными способами (например, вы можете определить их как взаимную энтропию между прогнозируемыми значениями и целевыми значениями), поэтому результат, который вы получите в _loss , будет зависеть не только от данных, которые вы передаете в сеанс в качестве второго аргумента (в вашем случае {X: x, Y: y} ), но также и от способа вычисления потерь.

Параметры вашей сети обновляются при вызове на графике вычислений, например, функции minimize .

Чтобы изменить код и заставить его использовать мини-пакеты (а не полный набор данных сразу), вместо передачи x и y в заполнители X и Y в выражении {X: x, Y: y} (при вызове , _loss = sess.run([train_step, loss], {X: x, Y: y}) ), вам нужно будет создать «итератор», который предоставляет вам подмножество x (и соответствующее y ), которое вы можете передать X Y соответственно). На самом деле вы можете использовать один из новых TF API, которые облегчают эту задачу (вместо создания итератора с нуля).

(Если бы вы задали только один вопрос, мой ответ мог бы быть более подробным).