Theano Nedir?
Theano, derin öğrenme çalışmalarında kullanılan, oldukça kapsamlı sinir ağı algoritmalarını yönetebilmek için gerekli tüm hesaplama türlerini işleyebilmek için spesifik geliştirilen ve diğer derin öğrenme kütüphanelerin atası olarak kabul edilen, Montreal Üniversitesi bünyesinde(2007 yılında) Python programla diline özgü geliştirilen oldukça popüler bir kütüphane olarak tanımlanabilinir. Bu kütüphane çalışmalar için özelleştirilmiş birçok matematiksel uzantıyı bünyesinde barındıran ve bu uzantılar sayesinde matematiksel ifadeleri(örn;matrisler) işleyebilmek ve analizleyebilmek için kullanılan oldukça önemli bir derleyicidir. Theano kütüphanesi kullanılarak yapılan hesaplama işlemlerinde, Python programlama dilinin temel kütüphanelerinden birisi olan NumPy'ın sözdizilimleriyle eşdeğer yazılır ve CPU veya GPU gibi gelişmiş sistemlerde üst düzey bir hızda çalışabilmek için geliştirilmiştir. Buradan da anlaşılacağı üzere Theano kütüphanesinin kullanılmasına bağlı olarak derin öğrenme-sinir ağ yapısında yüksek performanslı modeller oluşturulmaktadır. Ayrıca Theano kütüphanesi , derin öğrenme işleminin yapılacağı makinenin donanımsal özelliklerini analizler ve bu analizlemeye göre donanımsal bazda mümkün olan en yüksek performansın elde edilebilinmesi için bazı kod optimizasyonlarını kendi kendine kontrol edebilmektedir. Bu özelliğinden dolayı Theano, birçok araştırmacı ve geliştirmeci tarafından tercih edilmektedir.
Yukarıda bahsedildiği üzere Theano'nın sözdizimi Numpy kütüphanesinin sözdizimiyle eşdeğerdir ve bu dizilim sembolik bir formdadır. Sözdiziminin sembolik bir formda bulunması ise bazen dezavantaj olarak ifade edilebilir. Çünkü, mevcut ifadelerin soyut bir formatta tanımlanmasından, işlenmesinden ve hesaplanmasından dolayı, yapay zeka alanında çalışma yapmak isteyen amatör geliştiricilerin çalışmaları yönetebilmeleri ve anlamaları zor sayılabilir. Bu durumdan dolayı ise genellikle Theano kütüphanesi alanında uzmanlaşmış kimseler tarafından tercih edilmektedir.
Theano Nasıl Kurulur?
Theona kütüphanesi Python programlama dili içerisinde oldukça basit bir şekilde aktifleştirilmektedir. Bu bağlamda;
# Aşağıda verilen komut yazılarak kurulum sağlanır.
pip install theano
Çıktı:
Collecting theano Downloading Theano-1.0.5.tar.gz (2.8 MB) Requirement already satisfied: numpy>=1.9.1 in c:\users\safa\anaconda3\lib\site-packages (from theano) (1.19.5) Requirement already satisfied: scipy>=0.14 in c:\users\safa\anaconda3\lib\site-packages (from theano) (1.5.4) Requirement already satisfied: six>=1.9.0 in c:\users\safa\anaconda3\lib\site-packages (from theano) (1.15.0) Building wheels for collected packages: theano Building wheel for theano (setup.py): started Building wheel for theano (setup.py): finished with status 'done' Created wheel for theano: filename=Theano-1.0.5-py3-none-any.whl size=2668107 sha256=47a9b8974f9ebb5258ede9c5e8ee0aa35360c7d72e6fd41f113b5a58bad4be31 Stored in directory: c:\users\safa\appdata\local\pip\cache\wheels\84\cb\19\235b5b10d89b4621f685112f8762681570a9fa14dc1ce904d9 Successfully built theano Installing collected packages: theano Successfully installed theano-1.0.5 Note: you may need to restart the kernel to use updated packages.
Başarılı bir kurulumun ardından Theona kütüphanesini çalışmalarda kullanabilmek için "tensor" alt paketi içe aktarılır(import ).
from theano import tensor
Son olarak içe aktarılan "tensor" alt paketi içerisinde bulunan matematiksel uzantı sembollerini kullanabilmek için;
#Genel olarak "T" harfinde tanımlanır.
import theano.tensor as T
Böylelikle Theano kütüphanesi araçları "T" ifadesinde tanımlanır ve "T" komutuyla çağırılabilinir.
Theano Neden Kullanılır?
Theano kütüphanesi yukarıda ifade edildiği gibi Python programlama dilinin temel kütüphaneleri arasında sayılabilen NumPy kütüphanesi ile sembolik matematiksel ifadelere ev sahipliği yapan bir diğer kütüphane Sympy'ın birleştirilmesinden türetilen bir kütüphanedir. Theano kütüphanesi oluşturulurken iki farklı güçlü kütüphane kullanılması, Theano'un sahip olduğu özellikleri açısından geniş bir kapsam kazandığı anlamına gelmektedir. Bu bağlamda spesifik olarak bazı örnekler vermek gerekirse;
- Sembolik Farklılaşma: Hem Numpy kütüphanesinin matematiksel araçlarına hem de Sympy kütüphanesinin sembolik araçlarına sahip olduğu için, gradyan hesaplamalarını otomatik bir şekilde sembolik grafikler çerçevesinde oluşturabilicek özelliğe sahiptir.
- Kararlılık Optimizasyonu: Theano kütüphanesinin sahip olduğu bazı özelliklerden dolayı verisel düzeyde bulunabilecek bazı kararsız ifadeler tespit edilebilir. Bu tespit edilen değerleri ise değerlendirebilmek için daha yüksek kararlı araçları kullanabilir.
- Uygulama Hızı Optimizasyonu: Yukarıda bahsedildiği üzere CPU ve/veya GPU gibi gelişmiş sistemlerde üst düzey bir hızda çalışabilmek için geliştirilmiştir. Bu durumdan dolayı ise standart çalışmalara göre daha hızlı sonuçlar üretebilmektedir.