پل زدن یادگیری ماشین با TensorFlow: از پایتون تا جاوا اسکریپت
Summarize this content to 400 words in Persian Lang
زنده کردن یادگیری ماشینی با TensorFlow
به عنوان یک توسعه دهنده جاوا اسکریپت، غواصی در یادگیری ماشین آنقدرها هم که به نظر می رسد دلهره آور نیست. در حالی که از نظر فنی امکان مدیریت همه چیز با بستههای Node.js وجود دارد، اکوسیستم Python ML بسیار غنی و مستقر است که نمیتوان آن را نادیده گرفت. به علاوه، پایتون یک انفجار برای کار با آن است. بنابراین، منطقی است که از پایتون برای بلند کردن سنگین در باطن استفاده کنید. هنگامی که مدل خود را آماده کردید، میتوانید آن را به یک فرمت فرانتاند ارسال کنید و برای اجرای پیشبینیها، آن را روی کلاینت بارگذاری کنید.
تولید یک مدل
در این پست، ما قصد داریم مدلی بسازیم تا محبوبیت یک هنرمند را بر اساس تعداد دنبال کنندگان توییتر پیش بینی کنیم.
اولین قدم این است که یک مجموعه داده را به دست آوریم. برای این پروژه، از فایل artists.csv استفاده خواهیم کرد که به شکل زیر است:
twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
همانطور که می بینید، دو مقدار کلیدی در اینجا وجود دارد: twitter_followers و popularity. این ما را به خوبی برای یک مدل توالی تنظیم می کند، جایی که x خواهد بود twitter_followers و y خواهد بود popularity.
مدل توالی یکی از ساده ترین گزینه ها برای ساخت مدل است. در حالی که انتخاب در نهایت به مورد استفاده خاص بستگی دارد، من آن را ساده نگه می دارم و فعلاً به این رویکرد پایبند هستم.
ساخت Backend
هنگامی که شما در حال ساخت یک مدل هستید، چند کار اساسی وجود دارد که باید با آنها مقابله کنید:
داده ها را تمیز یا عادی کنید
تقسیم داده ها به آموزش (80%) و تست (20%)
مدلی را به همراه تنظیماتی مانند بهینه ساز و عملکرد از دست دادن انتخاب کنید
آموزش مدل (مناسب)
مدل را ارزیابی کنید
مدل را ذخیره کنید
کد زیر نمای کلی خوبی از این وظایف به شما ارائه می دهد، اگرچه تصویر کاملی نیست. می توانید کد کامل را در Github بررسی کنید.
Python: شروع به کار با TensorFlow
def get_model(x, y):
x_normalized = layers.Normalization(
axis=None,
)
x_normalized.adapt(np.array(x))
model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])
model.compile(
optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
loss=”mean_squared_error”,
)
model.fit(
x,
y,
epochs=2,
verbose=0,
validation_split=0.2,
)
return model
def main:
train_features, test_features, train_labels, test_labels = split_data(dataset)
model = get_model(
train_features[“twitter_followers”],
train_labels,
)
test_loss = model.evaluate(
test_features[“twitter_followers”], test_labels, verbose=2
)
model.export(“./saved_model”)
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
همانطور که می بینید، کد پایتون بسیار ساده است. یک وجود دارد main تابعی که تقسیم داده ها، دریافت مدل، ارزیابی آن و در نهایت ذخیره آن را انجام می دهد.
به طور خلاصه، اینها مراحل ضروری برای ایجاد یک مدل هستند. اما بیایید واقعی باشیم: ساختن مدلی که در واقع کار می کند، هم هنر است و هم علم. هدف من در اینجا این است که نشان دهم شروع کار با پایتون چقدر آسان است. با این حال، برای ساخت مدلی که عملکرد خوبی داشته باشد، کارهای زیادی انجام می شود – مانند داشتن یک مجموعه داده جامد، تمیز کردن و عادی سازی داده های شما، انتخاب مدل و تنظیمات مناسب و داشتن قدرت محاسباتی برای آموزش آن. همه این وظایف نیاز به سرمایه گذاری جدی زمان و تلاش دارد!
مصرف مدل در فرانت اند
اکنون که مدل خود را آموزش دیده و ذخیره کردهایم، زمان آن رسیده است که آن را وارد نمایه کنیم. این مرحله جایی است که ما مدل را در قالبی وب پسند بارگذاری میکنیم تا بتوانیم پیشبینیها را درست در مرورگر اجرا کنیم. چه از TensorFlow.js استفاده کنید یا از کتابخانه دیگری، ادغام یادگیری ماشینی در برنامه وب شما دنیایی از امکانات را به شما میگشاید. بیایید به نحوه انجام این کار بپردازیم!
TensorFlow یک بسته npm به نام ارائه می دهد tensorflowjs_converter که به تبدیل مدل های ذخیره شده به JSON و باینری کمک می کند.
tensorflowjs_converter –input_format=tf_saved_model model/saved_model out/public
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
tf_saved_model: این فرمتی است که برای ذخیره مدل استفاده می شود.
model/saved_model: این دایرکتوری است که مدل هنگام اجرای کد پایتون در آن ذخیره شده است.
out/public: این دایرکتوری خروجی است که در آن فایل های فرانتند پسند ذخیره می شوند. ساختار پوشه به شکل زیر خواهد بود:
ls -la out/public
group1-shard1of1.bin
model.json
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
این تنظیمات دسترسی به فایل های لازم برای برنامه وب شما را آسان می کند.
جاوا اسکریپت: با استفاده از TensorFlowJS
می توانید کد کامل را در Github بررسی کنید.
const model = await tensorflow.loadGraphModel(“model.json”);
const getPopularity = (followers) => {
const followers = 1_000;
const normalized = followers;
const x = tensorflow.tensor(normalized).reshape([-1, 1]);
const result = model.predict(x);
const values = result.arraySync();
const y = values[0][0].toFixed(2) * 100;
const popularity = y;
return popularity;
};
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
همانطور که قبلا ذکر شد، این مدل با هدف “پیش بینی محبوبیت” بر اساس تعداد دنبال کنندگان توییتر است. در حالی که ممکن است یک مثال ساده به نظر برسد، اما به طور موثر نشان می دهد که چگونه یک مدل را در باطن تولید کنید و آن را در قسمت جلویی مصرف کنید.
نگاهی به چگونگی آن بیندازید getPopularity ورودی را کمی پردازش می کند، اما خط کلید این است model.predict(x)، که از مدل برای پیش بینی یک مقدار استفاده می کند (y) بر اساس ورودی x.
به صفحه نمایشی بروید و چند دسته توییتر را امتحان کنید. این یک راه سرگرم کننده برای مشاهده اینکه چگونه این مدل محبوبیت را بر اساس تعداد دنبال کنندگان پیش بینی می کند، است.
نتیجه گیری
TensorFlow یک کتابخانه عالی است که ابزارهایی را برای توسعه Backend و Frontend ارائه می دهد. هر توسعهدهنده جاوا اسکریپت میتواند با استفاده از پایتون یا زبانی مشابه، مدلی بسازد، سپس به راحتی آن مدل را برای اجرای پیشبینیها در فرانتاند وارد کند.
در حالی که یادگیری ماشین حوزه وسیعی است که به دانش زیادی نیاز دارد، ابزارهایی مانند TensorFlow به پر کردن شکاف بین توسعه دهندگان نرم افزار و یادگیری ماشین کمک می کنند. این سفر را برای کسانی که به دنبال ادغام ML در پروژه های خود هستند بسیار راحت تر می کند!
زنده کردن یادگیری ماشینی با TensorFlow
به عنوان یک توسعه دهنده جاوا اسکریپت، غواصی در یادگیری ماشین آنقدرها هم که به نظر می رسد دلهره آور نیست. در حالی که از نظر فنی امکان مدیریت همه چیز با بستههای Node.js وجود دارد، اکوسیستم Python ML بسیار غنی و مستقر است که نمیتوان آن را نادیده گرفت. به علاوه، پایتون یک انفجار برای کار با آن است. بنابراین، منطقی است که از پایتون برای بلند کردن سنگین در باطن استفاده کنید. هنگامی که مدل خود را آماده کردید، میتوانید آن را به یک فرمت فرانتاند ارسال کنید و برای اجرای پیشبینیها، آن را روی کلاینت بارگذاری کنید.
تولید یک مدل
در این پست، ما قصد داریم مدلی بسازیم تا محبوبیت یک هنرمند را بر اساس تعداد دنبال کنندگان توییتر پیش بینی کنیم.
اولین قدم این است که یک مجموعه داده را به دست آوریم. برای این پروژه، از فایل artists.csv استفاده خواهیم کرد که به شکل زیر است:
twitter_followers,popularity,handle
111024636,94,justinbieber
107920365,91,rihanna
106599902,89,katyperry
95307659,97,taylorswift13
66325495,87,selenagomez
66325135,71,selenagomez
60943147,83,jtimberlake
54815915,82,britneyspears
53569307,85,shakira
همانطور که می بینید، دو مقدار کلیدی در اینجا وجود دارد: twitter_followers
و popularity
. این ما را به خوبی برای یک مدل توالی تنظیم می کند، جایی که x
خواهد بود twitter_followers
و y
خواهد بود popularity
.
مدل توالی یکی از ساده ترین گزینه ها برای ساخت مدل است. در حالی که انتخاب در نهایت به مورد استفاده خاص بستگی دارد، من آن را ساده نگه می دارم و فعلاً به این رویکرد پایبند هستم.
ساخت Backend
هنگامی که شما در حال ساخت یک مدل هستید، چند کار اساسی وجود دارد که باید با آنها مقابله کنید:
- داده ها را تمیز یا عادی کنید
- تقسیم داده ها به آموزش (80%) و تست (20%)
- مدلی را به همراه تنظیماتی مانند بهینه ساز و عملکرد از دست دادن انتخاب کنید
- آموزش مدل (مناسب)
- مدل را ارزیابی کنید
- مدل را ذخیره کنید
کد زیر نمای کلی خوبی از این وظایف به شما ارائه می دهد، اگرچه تصویر کاملی نیست. می توانید کد کامل را در Github بررسی کنید.
Python: شروع به کار با TensorFlow
def get_model(x, y):
x_normalized = layers.Normalization(
axis=None,
)
x_normalized.adapt(np.array(x))
model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)])
model.compile(
optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1),
loss="mean_squared_error",
)
model.fit(
x,
y,
epochs=2,
verbose=0,
validation_split=0.2,
)
return model
def main:
train_features, test_features, train_labels, test_labels = split_data(dataset)
model = get_model(
train_features["twitter_followers"],
train_labels,
)
test_loss = model.evaluate(
test_features["twitter_followers"], test_labels, verbose=2
)
model.export("./saved_model")
همانطور که می بینید، کد پایتون بسیار ساده است. یک وجود دارد main
تابعی که تقسیم داده ها، دریافت مدل، ارزیابی آن و در نهایت ذخیره آن را انجام می دهد.
به طور خلاصه، اینها مراحل ضروری برای ایجاد یک مدل هستند. اما بیایید واقعی باشیم: ساختن مدلی که در واقع کار می کند، هم هنر است و هم علم. هدف من در اینجا این است که نشان دهم شروع کار با پایتون چقدر آسان است. با این حال، برای ساخت مدلی که عملکرد خوبی داشته باشد، کارهای زیادی انجام می شود – مانند داشتن یک مجموعه داده جامد، تمیز کردن و عادی سازی داده های شما، انتخاب مدل و تنظیمات مناسب و داشتن قدرت محاسباتی برای آموزش آن. همه این وظایف نیاز به سرمایه گذاری جدی زمان و تلاش دارد!
مصرف مدل در فرانت اند
اکنون که مدل خود را آموزش دیده و ذخیره کردهایم، زمان آن رسیده است که آن را وارد نمایه کنیم. این مرحله جایی است که ما مدل را در قالبی وب پسند بارگذاری میکنیم تا بتوانیم پیشبینیها را درست در مرورگر اجرا کنیم. چه از TensorFlow.js استفاده کنید یا از کتابخانه دیگری، ادغام یادگیری ماشینی در برنامه وب شما دنیایی از امکانات را به شما میگشاید. بیایید به نحوه انجام این کار بپردازیم!
TensorFlow یک بسته npm به نام ارائه می دهد tensorflowjs_converter
که به تبدیل مدل های ذخیره شده به JSON و باینری کمک می کند.
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
-
tf_saved_model
: این فرمتی است که برای ذخیره مدل استفاده می شود. -
model/saved_model
: این دایرکتوری است که مدل هنگام اجرای کد پایتون در آن ذخیره شده است. -
out/public
: این دایرکتوری خروجی است که در آن فایل های فرانتند پسند ذخیره می شوند. ساختار پوشه به شکل زیر خواهد بود:
ls -la out/public
group1-shard1of1.bin
model.json
این تنظیمات دسترسی به فایل های لازم برای برنامه وب شما را آسان می کند.
جاوا اسکریپت: با استفاده از TensorFlowJS
می توانید کد کامل را در Github بررسی کنید.
const model = await tensorflow.loadGraphModel("model.json");
const getPopularity = (followers) => {
const followers = 1_000;
const normalized = followers;
const x = tensorflow.tensor(normalized).reshape([-1, 1]);
const result = model.predict(x);
const values = result.arraySync();
const y = values[0][0].toFixed(2) * 100;
const popularity = y;
return popularity;
};
همانطور که قبلا ذکر شد، این مدل با هدف “پیش بینی محبوبیت” بر اساس تعداد دنبال کنندگان توییتر است. در حالی که ممکن است یک مثال ساده به نظر برسد، اما به طور موثر نشان می دهد که چگونه یک مدل را در باطن تولید کنید و آن را در قسمت جلویی مصرف کنید.
نگاهی به چگونگی آن بیندازید getPopularity
ورودی را کمی پردازش می کند، اما خط کلید این است model.predict(x)
، که از مدل برای پیش بینی یک مقدار استفاده می کند (y
) بر اساس ورودی x
.
به صفحه نمایشی بروید و چند دسته توییتر را امتحان کنید. این یک راه سرگرم کننده برای مشاهده اینکه چگونه این مدل محبوبیت را بر اساس تعداد دنبال کنندگان پیش بینی می کند، است.
نتیجه گیری
TensorFlow یک کتابخانه عالی است که ابزارهایی را برای توسعه Backend و Frontend ارائه می دهد. هر توسعهدهنده جاوا اسکریپت میتواند با استفاده از پایتون یا زبانی مشابه، مدلی بسازد، سپس به راحتی آن مدل را برای اجرای پیشبینیها در فرانتاند وارد کند.
در حالی که یادگیری ماشین حوزه وسیعی است که به دانش زیادی نیاز دارد، ابزارهایی مانند TensorFlow به پر کردن شکاف بین توسعه دهندگان نرم افزار و یادگیری ماشین کمک می کنند. این سفر را برای کسانی که به دنبال ادغام ML در پروژه های خود هستند بسیار راحت تر می کند!