টেনসরফ্লো সহ Azure ব্লব স্টোরেজ

TensorFlow.org এ দেখুন Google Colab-এ চালান GitHub-এ উৎস দেখুন নোটবুক ডাউনলোড করুন

ওভারভিউ

এই টিউটোরিয়ালটি দেখায় কিভাবে পড়তে এবং লিখতে ফাইল ব্যবহার করতে আকাশী নীল ব্লব সংগ্রহস্থল TensorFlow সঙ্গে, TensorFlow আই এর নভোনীল ফাইল সিস্টেম ইন্টিগ্রেশন মাধ্যমে।

Azure ব্লব স্টোরেজে ফাইল পড়তে এবং লিখতে একটি Azure স্টোরেজ অ্যাকাউন্ট প্রয়োজন। Azure স্টোরেজ কী পরিবেশগত পরিবর্তনশীল মাধ্যমে প্রদান করা উচিত:

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

স্টোরেজ অ্যাকাউন্টের নাম এবং কন্টেইনারের নাম uri ফাইলের অংশ:

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

এই টিউটোরিয়ালে, ডেমো উদ্দেশ্যে আপনি যা করতে পারেন ঐচ্ছিকরূপে সেটআপ Azurite যা নভোনীল সংগ্রহস্থল এমুলেটর হয়। Azurite এমুলেটরের সাহায্যে TensorFlow-এর সাথে Azure ব্লব স্টোরেজ ইন্টারফেসের মাধ্যমে ফাইল পড়া এবং লেখা সম্ভব।

সেটআপ এবং ব্যবহার

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন এবং রানটাইম পুনরায় চালু করুন

try:
  %tensorflow_version 2.x 
except Exception:
  pass

!pip install tensorflow-io

Azurite ইনস্টল এবং সেটআপ করুন (ঐচ্ছিক)

একটি Azure স্টোরেজ অ্যাকাউন্ট উপলব্ধ না হলে, Azurite ইনস্টল এবং সেটআপ করার জন্য নিম্নলিখিতগুলি প্রয়োজন যা 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

TensorFlow-এর সাহায্যে Azure স্টোরেজ-এ ফাইল পড়ুন এবং লিখুন

নিচে TensorFlow এর API দিয়ে Azure স্টোরেজে ফাইল পড়া এবং লেখার একটি উদাহরণ।

এটা তোলে TensorFlow অন্যান্য ফাইল সিস্টেম (যেমন, POSIX বা GCS) একবার মতো একই ভাবে আচরণ করবে tensorflow-io প্যাকেজ আমদানি করা হয়, যেমন tensorflow-io স্বয়ংক্রিয়ভাবে নাম নিবন্ধন করতে পারবেন azfs ব্যবহারের জন্য প্রকল্প।

আকাশী নীল সংগ্রহস্থল কী মাধ্যমে প্রদান করা হবে TF_AZURE_STORAGE_KEY পরিবেশগত পরিবর্তনশীল। তা না হলে TF_AZURE_USE_DEV_STORAGE সেট করা যেতে পারে True পরিবর্তে Azurite এমুলেটর ব্যবহার করার জন্য:

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-এ Azure Blob স্টোরেজের কনফিগারেশন সবসময় পরিবেশগত ভেরিয়েবলের মাধ্যমে করা হয়। নীচে উপলব্ধ কনফিগারেশনগুলির একটি সম্পূর্ণ তালিকা রয়েছে:

  • TF_AZURE_USE_DEV_STORAGE : ': //devstoreaccount1/container/file.txt AZ' 1 সেট মত সংযোগ জন্য স্থানীয় উন্নয়ন স্টোরেজ এমুলেটর ব্যবহার করতে। এই সব অন্যান্য সেটিংস উপর একটি precendence নিতে হবে যাতে unset অন্য কোন সংযোগ ব্যবহার করতে
  • TF_AZURE_STORAGE_KEY : ব্যবহারে স্টোরেজ অ্যাকাউন্টের কী
  • TF_AZURE_STORAGE_USE_HTTP : কোনো মানে সেট আপনি HTTPS স্থানান্তর ব্যবহার করতে না চান। unset HTTPS এর ডিফল্ট ব্যবহার করতে
  • TF_AZURE_STORAGE_BLOB_ENDPOINT : ফোঁটা সঞ্চয়ের শেষবিন্দু সেট করুন - ডিফল্ট .core.windows.net