ব্যবহার নির্দেশিকা

tfc.run API আপনাকে আপনার মডেলগুলিকে GCP-এ স্কেলে প্রশিক্ষণ দেওয়ার অনুমতি দেয়।

tfc.run API চারটি ভিন্ন উপায়ে ব্যবহার করা যেতে পারে। আপনি কোথায় API (পাইথন স্ক্রিপ্ট বনাম পাইথন নোটবুক) চালাচ্ছেন এবং আপনার entry_point প্যারামিটার দ্বারা এটি সংজ্ঞায়িত করা হয়:

  • entry_point হিসাবে পাইথন ফাইল।
  • entry_point হিসাবে নোটবুক ফাইল।
  • একটি পাইথন স্ক্রিপ্টের মধ্যে run যাতে tf.keras মডেল রয়েছে।
  • একটি নোটবুক স্ক্রিপ্টের মধ্যে run যাতে tf.keras মডেল থাকে। সবচেয়ে সাধারণ উপায় হল একটি নোটবুকের মধ্যে run ব্যবহার করা।

entry_point হল একটি (a এর পথ) পাইথন স্ক্রিপ্ট বা নোটবুক ফাইল, অথবা None । যদি None , সমগ্র বর্তমান ফাইলটি Google ক্লাউডে পাঠানো হয়।

entry_point হিসাবে একটি পাইথন ফাইল ব্যবহার করা।

যদি আপনার tf.keras মডেলটি একটি পাইথন ফাইলে থাকে ( mnist_example.py ), তাহলে আপনি GCP-তে আপনার মডেল স্কেল করতে নিম্নলিখিত সহজ স্ক্রিপ্টটি ( scale_mnist.py ) লিখতে পারেন।

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')

অনুগ্রহ করে মনে রাখবেন যে entry_point হিসাবে একই ডিরেক্টরি গাছের সমস্ত ফাইল entry_point ফাইলের সাথে তৈরি করা ডকার ইমেজে প্যাকেজ করা হবে। প্রতিটি ক্লাউড প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করার পরামর্শ দেওয়া হচ্ছে যাতে প্রয়োজনীয় ফাইল এবং অন্য কিছুই নেই, ইমেজ তৈরির সময় অপ্টিমাইজ করতে।

entry_point হিসাবে একটি নোটবুক ফাইল ব্যবহার করা।

যদি আপনার একটি নোটবুক ফাইলে আপনার tf.keras মডেল থাকে ( mnist_example.ipynb ), তাহলে আপনি GCP-তে আপনার মডেল স্কেল করার জন্য নিম্নলিখিত সহজ স্ক্রিপ্ট ( scale_mnist.py ) লিখতে পারেন।

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')

অনুগ্রহ করে মনে রাখবেন যে entry_point হিসাবে একই ডিরেক্টরি গাছের সমস্ত ফাইল entry_point ফাইলের সাথে তৈরি করা ডকার ইমেজে প্যাকেজ করা হবে। উপরের পাইথন স্ক্রিপ্ট entry_point মতো, আমরা প্রতিটি ক্লাউড প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করার সুপারিশ করেছি যাতে প্রয়োজনীয় ফাইলগুলি অন্তর্ভুক্ত থাকে এবং অন্য কিছুই নেই, ইমেজ তৈরির সময় অপ্টিমাইজ করতে।

একটি পাইথন স্ক্রিপ্টের মধ্যে run ব্যবহার করে যেখানে tf.keras মডেল রয়েছে।

আপনি আপনার পাইথন ফাইলের মধ্যে থেকে run API ব্যবহার করতে পারেন যাতে tf.keras মডেল ( mnist_scale.py ) রয়েছে। এই ব্যবহারের ক্ষেত্রে, entry_point None হওয়া উচিত। run API যে কোন জায়গায় কল করা যেতে পারে এবং সম্পূর্ণ ফাইলটি দূরবর্তীভাবে কার্যকর করা হবে। ডিবাগিং উদ্দেশ্যে স্থানীয়ভাবে স্ক্রিপ্ট চালানোর জন্য API শেষে কল করা যেতে পারে (সম্ভবত কম যুগ এবং অন্যান্য পতাকা সহ)।

import tensorflow_datasets as tfds
import tensorflow as tf
import tensorflow_cloud as tfc

tfc.run(
    entry_point=None,
    distribution_strategy='auto',
    requirements_txt='requirements.txt',
    chief_config=tfc.MachineConfig(
            cpu_cores=8,
            memory=30,
            accelerator_type=tfc.AcceleratorType.NVIDIA_TESLA_T4,
            accelerator_count=2),
    worker_count=0)

datasets, info = tfds.load(name='mnist', with_info=True, as_supervised=True)
mnist_train, mnist_test = datasets['train'], datasets['test']

num_train_examples = info.splits['train'].num_examples
num_test_examples = info.splits['test'].num_examples

BUFFER_SIZE = 10000
BATCH_SIZE = 64

def scale(image, label):
    image = tf.cast(image, tf.float32)
    image /= 255
    return image, label

train_dataset = mnist_train.map(scale).cache()
train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE)

model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(
        28, 28, 1)),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(loss='sparse_categorical_crossentropy',
              optimizer=tf.keras.optimizers.Adam(),
              metrics=['accuracy'])
model.fit(train_dataset, epochs=12)

অনুগ্রহ করে মনে রাখবেন যে পাইথন স্ক্রিপ্টের মতো একই ডিরেক্টরি গাছের সমস্ত ফাইল পাইথন ফাইলের সাথে তৈরি করা ডকার ইমেজে প্যাকেজ করা হবে। প্রতিটি ক্লাউড প্রকল্পের জন্য একটি নতুন ডিরেক্টরি তৈরি করার পরামর্শ দেওয়া হচ্ছে যাতে প্রয়োজনীয় ফাইল এবং অন্য কিছুই নেই, ইমেজ তৈরির সময় অপ্টিমাইজ করতে।

একটি নোটবুক স্ক্রিপ্টের মধ্যে run ব্যবহার করে যা tf.keras মডেল ধারণ করে।

কোলাবের ছবি

এই ব্যবহারের ক্ষেত্রে, entry_point None হওয়া উচিত এবং docker_config.image_build_bucket অবশ্যই নির্দিষ্ট করতে হবে, যাতে বিল্ড সংরক্ষণ এবং প্রকাশ করা যায় তা নিশ্চিত করতে হবে।

run ডাকলে কি হয়?

API কল নিম্নলিখিতগুলি সম্পন্ন করবে:

  1. কেরাস স্ক্রিপ্ট/নোটবুক, ক্লাউড এবং ডিস্ট্রিবিউশনের মতো কোড সত্তা তৈরি করা।
  2. প্রয়োজনীয় নির্ভরতা সহ একটি ডকার কন্টেইনারে এই বিতরণ সত্তাকে রূপান্তর করা হচ্ছে।
  3. TensorFlow বিতরণ কৌশল ব্যবহার করে এই ধারকটিকে স্কেলে এবং ট্রেনে স্থাপন করুন
  4. লগগুলি স্ট্রিম করুন এবং হোস্ট করা টেনসরবোর্ডে সেগুলি নিরীক্ষণ করুন, চেকপয়েন্ট স্টোরেজ পরিচালনা করুন।

ডিফল্টরূপে, Google কন্টেইনার রেজিস্ট্রিতে ডকার ইমেজ তৈরি এবং প্রকাশ করার জন্য স্থানীয় ডকার ডেমন। ছবিগুলি gcr.io/your-gcp-project-id এ প্রকাশিত হয়েছে। আপনি যদি docker_config.image_build_bucket নির্দিষ্ট করেন, তাহলে আমরা ডকার ইমেজ তৈরি এবং প্রকাশ করতে Google ক্লাউড বিল্ড ব্যবহার করব।

গুগল এআই প্ল্যাটফর্মটি গুগল ক্লাউডে ডকার চিত্র স্থাপনের জন্য ব্যবহৃত হয়।