TensorFlow.org'da görüntüleyin | Google Colab'da çalıştırın | Kaynağı GitHub'da görüntüleyin | Not defterini indir |
genel bakış
Bu eğitimde gösterileri nasıl okuma ve yazma dosyaları kullanmak Azure Blob Depolama TensorFlow IO Azure dosya sistemi entegrasyonu ile, TensorFlow ile.
Azure Blob Storage üzerinde dosya okumak ve yazmak için bir Azure depolama hesabı gerekir. Azure Depolama Anahtarı, çevresel değişken aracılığıyla sağlanmalıdır:
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
Depolama hesabı adı ve kapsayıcı adı, uri dosya adının bir parçasıdır:
azfs://<storage-account-name>/<container-name>/<path>
Bu eğitimde, demo amaçlı yapabilirsiniz isteğe kurulum Azurit bir Azure Depolama emülatörü. Azurite öykünücüsü ile TensorFlow ile Azure blob depolama arabirimi üzerinden dosya okumak ve yazmak mümkündür.
Kurulum ve kullanım
Gerekli paketleri kurun ve çalışma zamanını yeniden başlatın
try:
%tensorflow_version 2.x
except Exception:
pass
!pip install tensorflow-io
Azurite'yi kurun ve kurun (isteğe bağlı)
Bir Azure Depolama Hesabının mevcut olmaması durumunda, Azure Depolama arabirimine öykünen Azurite yüklemek ve kurmak için aşağıdakiler gereklidir:
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
TensorFlow ile dosyaları Azure Storage'a okuyun ve yazın
Aşağıda, TensorFlow'un API'si ile Azure Storage'a dosya okuma ve yazma örneği verilmiştir.
Bir zamanlar TensorFlow diğer dosya sistemleri (örneğin, POSIX veya GCS) ile aynı şekilde çalışır tensorflow-io
olarak paket içe, tensorflow-io
otomatik kayıt olacak azfs
kullanılmak üzere şeması.
Azure Depolama Anahtar yoluyla sağlanmalıdır TF_AZURE_STORAGE_KEY
çevre değişkeni. Aksi TF_AZURE_USE_DEV_STORAGE
ayarlı olabilir True
yerine Azurit emülatör kullanmak:
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!
konfigürasyonlar
TensorFlow'daki Azure Blob Storage yapılandırmaları her zaman çevresel değişkenler aracılığıyla yapılır. Aşağıda mevcut konfigürasyonların tam listesi bulunmaktadır:
-
TF_AZURE_USE_DEV_STORAGE
: ': //devstoreaccount1/container/file.txt az' 1'e ayarla gibi bağlantılar için yerel kalkınma depolama emülatör kullanmak. Böylece bu diğer tüm ayarları üzerinde precendence alacakunset
başka bağlantı kullanmak -
TF_AZURE_STORAGE_KEY
: Kullanılan depolama hesabı için Hesap anahtar -
TF_AZURE_STORAGE_USE_HTTP
: Https'leri transferi kullanmak istemiyorsanız herhangi bir değere ayarlayın.unset
https varsayılan kullanmak -
TF_AZURE_STORAGE_BLOB_ENDPOINT
: blob depolama bitiş noktasına ayarlayın - varsayılan değer.core.windows.net
.