Keras Tuner - автоматическая оптимизация гиперпараметров нейросети | Нейросети на Python

Поділитися
Вставка
  • Опубліковано 29 січ 2025

КОМЕНТАРІ • 105

  • @AndreySozykin
    @AndreySozykin  5 років тому +14

    Обновил ноутбук в Colab для TensorFflow 2.x и установку keras tuner из пакета, а не исходников. Работающий ноутбук - colab.research.google.com/drive/1m_8puwuGg9C7LWChv4YvZEmAlocGC7nG .
    В KerasTuner немного изменился API, поэтому код в ноутбуке отличается от кода в видео.

    • @satoshigvozdeji6321
      @satoshigvozdeji6321 4 роки тому

      Здравствуйте, Андрей! Можно вопрос ?

  • @dmytroberezhnyi717
    @dmytroberezhnyi717 4 роки тому +5

    Здравствуйте! Эта лекция была потрясающяя! Спасибо вам за ваши труды!

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Пожалуйста! Рад, что нравится!

  • @stephanie5100
    @stephanie5100 4 роки тому +4

    Спасибо, что записываете подобные лекции. Я так счастлива от того, что слушаю как писать нейросети и понимаю, что происходит; у нас в университете намного хуже рассказывают.

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Пожалуйста! Рад, что нравится!

  • @KisaMissa_4
    @KisaMissa_4 4 місяці тому

    Золото! Спасибо огромное за лекцию!

  • @michzouthins1657
    @michzouthins1657 5 років тому +8

    Спасибо! Очень доступно, и познавательно!
    Прекрасно и даже работает при копировании в свой аккаунт!

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Пожалуйста!
      Работать действительно должно, я проаерял до и после запуска.

    • @АнтонС-я9ч
      @АнтонС-я9ч 4 роки тому

      @@AndreySozykin А как сделать такое же для решения задачи регрессии?)

  • @ceslavas9770
    @ceslavas9770 3 роки тому +3

    Лайк однозначно. Андрей, огромное спасибо за ваши труды!!!

    • @AndreySozykin
      @AndreySozykin  3 роки тому

      Спасибо за лайк, это помогает!

  • @PavelShvetsov
    @PavelShvetsov 3 роки тому +1

    за один вечер на 1.75 скорости узнал больше, чем если бы читал серию статей. очень круто. спасибо.

    • @AndreySozykin
      @AndreySozykin  3 роки тому +1

      Пожалуйста. Рад, что нравится!

  • @iKostanCom
    @iKostanCom 4 роки тому +7

    Hi. It is a great video tutorial. However, I think that you could continue further and show some more tuning examples. Thanks.

  • @maksimsakharov9250
    @maksimsakharov9250 3 роки тому +1

    Коротко и ясно. Спасибо

  • @bariors98
    @bariors98 5 років тому +1

    Андрей, большое спасибо за ваши видео

  • @shaha2411
    @shaha2411 5 років тому +1

    Спасибо большое, Андрей Владимирович!

  • @user-rl5ih4gv6i
    @user-rl5ih4gv6i 4 роки тому +3

    Я туговатый человек и далеко не все понял, но лекции очень понравились) Спасибо большое

  • @michaeltitov8390
    @michaeltitov8390 5 років тому +1

    Очен впечатлило! Немного долго работает! Но очень доходчиво! И тоже работает на colab!

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Да, работает долго, потому что много комбинаций гиперпараметров нужно перебирать.
      Keras Tuner недавно появился. Надеюсь, со временем производительность повысят.

    • @michaeltitov8390
      @michaeltitov8390 5 років тому +1

      @@AndreySozykin А такой вопрос если у меня есть мои объекты и я хотел бы на них обучить свой вариант и затем настроить распознавание. А затем попытаться распознать? Как в примере с игральными картами! Есть картинки на которых выделяю и отдельно маркирую по две-семь карт! Как в этом примере:
      github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10
      или как в этом примере с табличками
      pylessons.com/TensorFlow-CAPTCHA-solver-training/
      И как можно в вашем примере подключить визуализацию, типа панели инструментов гистограммы TensorBoard?
      Заранее спасибо за ответ!
      Я думаю, это будет интересно не только мне.
      Я пару недель назад, наконец решился этим вопросом заняться! Но все примеры в сети работают только в сети и на готовых данных! Попытка поставить свои данные, пока к результату не приводят! Очень много сыпет ошибок. То модуля уже нет. То модуль не совместим и т.д. и т.п.
      Вопросов пока гораздо больше чем ответов! А ошибки, которые появляются, уж слишком свежие, что бы найти на них решение!
      Извините за перегруз!

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      По ссылкам не задача классификации, а более сложная задача обнаружения объектов на изображении. Если есть желание использовать TensorFlow Object Detection API, то вот пример его обучения на собственном наборе данных - towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9

    • @michaeltitov8390
      @michaeltitov8390 5 років тому

      ​@@AndreySozykin Спасибо за ссылку. Посмотрю.
      У большинства найденных и как то работающих примеров в основном одна проблема почему не запускаются, и это модуль флагов командной строки:
      flags = tf.app.flags
      AttributeError: module 'tensorflow' has no attribute 'app'
      они похоже этот модуль чем то заменили, но пока не нашел чем.
      Конечно можно и без параметров передаваемых в строке, но хотелось бы с ними! ;)
      Похоже это после обновления TensorFlow до 2.0, там вроде как то можно обойти несовместимость с предыдущими версиями используя @tf.function от AutoGraph( как по мне, то это больше наворот в сторону оптимизации потоков), но тут похоже сам модуль уже отсутствует.

    • @michzouthins1657
      @michzouthins1657 5 років тому

      @@michaeltitov8390 Кстати ваш вопрос немного решился
      выполнением в контейнере
      !pip install absl-py
      и заменой в файле строки
      flags = tf.app.flags
      на
      from absl import flags
      from absl import logging
      from absl import app
      # flags = tf.app.flags
      Вдруг кому то пригодится!

  • @glaviznin
    @glaviznin 5 років тому +2

    Наконец то добрался. Спасибо за видио. 1. А как график выводить? У меня фигачит перебором? 2. И главное как в лучших моделях узнать какие функции активации?

  • @PhantomGlade
    @PhantomGlade 5 років тому +1

    Спасибо вам огромное желаю вам здоровье

  • @МихаилТихонов-щ5ф
    @МихаилТихонов-щ5ф 5 років тому +1

    Спасибо за информацию!

  • @МаксимГусев-ь6в
    @МаксимГусев-ь6в 5 років тому +2

    Большое спасибо =)

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Пожалуйста!

    • @МаксимГусев-ь6в
      @МаксимГусев-ь6в 5 років тому

      ​@@AndreySozykin подскажите, пожалуйста, почему не работает ?
      при создании tuner пишет, что
      "RuntimeError: Model-building function did not return a valid Model instance."
      def build_model(hp):
      model = Sequential()
      model.add(Dense(units=hp.Int('input_unit', min_value=128, max_value=1024, step=32), input_dim=len(npArray_npArrayX_train[0]),
      activation='relu'))
      model.add(Dense(len(npArray_npArray_y_train[0]), activation='softmax'))
      model.compile(
      optimizer='SGD',
      loss='categorical_crossentropy',
      metrics=['accuracy']
      )
      return model
      tuner = RandomSearch(
      build_model,
      objective='val_accuracy',
      max_trials=10,
      directory='test_directory')

  • @texadmin4749
    @texadmin4749 3 роки тому

    Агонь

  • @glaviznin
    @glaviznin 5 років тому +1

    где ж ты раньше то был. я все это циклами делал:)

    • @АндрейИсаков-л5щ
      @АндрейИсаков-л5щ 5 років тому +1

      Новая фича-то. "Раньше" её просто не было;)

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Родной инструмент для Keras, действительно, недавно появился. Но раньше был Hyperas и другие сторонние инструменты.

  • @ВалентинаДворжак-ф6к

    Спасибо большое, очень доступно объясняете. У меня в пространстве 4 гиперпараметров получились такие результаты: |-activation: relu
    |-optimizer: adam|-units_hidden: 576|-units_input: 512 accuracy: 0.8894
    Единственное выдает ошибку при попытке создания цикла по смене количества промежуточных слоев : for i in range(hp.Range('num_layers', 2,5)): AttributeError: 'HyperParameters' object has no attribute 'Range'

    • @AndreySozykin
      @AndreySozykin  4 роки тому +1

      API KerasTuner изменился. Вместо Range сейчас нужно писать Int. Пример на сайте Keras Tuner - github.com/keras-team/keras-tuner/blob/master/README.md

    • @ВалентинаДворжак-ф6к
      @ВалентинаДворжак-ф6к 4 роки тому

      @@AndreySozykin спасибо, все получилось ;)

  • @АндрейИсаков-л5щ
    @АндрейИсаков-л5щ 5 років тому +1

    Кстати, в KaggleNotebooks не надо Тензорфлоу переустанавливать - там уже 2.0 из коробки. И вообще по моим наблюдениям Kaggle часто удобнее Colab'а бывает :)

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Да, особенно для соревнований Kaggle.

  • @mariagorovik7447
    @mariagorovik7447 3 роки тому +1

    Спасибо большое за лекцию! Аналогов в интернете не нашла)
    Подскажите пожалуйста как посмотреть гиперпараметры полученных моделей (функцию активации, оптимизатор)

    • @mariagorovik7447
      @mariagorovik7447 3 роки тому +2

      Я нашла) tuner.results_summary()
      Может кому-то поможет )

  • @EvgeniyMihaylichenko
    @EvgeniyMihaylichenko 4 роки тому +1

    Однозначно лайк! Благодарю. Единственный вопрос. Как сделать вывод таким же красивым как у вас?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Спасибо!
      Я ничего специального для настройки вывода не делал.

  • @cjsoa
    @cjsoa 5 років тому +1

    Полезная вещь

  • @user-xl2tf4gq1g
    @user-xl2tf4gq1g 5 років тому +1

    Спасибо большое за цикл видеоуроков, очень хорошо объясняете! У меня вопрос: как лучше сделать такую сеть, которая будет в начале выделять, какие объекты вообще существуют на картинке, а затем эти объекты соотносить к определенной категории? число объектов произвольное. Какие архитектуры использовать для этого?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Эта задача называется Object Detection. Самая популярная архитектура - YOLO. Также можно использовать TensorFlow Object Detection, вот видео - ua-cam.com/video/1KzKqxx-s-Q/v-deo.html

    • @user-xl2tf4gq1g
      @user-xl2tf4gq1g 5 років тому

      @@AndreySozykin спасибо огромное!

  • @apiscale
    @apiscale 5 років тому +2

    Спасибо! Только непонятно как увидеть ВСЕ параметры наилучших трех моделей. В model.summary() выводится только количество слоев! А как понять с какими функциями активации и оптимизации они были просчитаны?

    • @VladKochetov
      @VladKochetov 4 роки тому +1

      Использовать модель можно без этого, смотрите:
      model = tuner.get_best_models(num_models=1)[0]
      model.predict(........)
      Так мы добыли сеть для использования

    • @ВалентинаДворжак-ф6к
      @ВалентинаДворжак-ф6к 4 роки тому

      вот я тоже искала другие гиперпараметры. Можно их увидеть выше в tuner.results_summary(). Но это легко, когда 10 запусков, их всех пересмотреть ;)

  • @АлексейСмирнов-к3ъ4е
    @АлексейСмирнов-к3ъ4е 5 років тому +4

    Добрый день, спасибо за объяснение. Пытался повторить Ваш скрипт, однако столкнулся с ошибкой: Runtime error. Too many failed attempts to build model.
    Ошибка выходит на этапе создания тюнера, может сталкивались с таким?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Возможно, ошибка при описании нейросети, поэтому tuner не может её создать.

    • @amelitechn2135
      @amelitechn2135 5 років тому

      @@AndreySozykin Столкнулась с такой же проблемой. Первой из списка ошибок выводится:
      AttributeError: module 'tensorflow' has no attribute 'get_default_graph'

  • @ИванПетров-и5э
    @ИванПетров-и5э 4 роки тому

    Здравствуйте, Андрей! Если сделать keras tuner для GRU и LSTM, будут какие-то изменения в коде или всё также? Спасибо!

  • @ЮрийЛогунов-ь8б
    @ЮрийЛогунов-ь8б 4 роки тому +1

    Андрей, как сделать тензор данных керас из файла csv?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Можно с помощью pandas загрузить данные из файла csv, а затем преобразовать DataFrame в тензор.

  • @vladislavb5471
    @vladislavb5471 5 років тому +1

    Андрей, здравствуйте. Я попытался скомпилировать Ваши последние изменения в коде, однако столкнулся с ошибкой на этапе создания тюнера.
    Traceback (most recent call last):
    File "/content/keras-tuner/kerastuner/engine/tuner.py", line 575, in _build_model
    model = self.hypermodel.build(hp)
    File "", line 11, in build_model
    model.add(layers.Dense(units=hp.Range('units_' + str(i),
    NameError: name 'layers' is not defined
    [Warning] Invalid model 1/5
    и так для всех 5 итераций цикла

    • @AndreySozykin
      @AndreySozykin  5 років тому +2

      Вот причина ошибки:
      NameError: name 'layers' is not defined
      В примере я импортировал не keras.layers, а Dense напрямую. Нужно писать так:
      model.add(Dense(units=hp.Range('units_' + str(i),

  • @speekflayder
    @speekflayder 5 років тому +1

    Приветствую!
    Были внесены какие то изменения вероятно в Keras tuner. Теперь ваш ноутбук выдает ошибку "
    TypeError: HTML expects text, not " и не показывает результаты тестирования сети. на моем пк такая же проблема..

    • @speekflayder
      @speekflayder 5 років тому +1

      Вот ссылка с гитхаба на исправление ошибки
      ищем папку kerastuner, далее меняем строки в файле по инструкции из ссылки. помогло частично, все равно не дает выполнить больше одного триала, но хотя бы дает посмотреть на результаты
      github.com/keras-team/keras-tuner/commit/b397422d4195b0371abcc59cbba7309cde090e5c

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Да, Keras Tuner быстро изменяется. Уже поменялся API и есть ошибки. Надеюсь, со временем исправят. Так всегда с новыми продуктами.

    • @speekflayder
      @speekflayder 5 років тому

      TypeError: list indices must be integers or slices, not NoneType
      и
      TypeError: 'numpy.float64' object cannot be interpreted as an integer
      Решены следующим образом. Добавляем к выводу функции hp.Int размерность int
      в строках цикла и вообще где вы вызываете hp.Int.
      было "for i in range (hp.Int('num_layers',1 ,3)):"
      а должно стать "for i in range ( int(hp.Int('num_layers',1 ,3)) ):"
      Теперь все функционирует на 100%

  • @alexandrchernov3927
    @alexandrchernov3927 5 років тому +1

    Андрей здравствуйте, при создании Tuner на первом примере в видео выдает ошибку AttributeError: 'HyperParameters' object has no attribute 'Range' , и предупреждение Invalid model 1/5
    после пяти попыток выдает RuntimeError: Too many failed attempts to build model.
    При запуске "Ноутбука в Colab, который используется в видео" такой проблемы с не возникает и все работает стабильно.
    Подскажите пожалуйста в чем может быть дело.

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Возможно, проблема с версиями Keras Tuner или Tensorflow.

    • @alexandrchernov3927
      @alexandrchernov3927 5 років тому +2

      Удалось запустить код после замены model.add(Dense(units=hp.Range(.... на model.add(Dense(units=hp.Int(..... корректна ли такая замена?

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Да, правильно. Похоже, недавно переименовали.

  • @VadosRussia
    @VadosRussia 10 місяців тому

    Можешь создать конетн для казино на нейросети анализ коэффициентов игры краш любой

  • @kirich321
    @kirich321 5 років тому +1

    А на пайторче есть подобное?

    • @AndreySozykin
      @AndreySozykin  5 років тому +2

      Можно использовать skorch (github.com/skorch-dev/skorch) и через него средства scikit-learn.

  • @АзатЗакиров-у8и
    @АзатЗакиров-у8и 4 роки тому +1

    здравствуйте! а что если мода меняется, и меняется фасон одежды и появляются новые типы... можно ли дообучать модель на таких изменениях? а не обучать снова...

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Можно дообучить, так сейчас чаще всего делают.

  • @cores_of_chill
    @cores_of_chill 5 років тому +1

    А насколько это применимо в реальных проектах, где нейросеть тренируется несколько часов? Я правильно понимаю, что все будет упираться во время и проще будет человеку самому подобрать параметры интуитивно?

    • @AndreySozykin
      @AndreySozykin  5 років тому +4

      Проще запустить tuner и пусть он работает несколько часов и обучает несколько вариантов модели. Иначе придется вручную после каждого обучения менять гиперпараметры.
      Надеюсь, они со временем сделают распределенное обучение на нескольких GPU/вычислительных узлах, как в Hyperopt и Hyperas - github.com/maxpumperla/hyperas

  • @nasdi1404
    @nasdi1404 4 роки тому

    Спасибо за видео, у меня возникает ошибка Understanding the ResourceExhaustedError: OOM when allocating tensor with shape
    Раньше код работал на генераторах и было все нормально. Полез в исходники KerasTuner'a и нигде не увидел их поддержку. Есть ли какое-то решение данной проблемы кроме переписывания части библиотеки?

  • @twicedeadsoul
    @twicedeadsoul 5 років тому +1

    Почему во втором случае при вызове трех лучших моделей не выдаются параметры функций активации, а лишь только количество слоев и нейронов на них? А если попыток у него будет не 10, а 100 тысяч, например, неужели нужно будет логировать выдачу tuner.search и потом ковыряться в горе данных?

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      1. Kerastuner недавно появился и быстро развивается. Но иногда работает нестабильно, в том числе в случае с логами обучения.
      2. Если экспериментов много, то совсем не обязательно смотреть все результаты глазами. Достаточно после завершения подбора гиперпараметров запросить лучшую модель.

    • @twicedeadsoul
      @twicedeadsoul 5 років тому

      @@AndreySozykin в том и проблема, что лучшая модель не показывает подобранные параметры функций активации. Их-то где увидеть в результате?

  • @infomed100
    @infomed100 4 роки тому

    День добрый.
    На этапе - "Подбор гиперпараметров" выдает ошибку:
    Train on 48000 samples, validate on 12000 samples
    Epoch 1/20
    256/48000 [..............................] - ETA: 1:07WARNING:tensorflow:Can save best model only with val_accuracy available, skipping.
    ---------------------------------------------------------------------------
    InvalidArgumentError Traceback (most recent call last)
    in ()
    3 batch_size=256, # Размер мини-выборки
    4 epochs=20, # Количество эпох обучения
    ----> 5 validation_split=0.2, # Часть данных, которая будет использоваться для проверки
    6 )
    13 frames
    /usr/local/lib/python3.6/dist-packages/six.py in raise_from(value, from_value)
    InvalidArgumentError: logits and labels must be broadcastable: logits_size=[256,10] labels_size=[2560,10]
    [[node loss/dense_2_loss/softmax_cross_entropy_with_logits (defined at /usr/local/lib/python3.6/dist-packages/kerastuner/engine/multi_execution_tuner.py:96) ]] [Op:__inference_distributed_function_3592]
    Function call stack:
    distributed_function
    Что с этим можно сделать?
    Спасибо!

  • @МихаилТихонов-щ5ф
    @МихаилТихонов-щ5ф 5 років тому

    Привет! можете показать пример с LSTM сетью, в интернете не нашел, пишет ошибка "RuntimeError: Model-building function did not return a valid Model instance".

    • @МихаилТихонов-щ5ф
      @МихаилТихонов-щ5ф 5 років тому

      def build_model(hp):
      model = Sequential()
      model.add(LSTM(units=hp.Int('units',
      min_value=32,
      max_value=512,
      step=32),input_shape=(total_x_total.shape[1],total_x_total.shape[2]),batch_size = 1))
      model.add(Dense(attack_matrix_total.shape[1], activation='softmax'))
      model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
      return model
      tuner = RandomSearch(build_model, objective='val_accuracy', max_trials=5,directory='test_directory') вроде сеть обычная

    • @МихаилТихонов-щ5ф
      @МихаилТихонов-щ5ф 5 років тому

      проблема решена, я добавлял не from tensorflow.keras.layers import LSTM, а из самого keras'a.

  • @paveltarnopovich2574
    @paveltarnopovich2574 4 роки тому

    Добрый день! После прописывания цикла (число скрытых слоев), появляется ошибка, которая ругает за вызов метода get_best_models. В чем ошибка, подскажите пожалуйста)

    • @cf3830
      @cf3830 4 роки тому +1

      Хоть и прошло 6 месяцев, все же отвечу, может кому пригодится. У меня тоже была такая проблема. Решилась заменой hp.Range на hp.Int

  • @НатальяСоколова-я1г
    @НатальяСоколова-я1г 5 років тому +1

    PermissionError: [WinError 21] Устройство не готово: 'E' Вот такая ошибка. Менял директорию и на диск Д, и на папку текущего юзера. Ничего. Крашится тут: total, free = cext.disk_usage(path)

    • @НатальяСоколова-я1г
      @НатальяСоколова-я1г 5 років тому +1

      Разобрался. Кто столкнется: в issues на их гитхабе есть прямо такая же ошибка [WinError 21] там надо один файлик поменять, ну либо склонить проект с этим коммитом, я не знаю точто как это лучше сделать. Но я просто поменял файл host.py, чтобы хоть разок запустить.

  • @СергейТаболин-у2м
    @СергейТаболин-у2м 3 роки тому

    У меня tuner.results_summary выдаёт сущую несуразицу. Пример:
    hidden_lr: 3
    hd_lr_1: 56
    hd_lr_2: 16
    hd_lr_3: 31
    hd_lr_4: 16
    hd_lr_5: 10
    hd_lr_6: 6
    ...
    Само же пишет, что скрвтых слоёв 3, и тут же рисует 6 ! Как так? И это ещё не все "недоразумения". Как написать разработчикам?

    • @СергейТаболин-у2м
      @СергейТаболин-у2м 3 роки тому

      И никто ничего по этому поводу сказать не может... Вот и я не знаю...

  • @dann1kid
    @dann1kid 5 років тому +1

    Почему возникает эта ошибка? Точнее, почему он парсит строку а возвращает HTML объект?
    =============================================================================
    Google Collab: TypeError: 'HTML' object is not subscriptable
    /usr/local/lib/python3.6/dist-packages/IPython/core/display.py in _check_data(self)
    656 def _check_data(self):
    657 if self.data is not None and not isinstance(self.data, string_types):
    --> 658 raise TypeError("%s expects text, not %r" % (self.__class__.__name__, self.data))
    659
    660 class Pretty(TextDisplayObject):
    py 3.6
    ==============================================================================
    local Jupiter:TypeError: 'HTML' object is not subscriptable
    ~\Anaconda3\lib\site-packages\IPython\core\display.py in warn()
    682 # long string and we're only interested in its beginning and end.
    683 #
    --> 684 prefix = data[:10].lower()
    685 suffix = data[-10:].lower()
    686 return prefix.startswith("

    • @AndreySozykin
      @AndreySozykin  5 років тому

      В каком месте возникает такая ошибка? Можете показать код?

    • @dann1kid
      @dann1kid 5 років тому

      @@AndreySozykin ibb.co/JQQFfvj

    • @dann1kid
      @dann1kid 5 років тому

      @@AndreySozykin ibb.co/ZLsJVkf

    • @dann1kid
      @dann1kid 5 років тому

      @@AndreySozykin colab.research.google.com/drive/1_y0jIIWn5f60Gw2PAokJUOyqAJUKcR5W#scrollTo=NEFHVKDBB-Z9

    • @dann1kid
      @dann1kid 5 років тому

      @@AndreySozykin Еще не открывается эта ссылка на практическую:
      www.asozykin.ru/courses/nnpython-lab2

  • @ДмитроВолодимировичПрочухан

    Добрий день ! Скажите, пожалуйста, когда получаются такие гиперпаметры послк работы Keras Tuner , что такое score , tuner/bracket, tuner/round: ?
    start_neurons: 32
    net_depth: 5
    dropout: False
    bn_after_act: True
    activation: mish
    tuner/epochs: 15
    tuner/initial_epoch: 0
    tuner/bracket: 0
    tuner/round: 0
    Score: 0.9533569884300232
    Настривал сеть U-NET
    Signature:
    unet(
    input_size=(512, 512, 1),
    start_neurons=64,
    net_depth=4,
    output_classes=1,
    dropout=False,
    bn_after_act=False,
    activation='mish',
    pretrained_weights=None,
    )
    Вот такая ф-ия єто делала
    def model_builder(hp):
    """
    Build model for hyperparameters tuning
    hp: HyperParameters class instance
    """
    # defining a set of hyperparametrs for tuning and a range of values for each
    start_neurons = hp.Int(name = 'start_neurons', min_value = 16, max_value = 128, step = 16)
    net_depth = hp.Int(name = 'net_depth', min_value = 2, max_value = 6)
    dropout = hp.Boolean(name = 'dropout', default = False)
    bn_after_act = hp.Boolean(name = 'bn_after_act', default = False)
    activation = hp.Choice(name = 'activation', values = ['mish', 'elu', 'lrelu'], ordered = False)
    input_size = (544,544,3)
    target_labels = [str(i) for i in range(21)]
    # building a model
    model = u(input_size = input_size,
    start_neurons = start_neurons,
    net_depth = net_depth,
    output_classes = len(target_labels),
    dropout = dropout,
    bn_after_act = bn_after_act,
    activation = activation)
    # model compilation
    model.compile(optimizer = Adam(lr = 1e-3),
    loss = weighted_cross_entropy,
    metrics = [f1, precision, recall, iou])
    return model