TensorFlow.js Підручник
Що таке TensorFlow.js?
Tensorflow — популярна бібліотека JavaScript для машинного навчання.
Tensorflow дозволяє навчати та розгортати машинне навчання у браузері.
Tensorflow дозволяє додавати функції машинного навчання до будь-якої веб-програми.
Використання TensorFlow
Щоб використовувати TensorFlow.js, додайте наступний тег скрипту до своїх файлів HTML:
Приклад
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.6.0/dist/tf.min.js"></script>
Якщо ви завжди хочете використовувати останню версію, скиньте номер версії:
Приклад 2
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
TensorFlow було розроблено Google Brain Team для внутрішнього використання Google, але було випущено як відкрите програмне забезпечення у 2015 році.
У січні 2019 року розробники Google випустили TensorFlow.js, JavaScript реалізацію TensorFlow.
Tensorflow.js було розроблено, щоб забезпечити ті самі функції, що й оригінальна бібліотека TensorFlow, написана на Python.
Що таке тензор?
Те́нзор (від лат. tendere, «тягнутись, простиратися») — математичний об'єкт, що узагальнює такі поняття як скаляр, вектор, ковектор, лінійний оператор і білінійна форма. Вивченням тензорів займається тензорне числення.
В деякому базисі тензор представляється у вигляді багатовимірної таблиці d × d × ⋯ × d {\displaystyle d\times d\times \cdots \times d} (число співмножників збігається з валентністю тензора), заповненої числами (компонентами тензора). При заміні базису компоненти тензора змінюються певним чином, при цьому сам тензор не залежить від вибору базису.
Тензори
TensorFlow.js — це бібліотека JavaScript для визначення та роботи з тензорами.
Основним типом даних у TensorFlow.js є Tensor.
Тензор багато в чому схожий на багатовимірний масив.
Тензор містить значення в одному чи кількох вимірах:
Тензор має такі основні властивості:
Властивість | Опис |
---|---|
dtype | Тип даних |
rank | Кількість вимірів |
shape | Розмір кожного виміру |
Іноді в машинному навчанні термін "розмір" використовується як взаємозамінний з "рангом".
[10, 5] є двовимірним тензором або 2-ранговим тензором.
Крім того, термін "розмірність" може стосуватися розміру одного виміру.
Приклад: у двовимірному тензорі [10, 5] розмірність першого виміру становить 10.
Створення тензора
Основним типом даних у TensorFlow є Tensor.
Тензор створюється з будь-якого N-вимірного масиву за допомогою методу tf.tensor():
Приклад 1
const myArr = [[1, 2, 3, 4]];
const tensorA = tf.tensor(myArr);
Приклад 2
const myArr = [[1, 2], [3, 4]];
const tensorA = tf.tensor(myArr);
Приклад 3
const myArr = [[1, 2], [3, 4], [5, 6]];
const tensorA = tf.tensor(myArr);
Форма тензора
Тензор також можна створити з масиву та параметра форми:
Приклад1
const myArr = [1, 2, 3, 4]:
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
Приклад2
const tensorA = tf.tensor([1, 2, 3, 4], [2, 2]);
Приклад3
const myArr = [[1, 2], [3, 4]];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
Отримати тензорні значення
Ви можете отримати дані за тензором за допомогою tensor.data():
Приклад
const myArr = [[1, 2], [3, 4]];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
tensorA.data().then(data => display(data));
function display(data) {
document.getElementById("demo").innerHTML = data;
}
Ви можете отримати масив за тензором за допомогою tensor.array():
Приклад
const myArr = [[1, 2], [3, 4]];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
tensorA.array().then(array => display(array[0]));
function display(data) {
document.getElementById("demo").innerHTML = data;
}
const myArr = [[1, 2], [3, 4]];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
tensorA.array().then(array => display(array[1]));
function display(data) {
document.getElementById("demo").innerHTML = data;
}
Ви можете отримати ранг тензора за допомогою tensor.rank:
Приклад
const myArr = [1, 2, 3, 4];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
document.getElementById("demo").innerHTML = tensorA.rank;
Ви можете отримати форму тензора за допомогою tensor.shape:
Приклад
const myArr = [1, 2, 3, 4];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
document.getElementById("demo").innerHTML = tensorA.shape;
Ви можете отримати тип даних тензора за допомогою tensor.dtype:
Приклад
const myArr = [1, 2, 3, 4];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape);
document.getElementById("demo").innerHTML = tensorA.dtype;
Тензорні типи даних
Тензор може мати такі типи даних:
- bool
- int32
- float32 (default)
- complex64
- string
Коли ви створюєте тензор, ви можете вказати тип даних як третій параметр:
Приклад
const myArr = [1, 2, 3, 4];
const shape = [2, 2];
const tensorA = tf.tensor(myArr, shape, "int32");