В продолжение темы нейронных сетей. Примерно с 2015 года они научились распознавать изображения лучше, чем это делают люди. К примеру, 50-слойная cеть ResNet, или сокращённо ResNet-50, умеет делить изображения на 1000 категорий. На каждое изображение затрачивается 3.8 миллиарда вычислений с плавающей точкой.
Если у вас есть компьютер с третьим Питоном и установленным пакетом tensorflow, то скачать готовую натренированную сеть ResNet-50 можно следующим скриптом:
Чтобы подробнее рассмотреть структуру сети, её можно преобразовать в читабельный формат YAML посредством скрипта:
Если у вас есть компьютер с третьим Питоном и установленным пакетом tensorflow, то скачать готовую натренированную сеть ResNet-50 можно следующим скриптом:
Получится бинарный файл resnet50.h5 размером 98 мегабайт. Он содержит как топологию самой сети, так и данные, так называемые веса и смещения. Для укладки сети с данными в файл используют формат HDF5, сокращённо H5. Посмотреть список слоёв сети и их параметры можно скриптом:#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.applications.ResNet50(weights = "imagenet", include_top=True)
model.save('resnet50.h5')
Результат здесь: https://gist.github.com/sergev/0923997ef8f3254bfd243716fee2d00d#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.models.load_model('resnet50.h5')
model.summary()
Чтобы подробнее рассмотреть структуру сети, её можно преобразовать в читабельный формат YAML посредством скрипта:
Получится такой файл: resnet50.yaml#!/usr/bin/env python3
import tensorflow as tf
model = tf.keras.models.load_model('resnet50.h5') model_yaml = model.to_yaml()
with open("resnet50.yaml", "w") as yaml_file:
yaml_file.write(model_yaml)