Обновил ноутбук в Colab для TensorFflow 2.x и установку keras tuner из пакета, а не исходников. Работающий ноутбук - colab.research.google.com/drive/1m_8puwuGg9C7LWChv4YvZEmAlocGC7nG . В KerasTuner немного изменился API, поэтому код в ноутбуке отличается от кода в видео.
Спасибо, что записываете подобные лекции. Я так счастлива от того, что слушаю как писать нейросети и понимаю, что происходит; у нас в университете намного хуже рассказывают.
Да, работает долго, потому что много комбинаций гиперпараметров нужно перебирать. Keras Tuner недавно появился. Надеюсь, со временем производительность повысят.
@@AndreySozykin А такой вопрос если у меня есть мои объекты и я хотел бы на них обучить свой вариант и затем настроить распознавание. А затем попытаться распознать? Как в примере с игральными картами! Есть картинки на которых выделяю и отдельно маркирую по две-семь карт! Как в этом примере: github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10 или как в этом примере с табличками pylessons.com/TensorFlow-CAPTCHA-solver-training/ И как можно в вашем примере подключить визуализацию, типа панели инструментов гистограммы TensorBoard? Заранее спасибо за ответ! Я думаю, это будет интересно не только мне. Я пару недель назад, наконец решился этим вопросом заняться! Но все примеры в сети работают только в сети и на готовых данных! Попытка поставить свои данные, пока к результату не приводят! Очень много сыпет ошибок. То модуля уже нет. То модуль не совместим и т.д. и т.п. Вопросов пока гораздо больше чем ответов! А ошибки, которые появляются, уж слишком свежие, что бы найти на них решение! Извините за перегруз!
По ссылкам не задача классификации, а более сложная задача обнаружения объектов на изображении. Если есть желание использовать TensorFlow Object Detection API, то вот пример его обучения на собственном наборе данных - towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9
@@AndreySozykin Спасибо за ссылку. Посмотрю. У большинства найденных и как то работающих примеров в основном одна проблема почему не запускаются, и это модуль флагов командной строки: flags = tf.app.flags AttributeError: module 'tensorflow' has no attribute 'app' они похоже этот модуль чем то заменили, но пока не нашел чем. Конечно можно и без параметров передаваемых в строке, но хотелось бы с ними! ;) Похоже это после обновления TensorFlow до 2.0, там вроде как то можно обойти несовместимость с предыдущими версиями используя @tf.function от AutoGraph( как по мне, то это больше наворот в сторону оптимизации потоков), но тут похоже сам модуль уже отсутствует.
@@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 Вдруг кому то пригодится!
Наконец то добрался. Спасибо за видио. 1. А как график выводить? У меня фигачит перебором? 2. И главное как в лучших моделях узнать какие функции активации?
@@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')
Спасибо большое, очень доступно объясняете. У меня в пространстве 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'
Кстати, в KaggleNotebooks не надо Тензорфлоу переустанавливать - там уже 2.0 из коробки. И вообще по моим наблюдениям Kaggle часто удобнее Colab'а бывает :)
Спасибо большое за лекцию! Аналогов в интернете не нашла) Подскажите пожалуйста как посмотреть гиперпараметры полученных моделей (функцию активации, оптимизатор)
Спасибо большое за цикл видеоуроков, очень хорошо объясняете! У меня вопрос: как лучше сделать такую сеть, которая будет в начале выделять, какие объекты вообще существуют на картинке, а затем эти объекты соотносить к определенной категории? число объектов произвольное. Какие архитектуры использовать для этого?
Эта задача называется Object Detection. Самая популярная архитектура - YOLO. Также можно использовать TensorFlow Object Detection, вот видео - ua-cam.com/video/1KzKqxx-s-Q/v-deo.html
Спасибо! Только непонятно как увидеть ВСЕ параметры наилучших трех моделей. В model.summary() выводится только количество слоев! А как понять с какими функциями активации и оптимизации они были просчитаны?
Использовать модель можно без этого, смотрите: model = tuner.get_best_models(num_models=1)[0] model.predict(........) Так мы добыли сеть для использования
Добрый день, спасибо за объяснение. Пытался повторить Ваш скрипт, однако столкнулся с ошибкой: Runtime error. Too many failed attempts to build model. Ошибка выходит на этапе создания тюнера, может сталкивались с таким?
@@AndreySozykin Столкнулась с такой же проблемой. Первой из списка ошибок выводится: AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
Андрей, здравствуйте. Я попытался скомпилировать Ваши последние изменения в коде, однако столкнулся с ошибкой на этапе создания тюнера. 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 итераций цикла
Вот причина ошибки: NameError: name 'layers' is not defined В примере я импортировал не keras.layers, а Dense напрямую. Нужно писать так: model.add(Dense(units=hp.Range('units_' + str(i),
Приветствую! Были внесены какие то изменения вероятно в Keras tuner. Теперь ваш ноутбук выдает ошибку " TypeError: HTML expects text, not " и не показывает результаты тестирования сети. на моем пк такая же проблема..
Вот ссылка с гитхаба на исправление ошибки ищем папку kerastuner, далее меняем строки в файле по инструкции из ссылки. помогло частично, все равно не дает выполнить больше одного триала, но хотя бы дает посмотреть на результаты github.com/keras-team/keras-tuner/commit/b397422d4195b0371abcc59cbba7309cde090e5c
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%
Андрей здравствуйте, при создании Tuner на первом примере в видео выдает ошибку AttributeError: 'HyperParameters' object has no attribute 'Range' , и предупреждение Invalid model 1/5 после пяти попыток выдает RuntimeError: Too many failed attempts to build model. При запуске "Ноутбука в Colab, который используется в видео" такой проблемы с не возникает и все работает стабильно. Подскажите пожалуйста в чем может быть дело.
здравствуйте! а что если мода меняется, и меняется фасон одежды и появляются новые типы... можно ли дообучать модель на таких изменениях? а не обучать снова...
А насколько это применимо в реальных проектах, где нейросеть тренируется несколько часов? Я правильно понимаю, что все будет упираться во время и проще будет человеку самому подобрать параметры интуитивно?
Проще запустить tuner и пусть он работает несколько часов и обучает несколько вариантов модели. Иначе придется вручную после каждого обучения менять гиперпараметры. Надеюсь, они со временем сделают распределенное обучение на нескольких GPU/вычислительных узлах, как в Hyperopt и Hyperas - github.com/maxpumperla/hyperas
Спасибо за видео, у меня возникает ошибка Understanding the ResourceExhaustedError: OOM when allocating tensor with shape Раньше код работал на генераторах и было все нормально. Полез в исходники KerasTuner'a и нигде не увидел их поддержку. Есть ли какое-то решение данной проблемы кроме переписывания части библиотеки?
Почему во втором случае при вызове трех лучших моделей не выдаются параметры функций активации, а лишь только количество слоев и нейронов на них? А если попыток у него будет не 10, а 100 тысяч, например, неужели нужно будет логировать выдачу tuner.search и потом ковыряться в горе данных?
1. Kerastuner недавно появился и быстро развивается. Но иногда работает нестабильно, в том числе в случае с логами обучения. 2. Если экспериментов много, то совсем не обязательно смотреть все результаты глазами. Достаточно после завершения подбора гиперпараметров запросить лучшую модель.
День добрый. На этапе - "Подбор гиперпараметров" выдает ошибку: 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 Что с этим можно сделать? Спасибо!
Привет! можете показать пример с LSTM сетью, в интернете не нашел, пишет ошибка "RuntimeError: Model-building function did not return a valid Model instance".
Добрый день! После прописывания цикла (число скрытых слоев), появляется ошибка, которая ругает за вызов метода get_best_models. В чем ошибка, подскажите пожалуйста)
PermissionError: [WinError 21] Устройство не готово: 'E' Вот такая ошибка. Менял директорию и на диск Д, и на папку текущего юзера. Ничего. Крашится тут: total, free = cext.disk_usage(path)
Разобрался. Кто столкнется: в issues на их гитхабе есть прямо такая же ошибка [WinError 21] там надо один файлик поменять, ну либо склонить проект с этим коммитом, я не знаю точто как это лучше сделать. Но я просто поменял файл host.py, чтобы хоть разок запустить.
У меня 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 ! Как так? И это ещё не все "недоразумения". Как написать разработчикам?
Почему возникает эта ошибка? Точнее, почему он парсит строку а возвращает 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("
Обновил ноутбук в Colab для TensorFflow 2.x и установку keras tuner из пакета, а не исходников. Работающий ноутбук - colab.research.google.com/drive/1m_8puwuGg9C7LWChv4YvZEmAlocGC7nG .
В KerasTuner немного изменился API, поэтому код в ноутбуке отличается от кода в видео.
Здравствуйте, Андрей! Можно вопрос ?
Здравствуйте! Эта лекция была потрясающяя! Спасибо вам за ваши труды!
Пожалуйста! Рад, что нравится!
Спасибо, что записываете подобные лекции. Я так счастлива от того, что слушаю как писать нейросети и понимаю, что происходит; у нас в университете намного хуже рассказывают.
Пожалуйста! Рад, что нравится!
Золото! Спасибо огромное за лекцию!
Спасибо! Очень доступно, и познавательно!
Прекрасно и даже работает при копировании в свой аккаунт!
Пожалуйста!
Работать действительно должно, я проаерял до и после запуска.
@@AndreySozykin А как сделать такое же для решения задачи регрессии?)
Лайк однозначно. Андрей, огромное спасибо за ваши труды!!!
Спасибо за лайк, это помогает!
за один вечер на 1.75 скорости узнал больше, чем если бы читал серию статей. очень круто. спасибо.
Пожалуйста. Рад, что нравится!
Hi. It is a great video tutorial. However, I think that you could continue further and show some more tuning examples. Thanks.
Коротко и ясно. Спасибо
Пожалуйста!
Андрей, большое спасибо за ваши видео
Пожалуйста!
Спасибо большое, Андрей Владимирович!
Пожалуйста!
Я туговатый человек и далеко не все понял, но лекции очень понравились) Спасибо большое
Успехов!
Очен впечатлило! Немного долго работает! Но очень доходчиво! И тоже работает на colab!
Да, работает долго, потому что много комбинаций гиперпараметров нужно перебирать.
Keras Tuner недавно появился. Надеюсь, со временем производительность повысят.
@@AndreySozykin А такой вопрос если у меня есть мои объекты и я хотел бы на них обучить свой вариант и затем настроить распознавание. А затем попытаться распознать? Как в примере с игральными картами! Есть картинки на которых выделяю и отдельно маркирую по две-семь карт! Как в этом примере:
github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10
или как в этом примере с табличками
pylessons.com/TensorFlow-CAPTCHA-solver-training/
И как можно в вашем примере подключить визуализацию, типа панели инструментов гистограммы TensorBoard?
Заранее спасибо за ответ!
Я думаю, это будет интересно не только мне.
Я пару недель назад, наконец решился этим вопросом заняться! Но все примеры в сети работают только в сети и на готовых данных! Попытка поставить свои данные, пока к результату не приводят! Очень много сыпет ошибок. То модуля уже нет. То модуль не совместим и т.д. и т.п.
Вопросов пока гораздо больше чем ответов! А ошибки, которые появляются, уж слишком свежие, что бы найти на них решение!
Извините за перегруз!
По ссылкам не задача классификации, а более сложная задача обнаружения объектов на изображении. Если есть желание использовать TensorFlow Object Detection API, то вот пример его обучения на собственном наборе данных - towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9
@@AndreySozykin Спасибо за ссылку. Посмотрю.
У большинства найденных и как то работающих примеров в основном одна проблема почему не запускаются, и это модуль флагов командной строки:
flags = tf.app.flags
AttributeError: module 'tensorflow' has no attribute 'app'
они похоже этот модуль чем то заменили, но пока не нашел чем.
Конечно можно и без параметров передаваемых в строке, но хотелось бы с ними! ;)
Похоже это после обновления TensorFlow до 2.0, там вроде как то можно обойти несовместимость с предыдущими версиями используя @tf.function от AutoGraph( как по мне, то это больше наворот в сторону оптимизации потоков), но тут похоже сам модуль уже отсутствует.
@@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
Вдруг кому то пригодится!
Наконец то добрался. Спасибо за видио. 1. А как график выводить? У меня фигачит перебором? 2. И главное как в лучших моделях узнать какие функции активации?
Спасибо вам огромное желаю вам здоровье
Спасибо!
Спасибо за информацию!
Пожалуйста!
Большое спасибо =)
Пожалуйста!
@@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')
Агонь
где ж ты раньше то был. я все это циклами делал:)
Новая фича-то. "Раньше" её просто не было;)
Родной инструмент для Keras, действительно, недавно появился. Но раньше был Hyperas и другие сторонние инструменты.
Спасибо большое, очень доступно объясняете. У меня в пространстве 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'
API KerasTuner изменился. Вместо Range сейчас нужно писать Int. Пример на сайте Keras Tuner - github.com/keras-team/keras-tuner/blob/master/README.md
@@AndreySozykin спасибо, все получилось ;)
Кстати, в KaggleNotebooks не надо Тензорфлоу переустанавливать - там уже 2.0 из коробки. И вообще по моим наблюдениям Kaggle часто удобнее Colab'а бывает :)
Да, особенно для соревнований Kaggle.
Спасибо большое за лекцию! Аналогов в интернете не нашла)
Подскажите пожалуйста как посмотреть гиперпараметры полученных моделей (функцию активации, оптимизатор)
Я нашла) tuner.results_summary()
Может кому-то поможет )
Однозначно лайк! Благодарю. Единственный вопрос. Как сделать вывод таким же красивым как у вас?
Спасибо!
Я ничего специального для настройки вывода не делал.
Полезная вещь
Спасибо!
Спасибо большое за цикл видеоуроков, очень хорошо объясняете! У меня вопрос: как лучше сделать такую сеть, которая будет в начале выделять, какие объекты вообще существуют на картинке, а затем эти объекты соотносить к определенной категории? число объектов произвольное. Какие архитектуры использовать для этого?
Эта задача называется Object Detection. Самая популярная архитектура - YOLO. Также можно использовать TensorFlow Object Detection, вот видео - ua-cam.com/video/1KzKqxx-s-Q/v-deo.html
@@AndreySozykin спасибо огромное!
Спасибо! Только непонятно как увидеть ВСЕ параметры наилучших трех моделей. В model.summary() выводится только количество слоев! А как понять с какими функциями активации и оптимизации они были просчитаны?
Использовать модель можно без этого, смотрите:
model = tuner.get_best_models(num_models=1)[0]
model.predict(........)
Так мы добыли сеть для использования
вот я тоже искала другие гиперпараметры. Можно их увидеть выше в tuner.results_summary(). Но это легко, когда 10 запусков, их всех пересмотреть ;)
Добрый день, спасибо за объяснение. Пытался повторить Ваш скрипт, однако столкнулся с ошибкой: Runtime error. Too many failed attempts to build model.
Ошибка выходит на этапе создания тюнера, может сталкивались с таким?
Возможно, ошибка при описании нейросети, поэтому tuner не может её создать.
@@AndreySozykin Столкнулась с такой же проблемой. Первой из списка ошибок выводится:
AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
Здравствуйте, Андрей! Если сделать keras tuner для GRU и LSTM, будут какие-то изменения в коде или всё также? Спасибо!
Андрей, как сделать тензор данных керас из файла csv?
Можно с помощью pandas загрузить данные из файла csv, а затем преобразовать DataFrame в тензор.
Андрей, здравствуйте. Я попытался скомпилировать Ваши последние изменения в коде, однако столкнулся с ошибкой на этапе создания тюнера.
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 итераций цикла
Вот причина ошибки:
NameError: name 'layers' is not defined
В примере я импортировал не keras.layers, а Dense напрямую. Нужно писать так:
model.add(Dense(units=hp.Range('units_' + str(i),
Приветствую!
Были внесены какие то изменения вероятно в Keras tuner. Теперь ваш ноутбук выдает ошибку "
TypeError: HTML expects text, not " и не показывает результаты тестирования сети. на моем пк такая же проблема..
Вот ссылка с гитхаба на исправление ошибки
ищем папку kerastuner, далее меняем строки в файле по инструкции из ссылки. помогло частично, все равно не дает выполнить больше одного триала, но хотя бы дает посмотреть на результаты
github.com/keras-team/keras-tuner/commit/b397422d4195b0371abcc59cbba7309cde090e5c
Да, Keras Tuner быстро изменяется. Уже поменялся API и есть ошибки. Надеюсь, со временем исправят. Так всегда с новыми продуктами.
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%
Андрей здравствуйте, при создании Tuner на первом примере в видео выдает ошибку AttributeError: 'HyperParameters' object has no attribute 'Range' , и предупреждение Invalid model 1/5
после пяти попыток выдает RuntimeError: Too many failed attempts to build model.
При запуске "Ноутбука в Colab, который используется в видео" такой проблемы с не возникает и все работает стабильно.
Подскажите пожалуйста в чем может быть дело.
Возможно, проблема с версиями Keras Tuner или Tensorflow.
Удалось запустить код после замены model.add(Dense(units=hp.Range(.... на model.add(Dense(units=hp.Int(..... корректна ли такая замена?
Да, правильно. Похоже, недавно переименовали.
Можешь создать конетн для казино на нейросети анализ коэффициентов игры краш любой
А на пайторче есть подобное?
Можно использовать skorch (github.com/skorch-dev/skorch) и через него средства scikit-learn.
здравствуйте! а что если мода меняется, и меняется фасон одежды и появляются новые типы... можно ли дообучать модель на таких изменениях? а не обучать снова...
Можно дообучить, так сейчас чаще всего делают.
А насколько это применимо в реальных проектах, где нейросеть тренируется несколько часов? Я правильно понимаю, что все будет упираться во время и проще будет человеку самому подобрать параметры интуитивно?
Проще запустить tuner и пусть он работает несколько часов и обучает несколько вариантов модели. Иначе придется вручную после каждого обучения менять гиперпараметры.
Надеюсь, они со временем сделают распределенное обучение на нескольких GPU/вычислительных узлах, как в Hyperopt и Hyperas - github.com/maxpumperla/hyperas
Спасибо за видео, у меня возникает ошибка Understanding the ResourceExhaustedError: OOM when allocating tensor with shape
Раньше код работал на генераторах и было все нормально. Полез в исходники KerasTuner'a и нигде не увидел их поддержку. Есть ли какое-то решение данной проблемы кроме переписывания части библиотеки?
Почему во втором случае при вызове трех лучших моделей не выдаются параметры функций активации, а лишь только количество слоев и нейронов на них? А если попыток у него будет не 10, а 100 тысяч, например, неужели нужно будет логировать выдачу tuner.search и потом ковыряться в горе данных?
1. Kerastuner недавно появился и быстро развивается. Но иногда работает нестабильно, в том числе в случае с логами обучения.
2. Если экспериментов много, то совсем не обязательно смотреть все результаты глазами. Достаточно после завершения подбора гиперпараметров запросить лучшую модель.
@@AndreySozykin в том и проблема, что лучшая модель не показывает подобранные параметры функций активации. Их-то где увидеть в результате?
День добрый.
На этапе - "Подбор гиперпараметров" выдает ошибку:
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
Что с этим можно сделать?
Спасибо!
Привет! можете показать пример с LSTM сетью, в интернете не нашел, пишет ошибка "RuntimeError: Model-building function did not return a valid Model instance".
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') вроде сеть обычная
проблема решена, я добавлял не from tensorflow.keras.layers import LSTM, а из самого keras'a.
Добрый день! После прописывания цикла (число скрытых слоев), появляется ошибка, которая ругает за вызов метода get_best_models. В чем ошибка, подскажите пожалуйста)
Хоть и прошло 6 месяцев, все же отвечу, может кому пригодится. У меня тоже была такая проблема. Решилась заменой hp.Range на hp.Int
PermissionError: [WinError 21] Устройство не готово: 'E' Вот такая ошибка. Менял директорию и на диск Д, и на папку текущего юзера. Ничего. Крашится тут: total, free = cext.disk_usage(path)
Разобрался. Кто столкнется: в issues на их гитхабе есть прямо такая же ошибка [WinError 21] там надо один файлик поменять, ну либо склонить проект с этим коммитом, я не знаю точто как это лучше сделать. Но я просто поменял файл host.py, чтобы хоть разок запустить.
У меня 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 ! Как так? И это ещё не все "недоразумения". Как написать разработчикам?
И никто ничего по этому поводу сказать не может... Вот и я не знаю...
Почему возникает эта ошибка? Точнее, почему он парсит строку а возвращает 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 ibb.co/JQQFfvj
@@AndreySozykin ibb.co/ZLsJVkf
@@AndreySozykin colab.research.google.com/drive/1_y0jIIWn5f60Gw2PAokJUOyqAJUKcR5W#scrollTo=NEFHVKDBB-Z9
@@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