Voir sur TensorFlow.org | Exécuter dans Google Colab | Voir la source sur GitHub | Télécharger le cahier |
Aperçu
Ce tutoriel montre comment utiliser les fichiers de lecture et d' écriture sur Azure Blob Storage avec tensorflow, grâce à l'intégration du système de fichiers Azure tensorflow IO.
Un compte de stockage Azure est nécessaire pour lire et écrire des fichiers sur Azure Blob Storage. La clé de stockage Azure doit être fournie via la variable d'environnement :
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
Le nom du compte de stockage et le nom du conteneur font partie du nom de fichier uri :
azfs://<storage-account-name>/<container-name>/<path>
Dans ce tutoriel, pour démonstration des fins Optionnellement , vous pouvez Azurite qui est un émulateur de stockage Azure. Avec l'émulateur Azurite, il est possible de lire et d'écrire des fichiers via l'interface de stockage d'objets blob Azure avec TensorFlow.
Configuration et utilisation
Installez les packages requis et redémarrez le runtime
try:
%tensorflow_version 2.x
except Exception:
pass
!pip install tensorflow-io
Installer et configurer Azurite (facultatif)
Si un compte de stockage Azure n'est pas disponible, les éléments suivants sont nécessaires pour installer et configurer Azurite qui émule l'interface de stockage Azure :
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
Lire et écrire des fichiers dans Azure Storage avec TensorFlow
Voici un exemple de lecture et d'écriture de fichiers dans Azure Storage avec l'API de TensorFlow.
Il se comporte de la même manière que les autres systèmes de fichiers (par exemple, ou POSIX GCS) en tensorflow une fois tensorflow-io
package est importé, tensorflow-io
enregistrera automatiquement azfs
système d'utilisation.
Le Azure Storage Key devrait être fournie par TF_AZURE_STORAGE_KEY
variable d' environnement. Dans le cas contraire TF_AZURE_USE_DEV_STORAGE
pourrait être réglé à True
utiliser l' émulateur Azurite à la place:
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!
Configurations
Les configurations du stockage Azure Blob dans TensorFlow sont toujours effectuées via des variables d'environnement. Vous trouverez ci-dessous une liste complète des configurations disponibles :
-
TF_AZURE_USE_DEV_STORAGE
: Set 1 pour utiliser l' émulateur de stockage de développement local pour les connexions comme « az: //devstoreaccount1/container/file.txt ». Cela prendra precendence sur tous les autres paramètres afinunset
d'utiliser toute autre connexion -
TF_AZURE_STORAGE_KEY
: clé de compte pour le compte de stockage utilisé -
TF_AZURE_STORAGE_USE_HTTP
: ne importe quelle valeur si vous ne souhaitez pas utiliser le transfert https.unset
à utiliser par défaut de https -
TF_AZURE_STORAGE_BLOB_ENDPOINT
: Régler sur le point final de stockage de blob - par défaut est.core.windows.net
.