TensorFlow

TensorFlow هو إطار مفتوح المصدر للتعلم الآلي الذي أنشأته Google. وهو يدعم التعلم العميق والحوسبة العددية العامة على وحدات المعالجة المركزة، وحدات المعالجة المركزة، ومجموعات وحدات المعالجة العالمية. يخضع لأحكام وشروط رخصة أباتشي 2.0.

يتضمن وقت تشغيل إعادة ترتيب البيانات التعلم الآلي TensorFlow و TensorBoard حتى تتمكن من استخدام هذه المكتبات دون تثبيت أي حزم. للحصول على إصدار TensorFlow المثبت في إصدار Databricks Runtime ML الذي تستخدمه، راجع ملاحظات الإصدار.

توفر الأقسام التالية إرشادات حول تثبيت TensorFlow على Azure Databricks وتعطي مثالا على تشغيل برامج TensorFlow.

ملاحظة

هذا الدليل ليس دليلا شاملا على TensorFlow. انظر موقع TensorFlow.

تثبيت تينسورفلو

يوفر هذا القسم إرشادات لتثبيت TensorFlow أو تخفيضه على وقت تشغيل Databricks التعلم الآلي و Databricks Runtime، بحيث يمكنك تجربة أحدث الميزات في TensorFlow. بسبب تبعيات الحزمة، قد تكون هناك مشكلات توافق مع حزم مثبتة مسبقا. بعد التثبيت، يمكنك التحقق من الإصدار المثبت بتنفيذ الأمر التالي في دفتر ملاحظات Python:

import tensorflow as tf
print([tf.__version__, tf.test.is_gpu_available()])

تثبيت TensorFlow 2.4 على Databricks وقت التشغيل 7.6

توصي Azure Databricks بتثبيت TensorFlow باستخدام أوامر السحر ٪pip.

تم بناء الإصدار الرسمي TensorFlow 2.4 مقابل CUDA 11.0 ، وهو غير متوافق مع CUDA 10.1 المثبت في Databricks Runtime 7.0 ML وما فوق. يوفر Azure Databricks بناء مخصص TensorFlow 2.4.0 متوافق مع CUDA 10.1. استخدم الأمر GPU أدناه لتثبيته.

وحده المعالجه المركزيه

%pip install tensorflow-cpu==2.4.*

الجرافيك

%pip install "https://databricks-prod-cloudfront.cloud.databricks.com/artifacts/tensorflow/runtime-7.x/tensorflow-2.4.0-cp37-cp37m-linux_x86_64.whl"

تثبيت TensorFlow 2.3 على Databricks وقت التشغيل 7.2

توصي Azure Databricks بتثبيت TensorFlow باستخدام أوامر السحر ٪pip. في دفتر ملاحظات، قم بتشغيل:

%pip install tensorflow-cpu==2.3.*

تثبيت TensorFlow 1.15 على Databricks وقت التشغيل 7.2

في دفتر ملاحظات، قم بتشغيل:

%pip install tensorflow-cpu==1.15.*

تثبيت TensorFlow 2.3 على Databricks وقت التشغيل 7.2 مل

في دفتر ملاحظات، قم بتشغيل:

وحده المعالجه المركزيه

%pip install tensorflow-cpu==2.3.*

الجرافيك

%pip install tensorflow-gpu==2.3.*

تثبيت TensorFlow 1.15 على Databricks وقت التشغيل 7.2 مل

في دفتر ملاحظات، قم بتشغيل:

وحده المعالجه المركزيه

%pip install tensorflow-cpu==1.15.*

الجرافيك

تم بناء الإصدار الرسمي TensorFlow 1.15 مقابل CUDA 10.0 ، وهو غير متوافق مع CUDA 10.1 المثبت في Databricks Runtime 7.0 ML وما فوق. يوفر Azure Databricks بناء مخصص TensorFlow 1.15.3 التي يتم التوافق مع CUDA 10.1. استخدم الأمر أدناه لتثبيته.

%pip install https://databricks-prod-cloudfront.cloud.databricks.com/artifacts/tensorflow/runtime-7.x/tensorflow-1.15.3-cp37-cp37m-linux_x86_64.whl

