یک SavedModel را در Tensorflow صادر کنید
موسسه پایا پروژه به عنوان متصدی انجام پروژه های پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون در زمینه Tensorflow گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.

در TensorFlow ، SavedModel اساسا یک قالب سریالی برای ذخیره یک برنامه کامل TensorFlow است. تابع tf.saved_model.save() در TensorFlow می تواند برای صادرات SavedModel استفاده شود. یک مدل آموزش دیده و متغیرهای مربوط به آن توسط این تابع در دیسک با فرمت SavedModel در انجام پروژه پایتون ذخیره می شوند. این شامل وزن ها و نمودارهای محاسباتی است. این مدل می تواند برای استقرار مدل ها برای استنتاج، انتقال یادگیری یا اهداف دیگر استفاده شود.
در اینجا مراحل زیر برای صادرات SavedModel در TensorFlow وجود دارد:
اکنون می توانیم نمونه ای از صادرات یک مدل رگرسیون Softmax در TensorFlow را مثال بزنیم:
1. مدل رگرسیون Softmax
یک مدل رگرسیون Softmax ایجاد کنید و آن را با استفاده از مجموعه داده MNIST آموزش دهید.
Import the necessary libraries#
import tensorflow as tf
Load MNIST dataset#
mnist = tf.keras.datasets.mnist
Normalize the data#
x_train, x_test = x_train / 255.0, x_test / 255.0
Define the Softmax Regression model#
]) model = tf.keras.models.Sequential
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(10, activation=’softmax’)
([
Compile the model#
,’model.compile(optimizer=’adam
,’loss=’sparse_categorical_crossentropy
metrics=[‘accuracy’])
Train the model#
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
خروجی :

2.ارزیابی دقت مدل:
ارزیابی دقت مدل انجام پروژه پایتون
loss, accuracy = model.evaluate(x_test, y_test)
print(‘The accuracy of the model is :’,accuracy)
خروجی:

3.ذخیره مدل در پروژه پایتون
مدل را با استفاده از تابع tf.saved_model.save ذخیره کنید.
Save the model#
tf.saved_model.save(model, ‘softmax_regression_model’)
4.اطمینان ذخیره موفق
با بررسی محتویات پوشه SavedModel اطمینان حاصل کنید که مدل با موفقیت ذخیره شده است.
Inspect the contents of the SavedModel directory#
!ls softmax_regression_model
خروجی:
assets fingerprint.pb saved_model.pb variables
فایل saved_model.pb شامل نمودار محاسباتی و پوشه متغیرها شامل وزن های آموزش دیده مدل است.
5.اضافه کردن شمارههای نسخه به فهرست SavedModel
به صورت اختیاری، میتوانید شمارههای نسخه را به فهرست SavedModel اضافه کنید تا نسخههای مختلف مدل را پیگیری کنید.
Save the model with version number#
tf.saved_model.save(model, ‘softmax_regression_model/1’)
6.بررسی کنید که مدل نسخه شده با موفقیت ذخیره شده است.
Inspect the contents of the SavedModel directory with version number#
!ls softmax_regression_model/1
خروجی:
assets fingerprint.pb saved_model.pb variables
محتویات دایرکتوری نسخه شده مانند دایرکتوری اصلی است.
7.بارگزاری مدل با استفاده از هاب TensorFlow
بیایید مدل را با استفاده از هاب TensorFlow بارگذاری کنیم
import the necessary libraries#
import tensorflow_hub as hub
import numpy as np
Load the model#
layer = hub.KerasLayer(“softmax_regression_model/”)
create custom input#
Input = np.linspace(0,1,784).reshape(28,28)
Input = tf.expand_dims(Input, axis=0)
print(layer(Input))
layer.trainable = True
print(layer.trainable_weights)
در اینجا برخی از روش های مختلف مربوط به صادرات SavedModel در TensorFlow آورده شده است:
- صادرات SavedModel با امضاهای سفارشی: شما می توانید مستقیماً امضاهای سفارشی را برای SavedModel خود تعیین کنید که می تواند ورودی ها و خروجی های مدل را تعریف کند. این می تواند برای ارائه مدل با استفاده از رابط های مختلف مانند REST API مفید باشد.
- صادرات SavedModel برای سرویس TensorFlow: سرویس TensorFlow اساساً سیستمی برای ارائه مدل های یادگیری ماشین در محیط های تولیدی است. برای صادر کردن یک مدل برای سرویس TensorFlow، ابتدا باید یک امضای serving_default اضافه کنید که بتواند ورودی ها و خروجی های مدل را مشخص کند.
- صادر کردن SavedModel برای TensorFlow Lite : TensorFlow Lite چارچوبی است که برای استقرار یادگیری ماشین استفاده می شود.
منابع:
