Авторы: Вольф Добсон и Джош Гордон
TensorFlow 2.0 ориентирован на простоту использования, с API-интерфейсами для начинающих и ветеранов для создания моделей машинного обучения. существуетНовое в TensorFlow 2.0иСтандартизация КерасаВ наших недавно опубликованных статьях мы представили ее новые функции и направление развития платформы.
Мы анонсировали альфа-версию TensorFlow 2.0 на саммите разработчиков TensorFlow, и пользователи теперь находятся в раннем доступе.
Примечание. Ссылка TensorFlow Developer Peak
https://www.tensorflow.org/dev-summit
Руководство по началу работы
Лучший способ освоить TensorFlow 2.0 Alpha — перейти на новый веб-сайт TensorFlow. Вы можете найти учебные пособия и руководства для альфа-версии по адресу tensorflow.org/alpha. Каждое руководство в альфа-документации автоматически загружает и устанавливает TensorFlow 2.0 Alpha, и это еще не все!
Примечание: ссылка на tensorflow.org/alpha
https://www.tensorflow.org/alpha
Мы рекомендуем вам просмотреть пример «Hello World» для начинающих и ветеранов, прежде чем читатьEffective TensorFlow 2.0руководство.
-
В примере для начинающих используется Keras Sequential API, который является самым простым способом начать работу с TensorFlow 2.0.
-
Ветеранский пример Показывает, как императивно писать прямые проходы, как писать собственные обучающие циклы с помощью GradientTape и как использовать tf.function для автоматической компиляции кода (всего одной строкой кода!)
Примечание: ссылка на пример для начинающих
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynb
Ссылка на пример ветерана
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/advanced.ipynb
В дополнение к этому у нас есть множество новых руководств, в том числе:
-
Важные рекомендации AutoGraph (позволяет получить полную производительность и переносимость ваших графиков без написания кода на уровне графика)
-
кодОбновитьРекомендации (удобно конвертировать скрипт в Код TensorFlow 1.x преобразован в код 2.0)
-
Другие начальные руководства по Керасу
Примечание: ссылка на руководство
https://github.com/tensorflow/docs/tree/master/site/en/r2/guide
Ссылка на автограф
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
Кера ссылка
https://github.com/tensorflow/docs/tree/master/site/en/r2/guide/keras
Если вы хотите увидеть, что изменилось, вы также можете просмотреть версию справочника по API (теперь со значительно меньшим количеством символов). Обратите внимание, что пока мы активно разрабатываем TensorFlow 2.0, целевая страница tensorflow.org по умолчанию по-прежнему использует документацию 1.x. Если вы планируете изучить справочник по API, обязательно выберите подходящую версию TensorFlow.
Примечание. Справочная ссылка API
https://www.tensorflow.org/versions/r2.0/api_docs/python/tf
Установить
Чтобы установить альфа-версию, мы рекомендуем вам создать новую виртуальную среду и использовать «pip install --upgrade --pre tensorflow» или «tensorflow-gpu» (требуется CUDA 10). Мы будем обновлять эту версию чаще, добавляя новые функции. Вы также можете добавить «!» к команде «!pip install --upgrade --pre tensorflow», чтобы попробовать ее в Colab. (Все учебники и руководства выше автоматически устанавливают последнюю версию).
Примечание: ссылка на Colab
https://colab.research.google.com/notebooks/welcome.ipynb#recent=true
функции, а не сеансы
Давайте углубимся в то, как эти две функции работают вместе в версии 2.0: нетерпеливое выполнение и «@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.0KerasОсновной опыт в качестве разработчика. В 2.0 можно использовать как обычно Керас, создайте модель с помощью 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 loss
def 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
Примечание: этот пример ссылки
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb
В этом примере используется GradientTape в стиле Autograd и вручную применяются градиенты с помощью оптимизатора. Это особенно полезно при написании пользовательских циклов обучения со сложной внутренней работой (например, при обучении с подкреплением) или при проведении исследований, которые легко помогут вам реализовать новые идеи, повышающие эффективность оптимизатора.
«Нетерпеливое выполнение» также помогает отлаживать и отслеживать работающий код. Вы можете использовать отладчик Python для проверки таких объектов, как переменные, слои и градиенты. В цикле обучения мы используем операторы Python, такие как «if», «for» и «print()».
Как только ваш код заработает правильно, вы захотите оптимизировать и повысить эффективность диаграммы. Для этого вы можете обернуть «поезд» декоратором «@tf.function». Автограф встроен в "tf.function", поэтому вам не нужно делать ничего особенного, чтобы получить предложение "если" или "для", которое работает с эффективностью графа.
@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 полностью поддерживает оценщики. См. новый учебник по повышению деревьев и пониманию модели.
Примечание: ссылка на учебник
https://github.com/tensorflow/docs/tree/master/site/en/r2/tutorials/estimators
Приглашаем вас принять участие в тестировании и оставить отзыв!
Мы будем признательны, если вы оставите отзыв после того, как попробуете последнюю версию и обновите модель! Присоединяйтесь к группе пользователей testing@TensorFlow и добро пожаловать на нашу еженедельную станцию поддержки TensorFlow 2.0 (вторник в 14:00 по тихоокеанскому времени, среда в 6:00 по Гринвичу).
Примечание: ссылка на группу пользователей testing@TensorFlow
https://groups.google.com/a/tensorflow.org/forum/?utm_medium=email&utm_source=footer#!forum/testing
Ссылка на сайт поддержки TensorFlow 2.0
https://docs.google.com/document/d/1i9_Ey9rYtslS6fryZ5Wm0vWWbrpScW3oh9bTRNVQ87Q/edit#heading=h.w7a5riqlaj2b
Вы можете найти ошибки, проблемы с производительностью и т. д., аномалии, о которых вы можете сообщить в системе отслеживания проблем с тегом 2.0. Было бы очень полезно предоставить минимальный полный пример, который точно воспроизводит ошибку.
Примечание. Ссылка на теги 2.0
https://github.com/tensorflow/tensorflow/issues?q=is%3Aissue+is%3Aopen+label%3A2.0
Больше возможностей, следите за обновлениями
Чтобы быть в курсе известных проблем и работ по разработке TensorFlow 2.0, см. средство отслеживания проектов TensorFlow 2.0 на Github. Мы продолжим разработку и улучшение TensorFlow 2.0, и вы должны время от времени видеть обновления наших пакетов сборки Nightly. Чтобы было ясно, это предварительная версия для разработчиков. С нетерпением ждем ваших отзывов!
Примечание. Ссылка на TensorFlow 2.0 Project Tracker
https://github.com/orgs/tensorflow/projects/4
Кроме того, если вы создали отличную работу с помощью TensorFlow 2.0, например, мобильные приложения, исследовательские проекты, художественные инсталляции и т. д., сообщите нам об этом, мы будем рады увидеть вашу работу. Пожалуйста, дайте нам знать здесь.
Примечание: ссылка здесь
https://services.google.com/fb/forms/tensorflowcasestudy/
Если вы хотите поделиться недавно разработанным примером, рассмотрите возможность отправки PR, чтобы добавить его в организацию TensorFlow как часть tensorflow/examples/community (https://github.com/tensorflow/examples/tree/master/community). ).
Подробнее об ИИ: