Выпуск сістэмы машыннага навучання TensorFlow 2.0

Прадстаўлены значны выпуск платформы машыннага навучання Tensorflow 2.0, якая прадстаўляе гатовыя рэалізацыі розных алгарытмаў глыбокага машыннага навучання, просты праграмны інтэрфейс для пабудовы мадэляў на мове Python і нізкаўзроўневы інтэрфейс для мовы С++, які дазваляе кіраваць пабудовай і выкананнем вылічальных графаў. Код сістэмы напісаны на мовах З++ і Python і распаўсюджваецца пад ліцэнзіяй Apache.

Платформа першапачаткова распрацавана камандай Google Brain і выкарыстоўваюцца ў сэрвісах Google для распазнання прамовы, вылучэнні асоб на фатаграфіях, вызначэнне падабенства малюнкаў, адсяванне спаму ў Gmail, падбору навін у Google News і арганізацыі перакладу з улікам сэнсу. Размеркаваныя сістэмы машыннага навучання можна ствараць на тыпавым абсталяванні, дзякуючы ўбудаванай падтрымцы ў TensorFlow разнясенні вылічэнняў на некалькі CPU ці GPU.

TensorFlow дае бібліятэку гатовых алгарытмаў лікавых вылічэнняў, рэалізаваных праз графы патокаў даных (data flow graphs). Вузлы ў такіх графах рэалізуюць матэматычныя аперацыі або кропкі ўваходу/высновы, у той час як рэбры графа ўяўляюць шматмерныя масівы дадзеных (тэнзары), якія перацякаюць паміж вузламі.
Вузлы могуць быць замацаваны за вылічальнымі прыладамі і выконвацца асінхронна, паралельна апрацоўваючы зараз усе прыдатныя да іх тэзары, што дазваляе арганізаваць адначасовую працу вузлоў у нейронавай сетцы па аналогіі з адначасовай актывацыяй нейронаў у мозгу.

Асноўная ўвага пры падрыхтоўцы новай версіі была нададзена спрашчэнню і прастаце выкарыстання. Некаторыя навіны:

  • Для пабудовы і трэніроўкі мадэляў прапанаваны новы высокаўзроўневы API Керас, які прадстаўляе некалькі варыянтаў інтэрфейсаў для пабудовы мадэляў (Sequential, Functional, Subclassing) з магчымасцю іх неадкладнага выканання (без папярэдняй кампіляцыі) і з простым механізмам адладкі;
  • Дададзены API tf.distribute.Strategy для арганізацыі размеркаванага навучання мадэляў з мінімальнай зменай існуючага кода. Акрамя магчымасці разнясення вылічэнняў на некалькі GPU, даступная эксперыментальная падтрымка разнясення працэсу навучання на некалькі незалежных апрацоўшчыкаў і магчымасць задзейнічання хмарных ТПУ (Tensor processing unit);
  • Замест дэкларатыўнай мадэлі пабудовы графа з выкананнем праз tf.Session прадстаўлена магчымасць напісання звычайных функцый на мове Python, якія пры дапамозе выкліку tf.function могуць быць пераўтвораны ў графы і затым аддалена выкананы, серыялізаваны або аптымізаваны для павышэння прадукцыйнасці;
  • Дададзены транслятар AutoGraph, пераўтваральны струмень каманд Python у выразы TensorFlow, што дазваляе выкарыстоўваць код на мове Python усярэдзіне функцый tf.function-decorated, tf.data, tf.distribute і tf.keras;
  • У SavedModel уніфікаваны фармат абмену мадэлямі і дададзена падтрымка захавання і ўзнаўленні стану мадэляў. Сабраныя для TensorFlow мадэлі зараз могуць быць выкарыстаны ў TensorFlow Lite (на мабільных прыладах), TensorFlow JS (у браўзэры або Node.js), Абслугоўванне TensorFlow и Канцэнтратар TensorFlow;
  • Уніфікаваны API tf.train.Optimizers і tf.keras.Optimizers, замест compute_gradients для вылічэння градыентаў прапанаваны новы клас GradientTape;
  • Значна павялічана прадукцыйнасць пры выкарыстанні GPU.
    Хуткасць навучання мадэляў на сістэмах з GPU NVIDIA Volta і Turing узрасла да трох разоў;

  • Праведзена вялікая чыстка API, многія выклікі перайменаваны або выдалены, спынена падтрымка глабальных зменных у дапаможных метадах. Замест tf.app, tf.flags, tf.logging прапанаваны новы API absl-py. Для працягу выкарыстання старога API падрыхтаваны модуль compat.v1.

Крыніца: opennet.ru

Дадаць каментар