Содержание статьи
автор Пау Павон

TensorFlow существует уже некоторое время. Однако в прошлом месяце он был доступен только для Python и нескольких других языков программирования, таких как C и Java. И вы можете подумать, что этого будет предостаточно.
Я слышал о TensorFlow в прошлом. Хотя я ничего не знал о машинном или глубоком обучении, я был почти уверен, что это одна из наиболее используемых фреймворков для этих целей. Я видел много крутых вещей, сделанных с ним: обнаружение объектов на изображениях, распознавание речи и даже создание музыки!
Представьте, что вы можете делать все эти крутые вещи ML в обозревателе, не устанавливая никаких библиотек и не заставляя снова и снова компилировать все эти строки кода. Что ж, как раз для этого и пришел TensorFlow.js.
Если вы хотите узнать больше о том, как и почему этот удивительный фреймворк ожил, вы можете проверить TensorFlow здесь на Medium!
Итак, как только я это обнаружил, я захотел начать изучать, как работает TensorFlow.js. И это именно то, что я начал делать: я нашел на Youtube набор все еще продолжающихся учебников The Coding Train (на самом деле они только начались), и я начал немного возиться с вещами.
Я хотел бы кратко ознакомить вас с TensorFlow (TF), чтобы вы могли следить за мной на моем пути и учиться вместе со мной.
Основы TensorFlow.js
Давайте начнем! Прежде всего, вы должны знать, что вся документация находится на веб-сайте TF в разделе API Reference.
Но подождите, почему он называется TensorFlow? Что такое тензор?
Рад, что ты спросил. В основном тензор – это структура чисел. В математике существуют разные способы представления чисел. Вы можете иметь только число, вектор, матрицу и т.д. Тензор – это лишь общий термин для всех этих разных представлений данных.
В TF тензоры дифференцируются из-за них званиеили, другими словами, количество размеры они не имеют.
Это самые распространенные:
Скаляр (ранг-0)
Простое число. Вот как вы можете создать его и зарегистрировать его в консоли:
tf.scalar(4.5).print();
А выход такой:
Tensor 4.5
Tensor1d, tensor2d, tensor3d и tensor4d (ранг 1, 2, 3 и 4 соответственно)
Это тензоры более высокой размерности. К примеру, если вы хотите создать тензор ранга 1, вы можете просто сделать:
tf.tensor1d([3, 7, 8]).print();
Что выведет:
Tensor [3, 7, 8]
Тензор (ранг-n)
Если вы не знаете размеры своего тензора, вы можете просто создать его с такой функцией (обратите внимание, как два вышеприведенных примера так же хорошо работают с этим другим методом):
tf.tensor(4.5).print();tf.tensor([3, 7, 8]).print();
Это выводит точно так же, как и раньше.
Кроме того, этим функциям можно передать еще несколько параметров.
tf.tensor(значение, форма?, dtype?)
Давайте посмотрим ценности сначала. Это единственный обязательный параметр и единственный, который мы передавали в предыдущих примерах. Вы можете передать плоский массив значений (или даже одно число в скалярах) и указать форму самостоятельно или вы можете передать вложенный массив.
Теперь вам может быть интересно, что форму есть Итак, допустим, вы хотите вывести следующий тензор:
[[1, 5], [4, 7]]
То есть вы правильно догадались, матрица 2×2. Вы можете создать этот тензор, передав плоский массив и указав форму как второй параметр функции
tf.tensor([1, 5, 4, 7], [2, 2]).print();
или путем передачи вложенного массива
tf.tensor([[1, 5], [4, 7]]).print();
Наконец, имеем dtype. Это определяет тип данных. а пока int32, float32 и bool есть три поддерживаемых типа.
Операции
Но что вы можете сделать с этими тензорами? Ну, кроме всего прочего, вы можете производить с ними математические вычисления, например, арифметические действия:
Примечание: следующие операции выполняются поэлементно, что означает, что каждый член первого привлеченного тензора ассоциируется со сроком на том же месте в другом тензоре.
const a = tf.tensor1d([4, 7, 2, 1]);const b = tf.tensor1d([20, 30, 40, 50]);
Есть два способа добавить эти два способа:
a.add(b).print();
или,
tf.add(a, b);
Оба вывода:
Tensor [24, 37, 42, 51]
Вот как они работают для вычитания,
tf.sub(a, b).print();
Tensor //output [-16, -23, -38, -49]
умножение,
tf.mul(a, b).print();
Tensor //output [80, 210, 80, 50]
и разделение:
tf.div(a, b).print();
Tensor //output [0.2, 0.2333333, 0.05, 0.02]
Это достаточно просто и понятно.
Попробуйте сами!
Если вы этого еще не сделали, я призываю вас попробовать приведенное выше самостоятельно. Это самый простой материал в TF, но эти понятия являются ключевыми для понимания более сложных (и более веселых) его частей.
Спасибо, что прочли!
Редактировать: просмотрите список воспроизведения ADL на Youtube на TensorFlow, я уверен, что он вам поможет!