TensorFlow Моделі
TesorFlow.js
Бібліотека JavaScript для
навчання та розгортання
моделей машинного навчання
у веб-браузері
Tensorflow Моделі
Моделі та Шари є важливими будівельними блоками в машинному навчанні.
Для різних завдань машинного навчання ви повинні поєднати різні типи шарів у модель, яку можна навчити за допомогою даних для прогнозування майбутніх значень.
TensorFlow.js підтримує різні типи моделей і різні типи шарів.
Модель TensorFlow — це нейронна мережа з одним або кількома шарами.
Проект Tensorflow
Проект Tensorflow має такий типовий робочий процес:
- Збір даних
- Створення моделі
- Додавання шарів до моделі
- Компіляція моделі
- Навчання моделі
- Використання моделі
Приклад
Припустімо, що ви знаєте функцію, яка визначає пряму лінію:
Y = 1.2X + 5
Тоді ви можете обчислити будь-яке значення y за допомогою формули JavaScript:
y = 1.2 * x + 5;
Щоб продемонструвати Tensorflow.js, ми могли б навчити модель Tensorflow.js прогнозувати значення Y на основі вхідних даних X.
Модель TensorFlow не знає функції.
// Створення навчальних даних
const xs = tf.tensor([0, 1, 2, 3, 4]);
const ys = xs.mul(1.2).add(5);
// Визначте модель лінійної регресії
const model = tf.sequential();
model.add(tf.layers.dense({units:1, inputShape:[1]}));
// Вкажіть Loss і Optimizer
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
// Тренувати модель
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
// Використовувати модель
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
xArr.push(x);
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
yArr.push(Number(y));
if (x == 10) {plot(xArr, yArr)};
});
}
}
Приклад пояснюється нижче:
Збір даних
Створіть тензор (xs) зі значеннями 5 x:
const xs = tf.tensor([0, 1, 2, 3, 4]);
Створіть тензор (ys) із 5 правильними відповідями y (помножте xs на 1,2 і додайте 5):
const ys = xs.mul(1.2).add(5);
Створення моделі
Створіть послідовний режим:
const model = tf.sequential();
У послідовній моделі вихід з одного шару є входом для наступного шару.
Додавання шарів
Додайте один щільний шар до моделі.
Шар складається лише з однієї одиниці (тензор), а форма — 1 (одновимірна):
model.add(tf.layers.dense({units:1, inputShape:[1]}));
У щільному шарі кожен вузол з’єднаний з кожним вузлом попереднього шару.
Складання моделі
Скомпілюйте модель, використовуючи meanSquaredError як функцію втрати та sgd (стохастичний градієнтний спуск) як функцію оптимізатора:
model.compile({loss:'meanSquaredError', optimizer:'sgd'});
Оптимізатори Tensorflow
- Adadelta – реалізує алгоритм Adadelta.
- Adagrad – реалізує алгоритм Adagrad.
- Adam – реалізує алгоритм Адама.
- Adamax – реалізує алгоритм Adamax.
- Ftrl – реалізує алгоритм FTRL.
- Nadam – реалізує алгоритм NAdam.
- Optimizer – базовий клас для оптимізаторів Keras.
- RMSprop – реалізує алгоритм RMSprop.
- SGD – оптимізатор стохастичного градієнтного спуску.
Навчання моделі
Навчіть модель (за допомогою xs та ys) із 500 повторами (епохи):
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
Використання моделі
Після навчання моделі ви можете використовувати її для різних цілей.
У цьому прикладі передбачено 10 значень y за 10 значень x та викликається функція для побудови прогнозів на графіку:
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == 10) {display(xArr, yArr)};
});
}
}
У цьому прикладі передбачено 10 значень y за 10 значень x та викликається функція для відображення значень:
function myFunction() {
const xArr = [];
const yArr = [];
for (let x = 0; x <= 10; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == 10) {display(xArr, yArr)};
});
}
}