Выпуск систСмы машинного обучСния TensorFlow 2.0

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ выпуск ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ машинного обучСния TensorFlow 2.0, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ машинного обучСния, простой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс для построСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° языкС Python ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ интСрфСйс для языка Π‘++, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ построСниСм ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°Ρ„ΠΎΠ². Код систСмы написан Π½Π° языках Π‘++ ΠΈ Python ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Google Brain ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² сСрвисах Google для распознавания Ρ€Π΅Ρ‡ΠΈ, выдСлСния Π»ΠΈΡ† Π½Π° фотографиях, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ схоТСсти ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, отсСиваниС спама Π² Gmail, ΠΏΠΎΠ΄Π±ΠΎΡ€Π° новостСй Π² Google News ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ смысла. РаспрСдСлённыС систСмы машинного обучСния ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, благодаря встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π² TensorFlow разнСсСния вычислСний Π½Π° нСсколько CPU ΠΈΠ»ΠΈ GPU.

TensorFlow прСдоставляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² числСнных вычислСний, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π³Ρ€Π°Ρ„Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (data flow graphs). Π£Π·Π»Ρ‹ Π² Ρ‚Π°ΠΊΠΈΡ… Π³Ρ€Π°Ρ„Π°Ρ… Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ€Ρ‘Π±Ρ€Π° Π³Ρ€Π°Ρ„Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π΅Π½Π·ΠΎΡ€Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ.
Π£Π·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Π·Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ устройствами ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ асинхронно, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ обрабатывая Ρ€Π°Π·ΠΎΠΌ всС подходящиС ΠΊ Π½ΠΈΠΌ Ρ‚Π΅Π·ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΡƒΠ·Π»ΠΎΠ² Π² Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠ΅ΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π² ΠΌΠΎΠ·Π³Π΅.

ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΡŽ ΠΈ простотС использования. НСкоторыС Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Для построСния ΠΈ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ высокоуровнСвый API Keras, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² интСрфСйсов для построСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (Sequential, Functional, Subclassing) с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡ… Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния (Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции) ΠΈ с простым ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ API tf.distribute.Strategy для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ распрСдСлённого обучСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. Помимо возмоТности разнСсСния вычислСний Π½Π° нСсколько GPU, доступна ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° разнСсСния процСсса обучСния Π½Π° нСсколько нСзависимых ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задСйствования ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… TPU (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 Serving ΠΈ TensorFlow Hub;
  • Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ 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