Синьчжиюань отчет
Источник: ТензорФлоу
Редакторы: Цзинь Лэй, Сяоцинь, Чжан Цянь
【Новый путеводитель по Чжиюань】Наконец-то вышел TensorFlow 2.0, и сначала можно опробовать альфа-версию. В новой версии основное внимание уделяется простоте использования и расширяемости, значительному упрощению API и, наконец, изменен даже логотип.
Наконец-то появился TensorFlow 2.0!
Сегодня рано утром Google провела саммит разработчиков TensorFlow в Калифорнии и официально выпустила версию 2.0.
Можно выделить несколько основных моментов этой конференции:
-
ТензорФлоу 2.0Альфа-версия выпущена, теперь пользователи могут пользоваться ранним доступом;
-
Версия 2.0 имеетПростота, ясность, масштабируемостьТри основные функции, значительно упрощающие API;
-
выросTensorFlow LiteиTensorFlow.jsвозможность развертывания моделей;
Пресс-конференция также раскрыла текущую семейную историю TensorFlow: у TF более 41 миллиона загрузок в мире, а в сообществе более 1800 участников.
Хотя чиновник не раскрыл ситуацию китайского сообщества, на пресс-конференции была показана глобальная карта.По распределению пользователей на картинке можно предположить, что ТФ Китай должен быть третьим по величине регионом после США. и Европа.
Еще одно заметное изменение заключается в том, что, начиная с версии 2.0, логотип TensorFlow также отличается от формы, похожей на строительные блоки, до двух отдельных букв «T» и «F», что также может означать уменьшение избыточности.
Простая в использовании и масштабируемая, TF2.0 открыла новую архитектуру
TensorFlow превратился в одну из самых популярных и широко распространенных платформ машинного обучения в мире, существующую с 2015 года и отметившую свой третий день рождения в ноябре прошлого года.
Предыдущие отзывы разработчиков надеялись, что TensorFlow упростит API, уменьшит избыточность и улучшит документацию и примеры. Выпуск 2.0 на этот раз прислушался к предложениям разработчиков, поэтому новая версия имеет следующие три характеристики: простая, мощная и расширяемая.
Основываясь на этих трех характеристиках, TensorFlow 2.0 также имеет новую архитектуру, как показано на упрощенной концептуальной схеме ниже:
TensorFlow 2.0 сосредоточится напростотаиПростота использования, со следующими обновлениями:
-
Легко создавайте модели с Keras и стремительным выполнением
-
Надежное развертывание модели для производственных сред на любой платформе
-
Предоставляет мощные экспериментальные инструменты для исследований
-
Упростите API, удалив устаревшие API и уменьшив дублирование
Новые функции TF2.0 подробно описаны ниже.
Простота использования превыше всего, выпущена альфа-версия TensorFlow 2.0Цель этой серии обновлений TensorFlow — сделать его более удобным для вас.
После выхода TensorFlow 2.0 процесс обучения станет очень простым:
Основной процесс: интеграция и преобразование данных → построение модели → обучение → сохранение модели.
Конечно, TensorFlow также придерживается принципа «где угодно можно развернуть», что делает его более гибким и удобным в применении:
Вот несколько основных моментов TensorFlow 2.0 в этом обновлении:
TensorFlow Alpha
-
Проще в использовании: API высокого уровня, такие как tf.keras, будет проще в использовании, а выполнение Eager будет использоваться по умолчанию. Например:
>>>tf.add(2,3)
<tf.Tensor: id=2, shape=(), dtype=int32, numpy=5>
скопировать код
-
Более понятный: дублирующиеся функции удалены, синтаксис вызова различных API более согласован и интуитивно понятен, совместимость более полная.
-
Более гибкий: предоставляет полный низкоуровневый API, обеспечивает доступ к внутренним операциям в tf.raw_ops, предоставляет наследуемые интерфейсы для переменных, контрольных точек и слоев.
Конечно, альфа-версия TensorFlow 2.0 очень проста в установке, всего одно предложение:
pip install -U --pre tensorflow
скопировать код
Стремительное выполнение и «@tf.function» являются основным направлением обновления, и то, как они работают вместе, будет подробно описано далее.
Одним из наиболее очевидных изменений является то, что TensorFlow является «сначала стремящимся», что означает, что операция запускается сразу после вызова. В TensorFlow 1.x пользователь может сначала составить граф, а затем выполнить различные части графа с помощью «tf.Session.run()».
TensorFlow 2.0 радикально упрощает работу с TensorFlow — та же отличная операция, теперь более простая для понимания и использования.
a = tf.constant([1, 2])
b = tf.constant([3, 4])
print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)
скопировать код
TensorFlow 2.0 использует Keras в качестве основного средства разработки. В версии 2.0 вы можете использовать Keras как обычно, построить модель с помощью Sequential API, а затем использовать «скомпилировать» и «подогнать». Все эти знакомые примеры «tf.keras» с tensorflow.org могут быть реализованы «из коробки» в версии 2.0.
"fit()" Keras подходит для многих ситуаций, однако разработчики, которым нужна большая гибкость, теперь имеют больше возможностей. Взгляните на пользовательский цикл обучения, написанный в стиле TensorFlow 2.0, в следующем примере:
def train_one_step(model, optimizer, x, y): with tf.GradientTape() as tape: logits = model(x) loss = compute_loss(y, logits) grads = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) compute_accuracy(y, logits) return lossdef train(model, optimizer): train_ds = mnist_dataset() step = 0 loss = 0.0 for x, y in train_ds: step += 1 loss = train_one_step(model, optimizer, x, y) if tf.equal(step % 10, 0): tf.print('Step', step, ': loss', loss, '; accuracy', compute_accuracy.result())return step, loss, accuracy
скопировать код
В этом примере используется GradientTape в стиле Autograd, и градиенты применяются вручную с помощью оптимизатора. Это особенно полезно при написании пользовательских циклов обучения со сложной внутренней работой (например, при обучении с подкреплением) или при проведении исследований, которые легко помогут вам реализовать новые идеи, повышающие эффективность оптимизатора.
«Нетерпеливое выполнение» также помогает отлаживать и отслеживать работающий код, а такие объекты, как переменные, слои и градиенты, можно проверять с помощью отладчика Python. В цикле обучения используйте операторы Python, такие как «if», «for» и «print()».
Как только код заработает правильно, вы захотите получить оптимизацию и эффективность диаграммы. Для этого оберните «поезд» декоратором «@tf.function». Autograph встроен в "tf.function", поэтому никаких специальных действий не требуется, чтобы получить предложение "if" или "for", которое работает с эффективностью графа.
@tf.function
def train(model, optimizer):
train_ds = mnist_dataset()
step = 0
loss = 0
accuracy = 0
for x, y in train_ds:
# 如上所述,包括“if”和“print()”
return step
скопировать код
На этот код не влияют комментарии, но он будет скомпилирован в график, который можно легко запустить на GPU, TPU или сохранить в «SavedModel» для последующего использования.
Что особенно интересно в этой паре кодов, так это то, что при заключении «train()» в «@tf.function» «train_one_step()», «compute_loss()» и «compute_accuracy()» также автоматически преобразуются. Вы также можете инкапсулировать только некоторые операции в «@tf.function», чтобы получить желаемое поведение.
Кроме того, TensorFlow 2.0 полностью поддерживает оценщики.
tensorflow.org/альфа-ссылка
https://www.tensorflow.org/alpha
Расширенные изменения API
TensorFlow 2.0 проделал большую работу над API, в этой версии API высокого уровня будет очень «легко расширять» и «легко расширять»:
Например, некоторые расширенные API, такие как tf.keras.optimizer\ tf.keras.layers\ tf.keras.loss, были оптимизированы для простоты использования. Например:
Стоит отметить, что высокоуровневые API-интерфейсы нейронных сетей, такие как слои RNN, оптимизированы, и пользователи также могут их настраивать.
Это благо для разработчиков.
Обновить
TensorFlow 2.0 будет включать в себя множество изменений API, таких как изменение порядка параметров, переименование символов и изменение значений по умолчанию для параметров. Выполнение всех этих изменений вручную утомительно и чревато ошибками.
Чтобы упростить процесс изменения и сделать переход на TensorFlow 2.0 максимально плавным для разработчиков, команда инженеров TensorFlow создала утилиту tf_upgrade_v2 для преобразования устаревшего кода в новый API.
ссылка tf_upgrade_v2
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/upgrade.md
TensorFlow.js v1.0
У TensorFlow для Javascript было 300 000 загрузок и 100 участников. Сегодняшний выпуск 1.0 TensorFlow.js включает улучшения производительности.
Например, 9-кратное улучшение логического вывода MobileNet v1 в браузере. Есть также новые готовые модели и более широкая поддержка платформ для веб-разработчиков.
TensorFlow Lite: развернуто на более чем 2 миллиардах мобильных устройствTensorFlow Lite — это легкое кроссплатформенное решение для мобильных и встроенных устройств..
Такое легкое решение необходимо, поскольку машинное обучение все чаще переносится на конечные устройства, такие как мобильные телефоны, автомобили, носимые устройства и т. д. Использование машинного обучения на таких устройствах имеет множество ограничений, таких как ограниченная вычислительная мощность, ограниченная память, ограничения батареи и т. д. TensorFlow Lite может в значительной степени устранить эти ограничения.
Примеры использования TensorFlow Lite
Удивительный факт: уже есть2 миллиарда мобильных устройствВ развертывании используется TensorFlow Lite.
Это показывает, что у TensorFlow Lite много отечественных и зарубежных клиентов...
Технический директор NetEase Youdao Лин Хуицзе, как представитель «Почему выбирают TensorFlow Lite», был приглашен на сцену, чтобы представить достижения приложения Youdao для перевода TensorFlow Lite.
ТензорФлоу Четыре темы Lite:
-
Доступность(Удобство использования): готов к использованию
-
представление(Производительность): модель выполняется быстрее
-
оптимизировать(Оптимизация): сделайте свою модель меньше и быстрее
-
Документация(Документация): Существует много ресурсов
Доступность: простота развертывания, готовность к использованию
Сохраните модель, конвертируйте в TF Lite, это так просто.
Новая функция TensorFlow Select упрощает преобразование моделей в TensorFlow Lite.
Производительность: сделайте так, чтобы модель выполнялась как можно быстрее, учитывая доступное оборудование.
Насколько это быстро? Обучение MobileNet v1, скорость логического вывода улучшена для ЦП, ГП и Edge TPU соответственно.1,9х, 7,7х и 62х!
Оптимизация: сделайте модели меньше и быстрее
Оптимизированная производительность:
Документация:
Один Более Вещь:
Инженер TensorFlow Lite Пит Уорден вышел на сцену и представил очень крутой «гаджет»:
это имякоралловый, небольшая плата разработки для создания и экспериментов с устройствами ИИ.
Он работает как Raspberry Pi, но использует собственный процессор Google, разработанный для искусственного интеллекта. Правильно, на этой маленькой плате вы можете запустить TensorFlow.
Warden показывает небольшую демонстрацию:
Скажите определенное слово, и на доске Coral загорится маленький желтый свет.
Модель имеет размер всего 20 КБ и использует менее 100 КБ ОЗУ и 80 КБ флэш-памяти.
«Coral предоставляет полный набор собственных инструментов искусственного интеллекта, чтобы легко превратить вашу идею от прототипа в продукт», — сказали в Google.
Как и в случае с Raspberry Pi, ожидайте, что с Coral появятся более интересные вещи.
По цене $ 149,99, Портал:
https://coral.withgoogle.com/products/