학술논문

Theano: A Python framework for fast computation of mathematical expressions
Document Type
Working Paper
Author
The Theano Development TeamAl-Rfou, RamiAlain, GuillaumeAlmahairi, AmjadAngermueller, ChristofBahdanau, DzmitryBallas, NicolasBastien, FrédéricBayer, JustinBelikov, AnatolyBelopolsky, AlexanderBengio, YoshuaBergeron, ArnaudBergstra, JamesBisson, ValentinSnyder, Josh BleecherBouchard, NicolasBoulanger-Lewandowski, NicolasBouthillier, Xavierde Brébisson, AlexandreBreuleux, OlivierCarrier, Pierre-LucCho, KyunghyunChorowski, JanChristiano, PaulCooijmans, TimCôté, Marc-AlexandreCôté, MyriamCourville, AaronDauphin, Yann N.Delalleau, OlivierDemouth, JulienDesjardins, GuillaumeDieleman, SanderDinh, LaurentDucoffe, MélanieDumoulin, VincentKahou, Samira EbrahimiErhan, DumitruFan, ZiyeFirat, OrhanGermain, MathieuGlorot, XavierGoodfellow, IanGraham, MattGulcehre, CaglarHamel, PhilippeHarlouchet, IbanHeng, Jean-PhilippeHidasi, BalázsHonari, SinaJain, ArjunJean, SébastienJia, KaiKorobov, MikhailKulkarni, VivekLamb, AlexLamblin, PascalLarsen, EricLaurent, CésarLee, SeanLefrancois, SimonLemieux, SimonLéonard, NicholasLin, ZhouhanLivezey, Jesse A.Lorenz, CoryLowin, JeremiahMa, QianliManzagol, Pierre-AntoineMastropietro, OlivierMcGibbon, Robert T.Memisevic, Rolandvan Merriënboer, BartMichalski, VincentMirza, MehdiOrlandi, AlbertoPal, ChristopherPascanu, RazvanPezeshki, MohammadRaffel, ColinRenshaw, DanielRocklin, MatthewRomero, AdrianaRoth, MarkusSadowski, PeterSalvatier, JohnSavard, FrançoisSchlüter, JanSchulman, JohnSchwartz, GabrielSerban, Iulian VladSerdyuk, DmitriyShabanian, SamiraSimon, ÉtienneSpieckermann, SigurdSubramanyam, S. RamanaSygnowski, JakubTanguay, Jérémievan Tulder, GijsTurian, JosephUrban, SebastianVincent, PascalVisin, Francescode Vries, HarmWarde-Farley, DavidWebb, Dustin J.Willson, MatthewXu, KelvinXue, LijunYao, LiZhang, SaizhengZhang, Ying
Source
Subject
Computer Science - Symbolic Computation
Computer Science - Learning
Computer Science - Mathematical Software
Language
Abstract
Theano is a Python library that allows to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. Since its introduction, it has been one of the most used CPU and GPU mathematical compilers - especially in the machine learning community - and has shown steady performance improvements. Theano is being actively and continuously developed since 2008, multiple frameworks have been built on top of it and it has been used to produce many state-of-the-art machine learning models. The present article is structured as follows. Section I provides an overview of the Theano software and its community. Section II presents the principal features of Theano and how to use them, and compares them with other similar projects. Section III focuses on recently-introduced functionalities and improvements. Section IV compares the performance of Theano against Torch7 and TensorFlow on several machine learning models. Section V discusses current limitations of Theano and potential ways of improving it.
Comment: 19 pages, 5 figures