Nano Hash - криптовалюты, майнинг, программирование

Почему после тренировки модель кераса становится больше?

Я замечаю, что создаю модель, используя tensorflow.keras.Sequential(), сохраняю ее, и размер файла составляет около 5 МБ, но после того, как я вызываю model.fit(..), размер файла увеличивается до 17 МБ. Я скопировал модель, чтобы уменьшить размер файла и убедиться, что точность такая же.

У меня вопрос: что именно содержит дополнительные 12 МиБ, которые производит fit()? Как я могу получить доступ к такому контенту? Если я удалю эти лишние 12 МБ, может ли это повлиять на точность прогноза или какой-либо странный побочный эффект?

См. Код моего эксперимента здесь: https://nbviewer.jupyter.org/github/off99555/TensorFlowExperiments/blob/master/test-save-keras-model.ipynb


Ответы:


1

Ответ в том, что это размер состояния оптимизатора Adam. Когда я меняю оптимизатор на SGD (ванильный оптимизатор), размер больше не велик. Насколько мне известно, оптимизатор Adam поддерживает информацию о градиентах предыдущих итераций обучения. И размер градиента может быть таким же большим, как и размер модели. Вот почему это приводит к тому, что размер файла такой большой.

Имея это в виду, при сохранении модели не забудьте установить include_optimizer=False, если вам кажется, что вы используете оптимизатор, поддерживающий большое состояние, подобное Адаму.

Однако будьте осторожны, это означает, что вы не можете загрузить модель и продолжить ее обучение снова, ее следует использовать только для вывода.

16.07.2019
  • невозможно загрузить модель и продолжить ее обучение - false; вам просто нужно снова позвонить .compile(). Однако это может снизить производительность поезда, поскольку информация о моментах может быть важна для следующей итерации подгонки - в этом случае рекомендуется использовать разминку. 15.01.2020
  • да. Это ложь. Но я полностью осознаю, что вы можете выполнить повторную компиляцию, что повлияет на производительность обучения. Поэтому я не предлагаю тренировать его так снова. Если вы хотите продолжить обучение, имеет смысл сэкономить с помощью оптимизатора. 15.01.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..