Глубокое обучение на Python. 2-е межд. издание
Қосымшада ыңғайлырақҚосымшаны жүктеуге арналған QRRuStore · Samsung Galaxy Store
Huawei AppGallery · Xiaomi GetApps

автордың кітабынан сөз тіркестері  Глубокое обучение на Python. 2-е межд. издание

В следующем листинге показано, как выглядит простая сверточная нейронная сеть. Это стек слоев Conv2D и MaxPooling2D. Как она действует, рассказывается чуть ниже. Мы построим модель с помощью функционального API, с которым вы познакомились в предыдущей главе.
Комментарий жазу
можно написать свою функцию шага обучения, а все остальные задачи переложить на фреймворк. Для этого достаточно переопределить метод train_step() класса Model, который вызывается функцией fit() для обработки каждого пакета данных, и использовать fit() как обычно, а функция будет запускать ваш алгоритм обучения.
Комментарий жазу
в процессе отладки код лучше запускать без декоратора @tf.func­tion. Так проще находить и устранять ошибки. Закончив отладку, код можно ускорить, добавив декоратор @tf.function перед функциями, реализующими шаг обучения и шаг оценки
Комментарий жазу
Синтаксис применения такой оптимизации прост: добавьте @tf.function к любой функции, которую нужно скомпилировать перед выполнением
Комментарий жазу
скомпилировать код Tensor­Flow в граф вычислений, который можно оптимизировать глобально, что не получится сделать при построчной интерпретации кода.
Комментарий жазу
tape.gradients(loss, model.trainable_weights). В действительности слои и модели обладают двумя видами весов, такими как: • обучаемые веса — предназначены для обновления на этапе обратного распространения ошибки, чтобы минимизировать потери модели, такие как ядро и систематическая ошибка слоя Dense; • необучаемые веса — предназначены для обновления на этапе прямого прохода слоями, которым они принадлежат. Например, если вы решите добавить в свой слой счетчик пакетов, обработанных к данному моменту, то эта информация будет храниться в необучаемом весе и после обработки каждого пакета ваш слой будет увеличивать счетчик на единицу.
Комментарий жазу
Некоторые слои Keras (такие как Dropout) во время обучения и во время прогнозирования ведут себя по-разному. Метод call() таких слоев принимает логический аргумент training. Вызов dropout(inputs, training=True) приведет к сбросу некоторых активаций, а вызов dropout(inputs, training=False) — нет. Кроме того, метод call() функциональных и последовательных моделей тоже поддерживает аргумент training. Важно не забывать передавать training=True при выполнении прямого прохода модели Keras!
Комментарий жазу
шаг 1 (прямой проход) выполнялся инструкцией predictions = model(input), а шаг 2 (получение градиентов, вычисленных с помощью GradientTape) — инструкцией gradients = tape.gradient(loss, model.weights).
Комментарий жазу
подход с использованием метода fit() ориентирован исключительно на обучение с учителем, когда заранее известны цели (также называемые метками или аннотациями), связанные с входными данными, а потери вычисляются как функция этих целей и прогнозов модели
Комментарий жазу
простой способ использовать TensorBoard с моделью Keras и методом fit() — определить обратный вызов keras.callbacks.TensorBoard.
Комментарий жазу