TensorFlow.orgで表示 | GoogleColabで実行 | GitHubでソースを表示 | ノートブックをダウンロード |
概要
このチュートリアルでショーはどのように読み取りおよび書き込みのファイルを使用するにはAzureブロブストレージTensorFlow IOのAzureのファイルシステムの統合を通じて、TensorFlowで。
Azure Blob Storageでファイルを読み書きするには、Azureストレージアカウントが必要です。 Azureストレージキーは、環境変数を介して提供する必要があります。
os.environ['TF_AZURE_STORAGE_KEY'] = '<key>'
ストレージアカウント名とコンテナ名は、ファイル名uriの一部です。
azfs://<storage-account-name>/<container-name>/<path>
このチュートリアルでは、デモの目的のために使用することができ、必要に応じて設定アズライトAzureストレージエミュレーターです。 Azuriteエミュレーターを使用すると、TensorFlowを使用したAzureBLOBストレージインターフェイスを介してファイルの読み取りと書き込みを行うことができます。
セットアップと使用法
必要なパッケージをインストールし、ランタイムを再起動します
try:
%tensorflow_version 2.x
except Exception:
pass
!pip install tensorflow-io
Azuriteのインストールとセットアップ(オプション)
Azureストレージアカウントが利用できない場合、AzureストレージインターフェイスをエミュレートするAzuriteをインストールしてセットアップするには、次のものが必要です。
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を使用してAzureStorageにファイルを読み書きします
以下は、TensorFlowのAPIを使用してAzureStorageにファイルを読み書きする例です。
一度はTensorFlowに他のファイルシステム(例えば、POSIXまたはGCS)と同じような動作をします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!
構成
TensorFlowでのAzureBlob Storageの構成は、常に環境変数を介して行われます。以下は、利用可能な構成の完全なリストです。
-
TF_AZURE_USE_DEV_STORAGE
:1に設定が「://devstoreaccount1/container/file.txt AZ」のような接続のための地域開発・ストレージ・エミュレータを使用します。これには、他のすべての設定よりも優先となりますunset
他の接続を使用します TF_AZURE_STORAGE_KEY
:使用中のストレージアカウントのアカウントキーTF_AZURE_STORAGE_USE_HTTP
:あなたがhttps転送を使用しない場合は、任意の値に設定してください。unset
HTTPSのデフォルトを使用しますTF_AZURE_STORAGE_BLOB_ENDPOINT
:ブロブストレージのエンドポイントに設定します-デフォルトは.core.windows.net
。