TensorFlow: праймер
Простое введение в TensorFlow
TensorFlow (TF) не работает как обычная программа. Вы, наверное, привыкли писать математические операции типа a = 2+2
, где a
равно 4, верно?
Что ж, TF стирает грань между математическими операциями и их фактическими результатами, и вы собираетесь получить a
, равный ... Tensor
, WTF?
Когда вы пишете математику в TF, вы должны думать об этом как об архитекторе. Вы проектируете операции, а не вычисляете их. Исчисление произойдет на следующем этапе: все, что «происходит» в TF, «происходит» в течение сеанса. Итак, когда вы «добавляете» что-то в TF, вы разрабатываете операцию «добавления», а не фактически ничего добавляете.
Все эти операции организованы в виде графика, ваш график содержит операции и тензоры, а не значения .
когда вы что-то «добавляете» в TF, вы разрабатываете операцию «добавления», а не добавляете ничего
Когда вы запускаете то, что называется сеансом, вы фактически создаете новую область для своей программы, в которой операции могут «происходить». Здесь вы можете запускать или оценивать операции и тензоры. И когда вы это сделаете, результаты начинают распутываться: тензоры заполняются реальными значениями, операции вычисляются, результаты получаются, функции сходятся и т. Д.
Но как только вы выйдете за пределы своего сеанса, график вернется в свое статичное и довольно скучное состояние, мы снова вернемся к теории. Подводя итог, у вас есть 2 основных этапа в коде TF:
- Уровень График: вы можете разрабатывать математические операции и операции управления потоком, которые будут различными частями вашего графика. На этом уровне вы можете только сохранить сам график и его метаданные, пока ничего осязаемого не существует.
- Уровни Сеанс и Оценка: инициализируются переменные, настраиваются другие бухгалтерские функции, выполняются операции, вычисляются промежуточные тензоры и градиенты и т. Д.
Самая важная часть заключается в том, что только переменные сохраняют свои данные между оценками нескольких сеансов. Все остальные тензоры являются временными, что означает, что они будут уничтожены и недоступны в вашем обучающем цикле for без надлежащего feed_dict или любого другого входного конвейера по вашему выбору.
Посмотреть на себя:
Только переменные сохраняют свои данные между несколькими оценками
Серия лучших практик TensorFlow
Эта статья является частью более полной серии статей о TensorFlow. Я еще не определил все различные темы этой серии, поэтому, если вы хотите увидеть какую-либо область исследования TensorFlow, добавьте комментарий! Пока что я хотел изучить эти предметы (этот список может быть изменен и не имеет определенного порядка):
- Букварь (этот :))
- Как работать с формами в TensorFlow
- Сохранение / восстановление TensorFlow и смешивание нескольких моделей
- Как заморозить модель и обслужить ее с помощью Python API
- TensorFlow: Рекомендации по архитектуре файлов, папок и моделей
- TensorFlow howto: универсальный аппроксиматор внутри нейронной сети
- Как оптимизировать конвейер ввода с очередями и многопоточностью
- Мутирующие переменные и поток управления
- Как обрабатывать предварительную обработку с помощью TensorFlow.
- Как управлять градиентами, чтобы создать индивидуальную опору для спины или настроить мои модели.
- Как отслеживать и проверять мои модели, чтобы понять их.
Примечание. TF сейчас быстро развивается, эти статьи в настоящее время написаны для версии 1.0.0.