Theano — библиотека численного вычисления в Python[1]. Вычисления в Theano выражаются NumPy-подобным синтаксисом и компилируются для эффективных параллельных вычислений как на обычных CPU, так и на GPU.
Theano является проектом с открытым исходным кодом[2], основным разработчиком которого является группа машинного обучения в Монреальском университете[3].
28 сентября2017 года было объявлено о прекращении работы над проектом после выхода релиза 1.0, при этом обещано сохранение его минимальной поддержки в течение одного года[4].
Названа в честь древнегреческой женщины-философа Феано.
Описание системы
Theano представляет собой библиотеку на языке Python для вычислений с многомерными массивами данных.[5]
Основные математические методы, операции и структуры данных, поддерживаемые Theano[6]:
- работа с тензорами через структуру numpy.ndarray и поддержка множества тензорных операций
- работа с разреженными матрицами через структуры SciPy.{csc, csr, bsr}_matrix и поддержка ряда операций с ними
- многочисленные методы линейной алгебры, включая достаточно сложные
- возможность в режиме работы создавать новые операции с графами
- многочисленные операции по преобразованию графов
- поддержка языка Python версий 2 и 3
- поддержка GPU (CUDA и OpenCL)
- поддержка стандарта Basic Linear Algebra Subprograms (BLAS) для процедур линейной алгебры
Планируется использование и поддержка следующих сред — C/C++, PTX, CAL, AVX[6]
Пример кода
Следующий код — оригинальный пример Theano. Он определяет вычислительный граф с двумя скалярами a и b типа double и операцией между ними (сложением), а затем создаёт функцию f, которая выполняет собственно вычисление.[7]
import theanofrom theano importtensor# Declare two symbolic floating-point scalarsa=tensor.dscalar()b=tensor.dscalar()# Create a simple expressionc=a+b# Convert the expression into a callable object that takes (a, b)# values as input and computes a value for cf=theano.function([a,b],c)# Bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c'assert4.0==f(1.5,2.5)Примечания
- ↑Bergstra, J. (30 июня 2010). Theano: A CPU and GPU Math Expression Compiler(PDF). Proceedings of the Python for Scientific Computing Conference (SciPy) 2010. Архивировано(PDF) 1 ноября 2020. Дата обращения: 23 июля 2017.
- ↑Github Repository. Дата обращения: 23 июля 2017. Архивировано 16 ноября 2020 года.
- ↑deeplearning.net. Дата обращения: 23 июля 2017. Архивировано из оригинала 13 декабря 2017 года.
- ↑Группы Google. groups.google.com. Дата обращения: 10 марта 2018. Архивировано 22 января 2011 года.
- ↑Joel Grus.Data Science from Scratch. First Principles with Python. — O'REILLY, 2019. — ISBN 978-149190439-8.Архивная копия от 17 августа 2021 на Wayback MachineИсточник. Дата обращения: 23 августа 2021. Архивировано 17 августа 2021 года.
- ↑ 12Theano at a Glance. Дата обращения: 23 июля 2017. Архивировано 25 июля 2017 года.
- ↑Theano Documentation Release 1.0.0 22. LISA lab, University of Montreal (21 ноября 2017). Дата обращения: 31 августа 2018.
Литература
- Джулли А., Пал С. Библиотека Keras - инструмент глубокого обучения. Реализация нейронных сетей с помощью библиотек Theano и TensorFlow = Deep learning with Keras. — ДМК Пресс, 2017. — 294 с. — ISBN 978-5-97060-573-8.
- Рашка С. Python и машинное обучение = Python Machine Learning. — ДМК Пресс, 2017. — 418 с. — ISBN 978-5-97060-409-0.
Ссылка
- github.com/Theano/ — официальный сайт Theano (GitHub) (англ.)
- TheanoАрхивная копия от 8 ноября 2020 на Wayback Machine на Глубинном обучении, Монреальский университет (англ.)