عرض على TensorFlow.org | تشغيل في Google Colab | عرض المصدر على جيثب | تحميل دفتر |
ملخص
وهذا يدل على تعليمي كيفية استخدام القراءة والكتابة الملفات على أزور النقطة التخزين مع TensorFlow، من خلال أزور التكامل نظام الملفات TensorFlow IO ل.
يلزم وجود حساب تخزين Azure لقراءة الملفات وكتابتها على مساحة تخزين Azure Blob. يجب توفير مفتاح تخزين Azure من خلال متغير بيئي:
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
يعد اسم حساب التخزين واسم الحاوية جزءًا من اسم الملف uri:
azfs://<storage-account-name>/<container-name>/<path>
في هذا البرنامج التعليمي، لعرض أغراض يمكنك اختياريا الإعداد ازوردية وهو منافس أزور التخزين. باستخدام محاكي Azurite ، يمكن قراءة الملفات وكتابتها من خلال واجهة تخزين Azure blob باستخدام TensorFlow.
الإعداد والاستخدام
قم بتثبيت الحزم المطلوبة ، وأعد تشغيل وقت التشغيل
try:
%tensorflow_version 2.x
except Exception:
pass
!pip install tensorflow-io
تثبيت Azurite وإعداده (اختياري)
في حالة عدم توفر حساب تخزين Azure ، يلزم ما يلي لتثبيت Azurite وإعداده الذي يحاكي واجهة Azure Storage:
npm install azurite@2.7.0
[K[?25hnpm WARN deprecated request@2.87.0: request has been deprecated, see https://github.com/request/request/issues/3142 [K[?25hnpm WARN saveError ENOENT: no such file or directory, open '/content/package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open '/content/package.json' npm WARN content No description npm WARN content No repository field. npm WARN content No README data npm WARN content No license field. + azurite@2.7.0 added 116 packages from 141 contributors in 6.591s
# The path for npm might not be exposed in PATH env,
# you can find it out through 'npm bin' command
npm_bin_path = get_ipython().getoutput('npm bin')[0]
print('npm bin path: ', npm_bin_path)
# Run `azurite-blob -s` as a background process.
# IPython doesn't recognize `&` in inline bash cells.
get_ipython().system_raw(npm_bin_path + '/' + 'azurite-blob -s &')
npm bin path: /content/node_modules/.bin
قراءة الملفات وكتابتها في Azure Storage باستخدام TensorFlow
فيما يلي مثال على قراءة الملفات وكتابتها في Azure Storage باستخدام واجهة برمجة تطبيقات TensorFlow.
انها تتصرف بنفس الطريقة كما نظم أخرى ملف (على سبيل المثال، POSIX أو GCS) في TensorFlow مرة واحدة tensorflow-io
يتم استيراد الحزمة، كما tensorflow-io
سوف تسجل تلقائيا azfs
مخطط للاستخدام.
وينبغي تقديم أزور التخزين الرئيسية من خلال TF_AZURE_STORAGE_KEY
المتغير البيئي. إلا TF_AZURE_USE_DEV_STORAGE
يمكن أن يكون لمجموعة True
لاستخدام محاكي اللازورد معدن أزرق بدلا من ذلك:
import os
import tensorflow as tf
import tensorflow_io as tfio
# Switch to False to use Azure Storage instead:
use_emulator = True
if use_emulator:
os.environ['TF_AZURE_USE_DEV_STORAGE'] = '1'
account_name = 'devstoreaccount1'
else:
# Replace <key> with Azure Storage Key, and <account> with Azure Storage Account
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
account_name = '<account>'
# Alternatively, you can use a shared access signature (SAS) to authenticate with the Azure Storage Account
os.environ['TF_AZURE_STORAGE_SAS'] = '<your sas>'
account_name = '<account>'
pathname = 'az://{}/aztest'.format(account_name)
tf.io.gfile.mkdir(pathname)
filename = pathname + '/hello.txt'
with tf.io.gfile.GFile(filename, mode='w') as w:
w.write("Hello, world!")
with tf.io.gfile.GFile(filename, mode='r') as r:
print(r.read())
Hello, world!
التكوينات
تتم دائمًا تكوينات تخزين Azure Blob في TensorFlow من خلال المتغيرات البيئية. فيما يلي قائمة كاملة بالتكوينات المتاحة:
-
TF_AZURE_USE_DEV_STORAGE
: تعيين إلى 1 لاستخدام محاكي تخزين التنمية المحلية للاتصالات مثل 'من الألف إلى الياء: //devstoreaccount1/container/file.txt. وهذا سوف يستغرق precendence على جميع الإعدادات الأخرى حتىunset
لاستخدام أي اتصال أخرى -
TF_AZURE_STORAGE_KEY
مفتاح الحساب لحساب التخزين في الاستخدام: -
TF_AZURE_STORAGE_USE_HTTP
: تعيين إلى أي قيمة إذا لم تكن تريد استخدام نقل HTTPS.unset
لاستخدام الافتراضي من https -
TF_AZURE_STORAGE_BLOB_ENDPOINT
: تعيين إلى نقطة النهاية من تخزين سائل - الافتراضي هو.core.windows.net
.