تثبيت TensorFlow 2.3 على Databricks وقت التشغيل 5.5 LTS التعلم الآلي

Init البرنامج النصي للتجمعات على:

وحده المعالجه المركزيه

#!/bin/bash

set -e

/databricks/python/bin/python -V
. /databricks/conda/etc/profile.d/conda.sh
conda activate /databricks/python

pip install --upgrade pip
pip install tensorflow-cpu==2.3.* setuptools==41.* grpcio==1.24.*

الجرافيك

#!/bin/bash

set -e

apt-get remove -y --auto-remove cuda-toolkit-10-0
apt-get update
apt-get install -y --no-install-recommends --allow-downgrades \
  libnccl2=2.4.8-1+cuda10.1 \
  libnccl-dev=2.4.8-1+cuda10.1 \
  cuda-libraries-10-1 \
  libcudnn7=7.6.4.38-1+cuda10.1 \
  libcudnn7-dev=7.6.4.38-1+cuda10.1 \
  libcublas10=10.2.1.243-1 \
  libcublas-dev=10.2.1.243-1 \
  cuda-libraries-dev-10-1 \
  cuda-compiler-10-1
ln -sfn cuda-10.1 /usr/local/cuda

/databricks/python/bin/python -V
. /databricks/conda/etc/profile.d/conda.sh
conda activate /databricks/python

pip install --upgrade pip
pip install tensorflow==2.3.* setuptools==41.* grpcio==1.24.*

تثبيت TensorFlow 2.3 على Databricks وقت التشغيل 5.5 LTS

Init البرنامج النصي للتجمعات على:

وحده المعالجه المركزيه

#!/bin/bash

set -e

/databricks/python/bin/python -V
/databricks/python/bin/pip install tensorflow-cpu==2.3.* setuptools==41.* pyasn1==0.4.6
/databricks/python/bin/pip uninstall -y numpy
rm -rf /databricks/python/lib/python3.5/site-packages/numpy
/databricks/python/bin/pip install numpy==1.18.4

الجرافيك

#!/bin/bash

set -e

apt-get update
apt-get install -y gnupg-curl

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.1.243-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_10.1.243-1_amd64.deb
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb

apt-get update
apt-get install -y --no-install-recommends --allow-downgrades \
  libnccl2=2.4.8-1+cuda10.1 \
  libnccl-dev=2.4.8-1+cuda10.1 \
  cuda-libraries-10-1 \
  libcudnn7=7.6.4.38-1+cuda10.1 \
  libcudnn7-dev=7.6.4.38-1+cuda10.1 \
  libcublas10=10.2.1.243-1 \
  libcublas-dev=10.2.1.243-1 \
  cuda-libraries-dev-10-1 \
  cuda-compiler-10-1
ln -sfn cuda-10.1 /usr/local/cuda

/databricks/python/bin/python -V
/databricks/python/bin/pip install tensorflow==2.3.* setuptools==41.*
/databricks/python/bin/pip uninstall -y numpy
rm -rf /databricks/python/lib/python3.5/site-packages/numpy
/databricks/python/bin/pip install numpy==1.18.4

TensorFlow 2 المشاكل المعروفة

TensorFlow 2 لديه عدم توافق معروف مع بيكلينغ بيثون. قد تواجه ذلك إذا كنت تستخدم PySpark، هوروفودRunner،Hyperopt،أو أي حزم أخرى تعتمد على بيكلينغ. الحل البديل هو استيراد وحدات TensorFlow بشكل صريح داخل الوظائف الخاصة بك. وفيما يلي مثال على ذلك:

import tensorflow as tf

def bad_func(_):
  tf.keras.Sequential()

# You might see an error.
sc.parallelize(range(0)).foreach(bad_func)

def good_func(_):
  import tensorflow as tf
  tf.keras.some_func

# No error.
sc.parallelize(range(0)).foreach(good_func)

تثبيت TensorFlow 1.15 على Databricks وقت التشغيل 5.5 LTS التعلم الآلي

توصي Azure Databricks بتثبيت TensorFlow 1.15 على Databricks Runtime 5.5 LTS التعلم الآلي باستخدام برنامج نصي init.

