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 কল নিম্নলিখিতগুলি সম্পন্ন করবে:
- কেরাস স্ক্রিপ্ট/নোটবুক, ক্লাউড এবং ডিস্ট্রিবিউশনের মতো কোড সত্তা তৈরি করা।
- প্রয়োজনীয় নির্ভরতা সহ একটি ডকার কন্টেইনারে এই বিতরণ সত্তাকে রূপান্তর করা হচ্ছে।
- TensorFlow বিতরণ কৌশল ব্যবহার করে এই ধারকটিকে স্কেলে এবং ট্রেনে স্থাপন করুন ।
- লগগুলি স্ট্রিম করুন এবং হোস্ট করা টেনসরবোর্ডে সেগুলি নিরীক্ষণ করুন, চেকপয়েন্ট স্টোরেজ পরিচালনা করুন।
ডিফল্টরূপে, Google কন্টেইনার রেজিস্ট্রিতে ডকার ইমেজ তৈরি এবং প্রকাশ করার জন্য স্থানীয় ডকার ডেমন। ছবিগুলি gcr.io/your-gcp-project-id
এ প্রকাশিত হয়েছে। আপনি যদি docker_config.image_build_bucket
নির্দিষ্ট করেন, তাহলে আমরা ডকার ইমেজ তৈরি এবং প্রকাশ করতে Google ক্লাউড বিল্ড ব্যবহার করব।
গুগল এআই প্ল্যাটফর্মটি গুগল ক্লাউডে ডকার চিত্র স্থাপনের জন্য ব্যবহৃত হয়।