TensorFlow — это открытая программная библиотека, предназначенная для машинного обучения, которая разработана корпорацией Google для решения задач построения и тренировки нейронных сетей.
TensorFlow является довольно молодой программной платформой, предназначенной для осуществления глубокого машинного обучения, которую разработали в Google Brain. В течение длительного времени эта платформа разрабатывалась в закрытом режиме под именем DistBelief, однако после глобальной модификации в ноябре 2015-го года вышел в свет ее открытый источник. Чуть более чем за год TensorFlow выросла до версии 1.0, приобрела интеграцию с keras, стала существенно более быстрой и получила поддержку мобильных платформ. В последнее время эта программная платформа получила развитие еще и в направлении классических методик, и в определенных фрагментах интерфейса уже стала похожа на scikit-learn. Вплоть до нынешней версии интерфейс изменялся довольно активно и часто, но проектировщики пообещали заморозить изменения в API.
TensorFlow является библиотекой для машинного обучения, а также группой технологий, позволяющей осуществить обучение искусственного интеллекта решению различных задач. Библиотека изначально была создана для языка программирования Python и наиболее часто применяется именно с этим языком. Но есть версии TensorFlow и для других языков, таких как, C#, C++, Go, Java, Swift и других. Они применяются более редко, и в основном, для того чтобы написать код под специфические платформы.
Сама библиотека выполнена на языке Python с применением быстрого и производительного языка C++ для решения математических задач. По этой причине эта библиотека способна эффективно работать со сложными вычислениями. Как было указано выше, библиотеку разработала корпорация Google как продолжение внутренней библиотеки компании. TensorFlow является бесплатной программой, и она имеет открытый исходный код, который доступен на GitHub, а также она имеет активную поддержку сообщества энтузиастов.
TensorFlow используют специалисты по машинному обучению. Это проектировщики, которые проектируют, выполняют настройку и обучение модели для решения интеллектуальных задач, таких как, классификация, распознавание и многое другое. Помимо этого, данную библиотеку могут применять ученые и дата-аналитики, которым машинное обучение требуется для решения практических задач, связанных с обработкой данных.
Сама библиотека имеет в своем составе большой инструментальный набор для различных направлений машинного обучения, но наиболее часто ее используют для работы с нейронными сетями. Это структуры, аналогичные по устройству сетям нейронов в человеческой нервной системе. Нейронные сети сформированы из программных компонентов, именуемых нейронами, и связей среди них, и такая структурная организация позволяет их обучать. TensorFlow может работать с обычными и глубокими нейронными сетями различных типов, а именно, это могут быть рекуррентные, сверточные и другие сети. Также она может использоваться для машинного и глубокого обучения.
В качестве примеров использования этих технологий можно привести распознавание естественного языка, изображений и рукописных текстов, разнообразные задачи классификации или кластеризации, обработка больших данных.
В TensorFlow модели отображены при помощи графов, то есть, математических абстракций, состоящих из вершин и путей между ними. В качестве аналога графа можно привести схему дорог между различными точками. В программировании это, как правило, требуется для решения «маршрутных» задач и при формировании нейронных сетей.
TensorFlow использует для своей работы тензоры, то есть, многомерные структуры данных в векторном, что означает направленном пространстве. Тензоры применяются в линейной алгебре и физике, где при помощи тензоров можно описать пути графа, а вершины являются математическими операциями. Вычислительные операции в TensorFlow представляются в виде потоков данных через граф. То есть, информация перемещается по графу, ее трансляция выполняется по путям от вершины к вершине.
Эту библиотеку можно использовать, имея мощности обычного центрального процессора (CPU) или же задействовав мощности графического процессора (GPU). Режим работы может переключаться в коде. Следует отметить, что есть также специализированный тензорный процессор TPU, который создали разработчики библиотеки. Его можно использовать, если подключиться к облачному сервису Google.
К числу преимуществ TensorFlow могут быть отнесены следующие особенности: