Zobacz na TensorFlow.org | Uruchom w Google Colab | Wyświetl źródło na GitHub | Pobierz notatnik |
Przegląd
Ten poradnik pokazuje, jak używać odczytywać i zapisywać pliki na Azure Blob Storage z TensorFlow, poprzez integrację systemu plików Azure TensorFlow zamówienia reklamowego.
Konto magazynu platformy Azure jest potrzebne do odczytywania i zapisywania plików w usłudze Azure Blob Storage. Klucz usługi Azure Storage należy podać za pomocą zmiennej środowiskowej:
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
Nazwa konta magazynu i nazwa kontenera są częścią uri nazwy pliku:
azfs://<storage-account-name>/<container-name>/<path>
W tym tutorialu, do celów demonstracyjnych można opcjonalnie konfiguracja Azurite co jest emulator Azure Storage. Dzięki emulatorowi Azurite możliwe jest odczytywanie i zapisywanie plików za pośrednictwem interfejsu Azure Blob Storage z TensorFlow.
Konfiguracja i użytkowanie
Zainstaluj wymagane pakiety i uruchom ponownie środowisko wykonawcze
try:
%tensorflow_version 2.x
except Exception:
pass
!pip install tensorflow-io
Zainstaluj i skonfiguruj Azurite (opcjonalnie)
Jeśli konto usługi Azure Storage nie jest dostępne, do zainstalowania i skonfigurowania usługi Azurite emulującej interfejs usługi Azure Storage potrzebne są następujące elementy:
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
Odczytuj i zapisuj pliki w usłudze Azure Storage za pomocą TensorFlow
Poniżej przedstawiono przykład odczytywania i zapisywania plików w usłudze Azure Storage za pomocą interfejsu API TensorFlow.
Zachowuje się tak samo jak inne systemy plików (np POSIX lub GCS) w TensorFlow raz tensorflow-io
pakiet jest importowanych, jak tensorflow-io
automatycznie zarejestruje azfs
system do użytku.
Azure Storage Key powinno być zapewnione poprzez TF_AZURE_STORAGE_KEY
zmiennej środowiskowej. Inaczej TF_AZURE_USE_DEV_STORAGE
może być ustawiona na True
aby korzystać z emulatora Azuryt zamiast:
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!
Konfiguracje
Konfiguracje usługi Azure Blob Storage w TensorFlow są zawsze wykonywane za pomocą zmiennych środowiskowych. Poniżej pełna lista dostępnych konfiguracji:
-
TF_AZURE_USE_DEV_STORAGE
: Zestaw 1, aby używać lokalnej emulator pamięci rozwój połączeń, takich jak „AZ: //devstoreaccount1/container/file.txt”. To zajmie precendence nad wszystkimi innymi ustawieniami takunset
używać żadnego innego połączenia -
TF_AZURE_STORAGE_KEY
klucz konta na rachunek przechowywania w użyciu: -
TF_AZURE_STORAGE_USE_HTTP
: ustawiona na dowolną wartość, jeśli nie chcesz korzystać z https transfer.unset
używać domyślną https -
TF_AZURE_STORAGE_BLOB_ENDPOINT
: Zestaw do punktu końcowego składowania blob - domyślnie jest.core.windows.net
.