Init البرنامج النصي للتجمعات على:

وحده المعالجه المركزيه

#!/bin/bash

set -e

/databricks/python/bin/python -V
. /databricks/conda/etc/profile.d/conda.sh
conda install -y conda=4.6
conda activate /databricks/python

conda install -y tensorflow-mkl=1.15 setuptools=41

الجرافيك

#!/bin/bash

set -e

/databricks/python/bin/python -V
. /databricks/conda/etc/profile.d/conda.sh
conda install -y conda=4.6
conda activate /databricks/python

conda install -y tensorflow-gpu=1.15 setuptools=41

تثبيت TensorFlow 1.15 على Databricks وقت التشغيل 5.5 LTS

توصي Azure Databricks بتثبيت TensorFlow 1.15 على Databricks Runtime 5.5 LTS باستخدام برنامج نصي init.

Init البرنامج النصي للتجمعات على:

وحده المعالجه المركزيه

#!/bin/bash

set -e

/databricks/python/bin/python -V
/databricks/python/bin/pip install tensorflow-cpu==1.15.* setuptools==41.*

الجرافيك

#!/bin/bash

set -e

apt-get update
apt-get install -y gnupg-curl

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub

wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb
dpkg -i nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_amd64.deb

apt-get update
apt-get install -y --no-install-recommends cuda-libraries-10-0 libcudnn7=7.4.2.24-1+cuda10.0

/databricks/python/bin/python -V
/databricks/python/bin/pip install tensorflow-gpu==1.15.* setuptools==41.*

تينسوربورد

TensorBoard هو مجموعة من أدوات التصور لتصحيح الأخطاء ، وتحسين وفهم TensorFlow ، PyTorch ، وغيرها من برامج التعلم الآلي.

استخدام تينسوربورد

استخدام TensorBoard على Databricks وقت التشغيل 7.2 وما فوق

بدء تشغيل TensorBoard في Azure Databricks لا يختلف عن بدء تشغيل على دفتر ملاحظات Jupyter على الكمبيوتر المحلي.

  1. تحميل %tensorboard الأمر السحري وتعريف دليل السجل الخاص بك.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. استدعاء %tensorboard الأمر السحري.

    %tensorboard --logdir $experiment_log_dir
    

    يبدأ تشغيل ملقم TensorBoard ويعرض واجهة المستخدم المضمنة في دفتر الملاحظات. كما يوفر ارتباط لفتح TensorBoard في علامة تبويب جديدة.

    تظهر لقطة الشاشة التالية واجهة مستخدم TensorBoard التي بدأت في دليل سجل تم ملؤها.

    تم بدء تشغيل واجهة مستخدم TensorBoard في دليل السجل الذي تم ملؤه

يمكنك أيضا بدء تشغيل TensorBoard باستخدام وحدة دفتر الملاحظات TensorBoard مباشرة.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

استخدام TensorBoard على Databricks وقت التشغيل 7.1 وما دون

لبدء تشغيل TensorBoard من دفتر الملاحظات، استخدم dbutils.tensorboard الأداة المساعدة.

dbutils.tensorboard.start("/tmp/tensorflow_log_dir")

يعرض هذا الأمر ارتباط عند النقر فوقه، يفتح TensorBoard في علامة تبويب جديدة.

عند بدء استخدام هذا TENSorBoard API يستمر في التشغيل حتى تقوم بإيقاف تشغيله مع dbutils.tensorboard.stop() أو إيقاف تشغيل الكتلة.

ملاحظة

إذا قمت بإرفاق TensorFlow إلى الكتلة الخاصة بك كمكتبة Azure Databricks، قد تحتاج إلى إعادة إرفاق دفتر الملاحظات قبل بدء تشغيل TensorBoard.

سجلات ودلائل TensorBoard

TensorBoard تصور برامج التعلم الآلي الخاص بك عن طريق قراءة السجلات التي تم إنشاؤها بواسطة عمليات الاسترجاع TensorBoard وظائف في TensorBoard أو PyTorch. لإنشاء سجلات لمكتبات التعلم الآلي الأخرى، يمكنك كتابة السجلات مباشرة باستخدام كتاب ملفات TensorFlow (انظر Module: tf.summary for TensorFlow 2.x وانظر Module: tf.compat.v1.summary ل API الأقدم في TensorFlow 1.x ).

