Передача обучения с помощью TensorFlow Hub |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2020-10-16 02:18 TensorFlow Hub - это репозиторий предварительно обученных моделей TensorFlow. В этом руководстве показано, как:
Настроить
Классификатор ImageNet Вы начнете с использования предварительно обученной модели классификатора, чтобы сделать снимок и предсказать, что это за изображение - обучение не требуется! Скачать классификатор Используйте
Запустите его на одном изображении Загрузите одно изображение, чтобы примерить модель.
Downloading data from https://storage.googleapis.com/download.tensorflow.org/example_images/grace_hopper.jpg 65536/61306 [================================] - 0s 0us/step
(224, 224, 3) Добавьте размер партии и передайте изображение модели.
(1, 1001) Результатом является 1001-элементный вектор логитов, оценивающий вероятность каждого класса для изображения. Итак, идентификатор высшего класса можно найти с помощью argmax:
653 Расшифруйте предсказания Возьмите прогнозируемый идентификатор класса и
Downloading data from https://storage.googleapis.com/download.tensorflow.org/data/ImageNetLabels.txt 16384/10484 [==============================================] - 0s 0us/step
Простое трансферное обучение Но что, если вы хотите обучить классификатор для набора данных с разными классами? Вы также можете использовать модель из TFHub для обучения настраиваемого классификатора изображений, повторно обучив верхний уровень модели распознавать классы в нашем наборе данных. Набор данных В этом примере вы будете использовать набор данных цветов TensorFlow:
Downloading data from https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz 228818944/228813984 [==============================] - 5s 0us/step Самый простой способ загрузить эти данные в нашу модель - использовать Соглашения TensorFlow Hub для моделей изображений - ожидать входных данных с плавающей запятой в диапазоне
Found 3670 images belonging to 5 classes. Результирующий объект - итератор, который возвращает
Image batch shape: (32, 224, 224, 3) Label batch shape: (32, 5) Запустите классификатор для пакета изображений Теперь запустите классификатор для пакета изображений.
(32, 1001)
array(['daisy', 'bee', 'barn spider', 'daisy', 'balloon', 'daisy', 'cardoon', 'daisy', 'daisy', 'diaper', 'quill', 'wreck', 'hip', 'daisy', 'vase', 'daisy', 'daisy', 'daisy', 'cardoon', 'daisy', 'sea urchin', 'picket fence', 'daisy', 'strawberry', 'coral fungus', 'picket fence', 'quill', 'daisy', 'daisy', 'pot', 'sarong', 'hair slide'], dtype='<U30') Теперь проверьте, как эти прогнозы совпадают с изображениями:
См. Результаты далеки от идеальных, но разумные, учитывая, что это не те классы, для которых модель была обучена (кроме «ромашки»). Скачать модель без головы TensorFlow Hub также распространяет модели без верхнего уровня классификации. Их можно использовать для простого переноса обучения. Здесь будет работать любая совместимая векторная модель функции изображения из tfhub.dev.
Создайте экстрактор признаков. Используйте
Он возвращает вектор длиной 1280 для каждого изображения:
(32, 1280) Прикрепите классификационную головку Теперь оберните слой хаба в модель
Model: "sequential_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= keras_layer_1 (KerasLayer) (None, 1280) 2257984 _________________________________________________________________ dense (Dense) (None, 5) 6405 ================================================================= Total params: 2,264,389 Trainable params: 6,405 Non-trainable params: 2,257,984 _________________________________________________________________
TensorShape([32, 5]) Обучите модель Используйте компиляцию для настройки тренировочного процесса:
Теперь используйте метод Чтобы сохранить этот пример коротким, поездом всего 2 эпохи. Чтобы визуализировать прогресс обучения, используйте настраиваемый обратный вызов, чтобы регистрировать потери и точность каждого пакета индивидуально, а не среднее за эпоху.
Epoch 1/2 115/115 [==============================] - 12s 100ms/step - loss: 0.4156 - acc: 0.8750 Epoch 2/2 115/115 [==============================] - 12s 101ms/step - loss: 0.1960 - acc: 0.9375 Теперь, даже после нескольких итераций обучения, мы уже можем видеть, что модель успешно справляется с задачей.
[<matplotlib.lines.Line2D at 0x7f3ac9d00b38>]
[<matplotlib.lines.Line2D at 0x7f3ac49b3e48>] Проверить прогнозы Чтобы повторить предыдущий сюжет, сначала получите упорядоченный список имен классов:
array(['Daisy', 'Dandelion', 'Roses', 'Sunflowers', 'Tulips'], dtype='<U10') Запустите пакет изображений по модели и преобразуйте индексы в имена классов.
Постройте результат
Экспортируйте вашу модель Теперь, когда вы обучили модель, экспортируйте ее как SavedModel для дальнейшего использования.
WARNING:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/tracking/tracking.py:111: Model.state_updates (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version. Instructions for updating: This property should not be used in TensorFlow 2.0, as updates are applied automatically. Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/tracking/tracking.py:111: Model.state_updates (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version. Instructions for updating: This property should not be used in TensorFlow 2.0, as updates are applied automatically. Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/tracking/tracking.py:111: Layer.updates (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version. Instructions for updating: This property should not be used in TensorFlow 2.0, as updates are applied automatically. Warning:tensorflow:From /tmpfs/src/tf_docs_env/lib/python3.6/site-packages/tensorflow/python/training/tracking/tracking.py:111: Layer.updates (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version. Instructions for updating: This property should not be used in TensorFlow 2.0, as updates are applied automatically. INFO:tensorflow:Assets written to: /tmp/saved_models/1601602065/assets INFO:tensorflow:Assets written to: /tmp/saved_models/1601602065/assets '/tmp/saved_models/1601602065' Теперь подтвердите, что мы можем перезагрузить его, и он по-прежнему дает те же результаты:
0.0 Эта SavedModel может быть загружена для последующего вывода или преобразована в TFLite или TFjs . Источник: www.tensorflow.org Комментарии: |
|