Overview
TensorFlow был первоначально разработан командой Google Brain, система искусственного интеллекта с открытым исходным кодом (Apache 2.0), выпущенная Google 9 ноября 2015 года. Его предшественником был DistBelief, а версия 1.0.0 была выпущена 11 февраля 2017 года. Он также поддерживает Linux и macOS, а также Windows и мобильные платформы, включая Android и iOS.
TensorFlow обычно обозначается аббревиатурой TF.
Awesome AI~
Links
Библиотека AI/DL
В настоящее время существует множество библиотек, связанных с AI/DL.Deep Learning Libraries by LanguageВ этой статье десятки библиотек DL разделены по языкам.Дополнительную информацию см. в сводке этого проекта.awesome-ai.
Некоторые из основных сравнений заключаются в следующем.
По сравнению с другими библиотеками ИИ, выдающиеся особенности TF заключаются в следующем:
- Работает не только на Windows, Linux и macOS, но и на мобильных устройствах (iOS и Android).
- предоставляет Python API TF.Learn (Python API под названием TF.Learn2), совместимый с Scikit-Learn (ранее Scikit Flow/skflow)
- provides a API TF-slim (tensorflow.contrib.slim) for neural networks.
- Several other high-level APIs such as Keras or Pretty Tensor.
- includes highly efficient C++ implementations of many ML operations
- a great visualization tool TensorBoard
- launched a cloud service
- A dedicated team, a growing community
Keys
Graph/Tensor
- График, график. Представьте структуру, которую вы построили
- Сессия, сессия. Указывает, что вы хотите запустить программу на этот раз
- Тензор, тензор представляет данные
- Переменная, представляющая переменную
- Feed and Fetch, выполнение произвольного назначения операции или получение данных
- Узел, представляющий собой узел, указывает точку, через которую проходят данные на графике.
- Операция представляет операцию узла и обрабатывает данные посредством операции
- Граф потока данных (Data Flow Graph) TF используется для определения ориентированного графа вычислительной структуры, его узлы представляют операции (Operation (Op)), а его ребра представляют ввод и вывод данных (набор данных (тензоры)) (Op входящие и исходящие исходящие из Op)
Граф в TF описывает процесс расчета, а график выполняет расчет через работу сеанса. Сеанс размещает узлы графа (операции) на вычислительных устройствах (таких как ЦП и ГП) и выполняет их с помощью методов; после выполнения этих методов возвращаются тензоры. Форма тензора в Python — это объект numpy ndarray, а в C/C++ — tensorflow::Tensor.
TF использует граф для представления вычислительных задач/обработки.Графики выполняются в контексте, называемом сеансом.Данные представлены тензором.Через переменную
Поддерживать состояние.Используйте канал и выборку для присвоения значений или извлечения данных из произвольных операций.
Тензор используется в TF для представления структуры данных всех данных.Тензор нулевого порядка представляет собой скаляр или скаляр (скаляр), то есть значение.Например,[1]Тензор первого порядка представляет собой вектор ( вектор), например одномерный [1, 2, 3] Тензор второго порядка представляет собой матрицу, например двумерную [[1, 2, 3], [4, 5, 6], [7, 8 , 9]].
TPU
TPU (блок тензорной обработки): тензорный процессор, специализированный чип Google (ASIC) для машинного обучения, разработанный для платформы глубокого обучения Google TensorFlow.
По сравнению с графическими процессорами (GPU), TPU используют низкоточные (8-битные) вычисления, чтобы уменьшить количество транзисторов, используемых для каждой операции. Снижение точности мало влияет на точность глубокого обучения, но может значительно снизить энергопотребление и ускорить выполнение операций. В то же время TPU использует конструкцию систолического массива для оптимизации операций умножения матриц и свертки и сокращения операций ввода-вывода. Кроме того, TPU также использует большую встроенную память, что уменьшает доступ к DRAM, тем самым увеличивая производительность.
TensorBoard
Настройки графического процессора
-
GPU device
"/Cpu:0": ЦП вашей машины;
"/gpu:0": первый GPU вашей машины;
"/gpu:1": второй GPU вашей машины; -
Указывает графический процессор.
с tf.device('/процессор:1'):a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a') ......
-
Распределение ресурсов. TF будет использовать все текущие ресурсы графического процессора по умолчанию, а ресурсы управления могут применяться динамически или ограничивать использование графического процессора.
-
Динамическое приложение:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
сеанс = tf.Session(config=config, …) -
Ограничьте использование графического процессора:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
сеанс = tf.Session(config=config, …)
-
References & Recommends
- Deep Learning Libraries by Language
- deepframeworks Оценка и сравнение фреймворков глубокого обучения
- Comparing Top Deep Learning Frameworks
- Война фреймворков глубокого обучения продолжается, кто захватит славу «отраслевого стандарта глубокого обучения»?
- Tensorflow-Cheatsheet,ML-Cheatsheet
- Tensorflow-Cheatsheet
- tensors
- TPU
- using_gpu
By SkySeraph-2017
SkySeraph cnBlogs
Эта статья была впервые опубликована вskyseraph.com:«Основы TensorFlow»
Уведомление об авторских правах
SkySeraph by SkySeraph is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Зависит отBobсоздан и поддерживаетсяSkySeraphПринятие блогаCreative Commons Reserved Attribution-NonCommercial-No Derivatives 4.0 Международная лицензия.
Эта статья была впервые опубликована вSkySeraphблог (skyseraph.com), авторские права принадлежат автору и вы можете перепечатать его, но это заявление должно быть сохранено без согласия автора, а ссылка на оригинальный текст дана в явном месте на странице статьи, в противном случае право на преследование юридическая ответственность сохраняется.
Награда за код сканирования WeChatSkySeraph
Если вы хотите пожертвовать другую суммуПожалуйста, ткните меня~~, отсканируйте код Alipay/WeChat
Постоянная ссылка на эту статью:небо серафим.com/2017/11/11/…