للتأكد من أن سجلات التجربة الخاصة بك يتم تخزينها بشكل موثوق، توصي Azure Databricks بكتابة سجلات إلى DBFS (أي دليل سجل /dbfs/ تحت) بدلا من نظام ملفات الكتلة المؤقتة. لكل تجربة، بدء تشغيل TensorBoard في دليل فريد. لكل تشغيل التعليمات البرمجية للتعلم الآلي في التجربة التي تنشئ سجلات، قم بتعيين رد الاتصال TensorBoard أو كاتب الملفات للكتابة إلى دليل فرعي لدليل التجربة. بهذه الطريقة، سيتم فصل البيانات في واجهة مستخدم TensorBoard إلى أشواط.

اقرأ وثائق TensorBoard الرسمية للبدء في استخدام TensorBoard لتسجيل معلومات برنامج التعلم الآلي.

إدارة عمليات TensorBoard

لا يتم إنهاء العمليات TensorBoard التي بدأت داخل دفتر ملاحظات Azure Databricks عند فصل دفتر الملاحظات أو إعادة تشغيل REPL (على سبيل المثال، عند مسح حالة دفتر الملاحظات). لقتل عملية TensorBoard يدويا، أرسل لها إشارة إنهاء باستخدام %sh kill -15 pid . قد تكون عمليات TensorBoard التي تم قتلها بشكل غير صحيح تالفة notebook.list() .

لسرد ملقمات TensorBoard قيد التشغيل حاليا على نظام المجموعة الخاص بك، مع دلائل السجل المطابقة الخاصة بهم و معرفات العملية، قم notebook.list() بتشغيلها من وحدة دفتر الملاحظات TensorBoard.

المشكلات المعروفة

  • واجهة المستخدم المضمنة TensorBoard داخل iframe. تمنع ميزات أمان المستعرض الارتباطات الخارجية داخل واجهة المستخدم من العمل ما لم تفتح الارتباط في علامة تبويب جديدة.
  • --window_titleيتم تجاوز خيار TensorBoard على ستريكات البيانات Azure.
  • بشكل افتراضي، تفحص TensorBoard نطاق منفذ لتحديد منفذ للاستماع إليه. إذا كان هناك الكثير TensorBoard عمليات قيد التشغيل على الكتلة، قد تكون كافة المنافذ في نطاق المنفذ غير متوفرة. يمكنك حل هذا القيد عن طريق تحديد رقم منفذ مع --port الوسيطة. يجب أن يكون المنفذ المحدد بين 6006 و 6106.
  • لكي تتمكن من تنزيل الارتباطات للعمل، يجب عليك فتح TensorBoard في علامة تبويب.
  • عند استخدام TensorBoard 1.15.0، تكون علامة التبويب جهاز العرض فارغة. كحل بديل، لزيارة صفحة البروجيكتور مباشرة، يمكنك استبدال #projector عنوان URL بواسطة data/plugin/projector/projector_binary.html .
  • TensorBoard 2.4.0 لديه مشكلة معروفة قد تؤثر على عرض TensorBoard إذا تمت ترقيته.

استخدام TensorFlow على عقدة واحدة

لاختبار وترحيل مهام سير عمل TensorFlow أحادية الجهاز، يمكنك البدء مع نظام مجموعة برنامج التشغيل فقط على Azure Databricks بتعيين عدد العمال إلى الصفر. على الرغم من أن Apache Spark غير فعال في ظل هذا الإعداد ، إلا أنه طريقة فعالة من حيث التكلفة لتشغيل سير عمل TensorFlow أحادي الجهاز. يعرض دفتر الملاحظات التالي كيفية تشغيل TensorFlow (1.x و 2.x) ، مع مراقبة TensorBoard على نظام مجموعة برنامج التشغيل فقط.

دفتر الملاحظات TensorFlow 1.15/2.x

الحصول على دفتر ملاحظات