TFJS modellari
TesorFlow.js
Quyidagilar uchun JavaScript kutubxonasi:
Brauzerda
mashinali o‘rganish modellarini
o‘qitish va joylashtirish
Tensorflow modellari
Modellar va qatlamlar mashinali o‘rganishning muhim qurilish bloklaridir.
Turli mashinali o‘rganish vazifalari uchun turli xil qatlamlarni ma’lumotlar bilan o‘qitilib, kelajakdagi qiymatlarni bashorat qila oladigan modelga birlashtirishingiz kerak.
TensorFlow.js turli xil modellarni va turli xil qatlamlarni qo‘llab-quvvatlaydi.
TensorFlow modeli — bir yoki bir nechta qatlamdan iborat neyron tarmoq.
Tensorflow loyihasi
Tensorflow loyihasi odatda quyidagi ish jarayoniga ega:
- Ma’lumotlarni yig‘ish
- Model yaratish
- Modelga qatlamlar qo‘shish
- Modelni kompilyatsiya qilish
- Modelni o‘qitish
- Modeldan foydalanish
Misol
Aytaylik, siz to‘g‘ri chiziqni aniqlovchi funksiyani bilasiz:
Y = 1.2X + 5
U holda istalgan y qiymatini quyidagi JavaScript formulasi bilan hisoblashingiz mumkin:
y = 1.2 * x + 5;
Tensorflow.js’ni namoyish qilish uchun X kirish qiymatlari asosida Y qiymatlarini bashorat qiladigan Tensorflow.js modelini o‘qitishimiz mumkin.
Eslatma
TensorFlow modeli funksiyani bilmaydi.
// Create Training Data
const xs = tf.tensor([0, 1, 2, 3, 4]);
const ys = xs.mul(1.2).add(5);
// Define a Linear Regression Model
const model = tf.sequential();
model.add(tf.layers.dense({units:1, inputShape:[1]}));
// Specify Loss and Optimizer
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
// Train the Model
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
// Use the Model
function myFunction() {
const xMax = 10;
const xArr = [];
const yArr = [];
for (let x = 0; x <= xMax; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == xMax) {plot(xArr, yArr)};
});
}
}
Misol quyida tushuntirilgan:
Ma’lumotlarni yig‘ish
5 ta x qiymatiga ega tenzor (xs) yarating:
const xs = tf.tensor([0, 1, 2, 3, 4]);
5 ta to‘g‘ri y javobiga ega tenzor (ys) yarating (xs ni 1.2 ga ko‘paytiring va 5 ni qo‘shing):
const ys = xs.mul(1.2).add(5);
Model yaratish
Ketma-ket (sequential) model yarating:
const model = tf.sequential();
Eslatma
Ketma-ket modelda bir qatlamning chiqishi keyingi qatlamning kirishi bo‘ladi.
Qatlamlar qo‘shish
Modelga bitta zich (dense) qatlam qo‘shing.
Qatlam faqat bitta birlikdan (tenzordan) iborat va uning shakli 1 ga teng (bir o‘lchamli):
model.add(tf.layers.dense({units:1, inputShape:[1]}));
Eslatma
Zich qatlamda har bir tugun oldingi qatlamdagi har bir tugun bilan bog‘langan.
Modelni kompilyatsiya qilish
Modelni yo‘qotish funksiyasi (loss function) sifatida meanSquaredError va optimallashtiruvchi funksiya sifatida sgd (stoxastik gradiyent tushish) yordamida kompilyatsiya qiling:
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
Tensorflow optimallashtiruvchilari (optimizers)
- Adadelta - Adadelta algoritmini amalga oshiradi.
- Adagrad - Adagrad algoritmini amalga oshiradi.
- Adam - Adam algoritmini amalga oshiradi.
- Adamax - Adamax algoritmini amalga oshiradi.
- Ftrl - FTRL algoritmini amalga oshiradi.
- Nadam - NAdam algoritmini amalga oshiradi.
- Optimizer - Keras optimallashtiruvchilari uchun asosiy sinf.
- RMSprop - RMSprop algoritmini amalga oshiradi.
- SGD - stoxastik gradiyent tushish optimallashtiruvchisi.
Modelni o‘qitish
Modelni (xs va ys yordamida) 500 marta takrorlash (epoxa) bilan o‘qiting:
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
Modeldan foydalanish
Model o‘qitilgandan so‘ng undan turli maqsadlarda foydalanishingiz mumkin.
Bu misol berilgan 10 ta x qiymati asosida 10 ta y qiymatini bashorat qiladi va bashoratlarni grafikda chizish uchun funksiyani chaqiradi:
function myFunction() {
const xMax = 10;
const xArr = [];
const yArr = [];
for (let x = 0; x <= xMax; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == xMax) {plot(xArr, yArr)};
});
}
}
Bu misol berilgan 10 ta x qiymati asosida 10 ta y qiymatini bashorat qiladi va qiymatlarni ko‘rsatish uchun funksiyani chaqiradi:
function myFunction() {
const xMax = 10;
const xArr = [];
const yArr = [];
for (let x = 0; x <= xMax; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == xMax) {display(xArr, yArr)};
});
}
}
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
