אחסון תכלת עם TensorFlow

הצג באתר TensorFlow.org הפעל בגוגל קולאב צפה במקור ב-GitHub הורד מחברת

סקירה כללית

מופעים הדרכה זו כיצד להשתמש בקבצים קרוא וכתוב על Azure בועה אחסון עם TensorFlow, באמצעות שילוב מערכת הקבצים Azure של TensorFlow IO.

יש צורך בחשבון Azure Storage כדי לקרוא ולכתוב קבצים ב-Azure Blob Storage. יש לספק את מפתח האחסון של Azure באמצעות משתנה סביבתי:

os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'

שם חשבון האחסון ושם המכולה הם חלק משם הקובץ uri:

azfs://<storage-account-name>/<container-name>/<path>

במדריך זה, עבור הדגמה למטרות לך אפשרות התקנה ואזוריט שהנה אמולטור חפצי Azure. עם אמולטור Azurite ניתן לקרוא ולכתוב קבצים דרך ממשק האחסון של Azure blob עם TensorFlow.

הגדרה ושימוש

התקן את החבילות הנדרשות והפעל מחדש את זמן הריצה

try:
  %tensorflow_version 2.x 
except Exception:
  pass

!pip install tensorflow-io

התקן והגדר את Azurite (אופציונלי)

במקרה שחשבון Azure Storage אינו זמין, יש צורך בפעולות הבאות כדי להתקין ולהגדיר את 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 עם ה-API של TensorFlow.

הוא מתנהג באותו אופן כמו מערכות קבצים אחרות (למשל, POSIX או GCS) ב TensorFlow פעם tensorflow-io חבילה מיובאת, כמו tensorflow-io אוטומטי ירשום azfs ערכה לשימוש.

מפתח חפצי Azure צריך להינתן באמצעות 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 Storage ב-TensorFlow נעשות תמיד באמצעות משתנים סביבתיים. להלן רשימה מלאה של תצורות זמינות:

  • TF_AZURE_USE_DEV_STORAGE : הגדר 1 לשימוש אמולטור אחסון הפיתוח המקומי לחיבורים כמו "AZ: //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 .