потери тензорного потока и веса выборки

Два простых вопроса о потерях Tensorflow и весах выборки. Представьте, что у меня есть неглубокая полностью сверточная нейронная сеть со следующей моделью: Image(16x16x1) -> Conv2 (16x16x10) -> поэтому выход — вектор o[1][1][10] с 10 нейронами. Из-за пакета 32 у нас есть окончательный выходной тензор как [32][1][1][10] (все размеры тщательно проверены мной).

Итак, теперь вопросы:

  1. У меня есть опыт написания на C++ и понимание обратного распространения, поэтому я не понимаю, почему, например, потеря MSE в TF, использовать сокращение последнего измерения (см. https://www.tensorflow.org/api_docs/python/tf/keras/losses/MSE):

потеря = среднее (квадрат (y_true - y_pred), ось = -1)

Таким образом, для моего случая выходного тензора [32][1][1][10] после редукции будет сформирован тензор размерности [32][1][1]. Но как он будет распространять ошибку обратно через слои для каждого элемента из последнего измерения с размером [10], если он имеет их в среднем? Так что после усреднения мы получили скаляр, а не вектор. Как можно от скаляра до обратного распространения ошибки из [10] выходов? Обратите внимание, что эти элементы из [10] не могут быть усреднены из-за разного значения каждого элемента (один из них может быть длиной, другой скоростью и т. д.).

  1. Вопрос по выборочным весам. Абсолютно ничего из примеров из интернета. Я пытался реализовать простое взвешенное умножение элемента wize = выходной тензор [32][1][1][10] element_wize для весов выборки [32][1][1][10]. Насколько я понимаю, веса проб должны быть одинаковой размерности. Моя функция компиляции model.compile(..., sample_weigh_mode='temporal',...) Элемент x для model.fit берется из генератора. Таким образом, генератор дает три тензора X_train, Y_train и sample_weights. Все это работает очень странно и я не понимаю динамику. Также странно, что если я даю тензор sample_weights не с 10 выходами (может быть 1 или 100, так что любой), как количество выходов моей NN, он все равно как-то работает и не вызывает никаких ошибок или исключений.

    Так помогите мне, пожалуйста, прояснить для меня весь этот посох. Спасибо, Алексей.


person alexey    schedule 19.11.2020    source источник
comment
Еще нужны пояснения к моим вопросам. Ответ администратору - можно ли снова поставить этот вопрос в начало очереди вопросов? Я полагаю, что два вышеуказанных вопроса очень важны для понимания работы ТФ.   -  person alexey    schedule 30.11.2020