👍🏻5 советов DL-разработчику по TensorFlow и Keras
• используйте правильные типы данных, чтобы сэкономить 50-90% памяти. Например, float32 вместо float64 или unit8 вместо int64.
• кодируйте метки с помощью моделей однократного кодирования (one-hot encoding) и авторов, которые выводят значение для каждого класса. Эта практика в целом безопасна и правильна. Для больших наборов данных или множеством классов используйте разреженные метки, хранящиеся в форме индекса: например, седьмой класс представлен числом семь, а не вектором нулей с седьмой позицией, установленной в единицу. Для задачи на 1000 классов это на несколько порядков компактнее. Число uint16 против тысячи чисел с плавающей запятой. Большинство наборов данных по умолчанию упакованы с разреженными метками, и мы заставляем их использовать горячие. Также полезна разреженная кросс-энтропия - вариант категориальной кросс-энтропии, который сравнивает выходные данные вашей модели в одном горячем формате с достоверными метками в формате индекса. Это тоже сэкономит много памяти.
• Eager-режим поможет отследить первоисточник ошибок или сосредоточиться на более широкой картине, прежде чем сузить их до проблем графического режима, например, с использованием правильных типов данных. Это актуально для внутренних ошибок TensorFlow с несовместимыми типами данных. Eager Mode пригодится и для tf.data, т.к. этот API всегда отслеживает все в графическом режиме. Хотя эта функция еще помечена как экспериментальная, начиная с TensorFlow 2.6, ее можно активировать и использовать для отладки в API tf.data.
• Используйте Lambda Callback для отслеживания прогресса обучения, чтобы внедрить код, который будет запускаться в конце эпохи. В случае «медленных» показателей можно параметр эпохи, чтобы пропустить выполнение кода в нечетные эпохи или выполнять его с большим шагом, например, каждые десять эпох.
• Сделайте свою библиотеку, например, в файле Layers.py со всеми пользовательскими данными, чтобы использовать их в текущих и будущих проектах.
https://towardsdatascience.com/taking-keras-and-tensorflow-to-the-next-level-c73466e829d3
Post #120
349