Arşiv

Archive for the ‘LINUX’ Category

Ubuntu’da Derin Öğrenme Ortamının Hazırlanması

Merhaba bu yazımda derin öğrenmeye başlamak isteyenler için gerekli kütüphanelerin nasıl kurulacağını anlatmak istiyorum. Söz konusu sistem 64 bit Ubuntu 14.04 işletim sistemi ve Nvidia Quadro K4200 ekran kartı üzerinde test edilmiştir.

1-İlk olarak işletim sisteminizin güncel olması gerekiyor aşağıdaki komut ile işletim sisteminizi güncelleyin.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake g++ gfortran git pkg-config python-
dev software-properties-common wget
sudo apt-get autoremove
sudo rm -rf /var/lib/apt/lists/*2

2- Ekran  Kartınızın sürücüsü güncel olmalı nvidia sitesinden indirip kurma yoluna gidebilirsiniz fakat burada xserver’ı kapatmanızı isteyecek çeşitli hatalar alacaksınız çok iyi bir linux kullanıcısı değilseniz bu yol yerine uygulamardan Additional Drivers kısmından güncel olanını yükleyin ve sisteminiz yeniden başlatın.

3-  Nvida web sayfasına giderek CUDA Toolkit indirin, burada CUDA Toolkit’i indirirken onun desteklediği en son sürücü versiyonunu da kontrol edebilrsiniz.  Ben bu yazıyı yazarken CUDA Toolkit 9.1 sürümü vardı.  İndirmeden önce size sistemizle alakalı sorular soruluyor, sisteminize uygun olanı indirsiniz. Yaklaşık 1.2 GB’lık bir dosya iniyor. Dosya indikten sonra aşağıdaki komutlar ile kuruluma başlıyoruz

sudo dpkg -i cuda-repo-ubuntu1404*amd64.deb
sudo apt-get update
sudo apt-get install cuda

Bu işlemden sonra daha sonra kullanılmak üzere cuda’yı ortam değişkenlerine ekliyoruz.

 echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
  echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
  source ~/.bashrc

Her şey yolunda gittiyse aşağıdaki komutun çıktısı CUDA sürümüzü ekrana yazdıracaktır.

nvcc -V

sonuc

Bilgisayarınızı tekrardan başlatın.

4- cuDNN derin öğrenme için gerekli olan kütüphaneler. Son sürümünü nvidia’nın sistesinden indirin ben bu yazıyı yazarken cuDNN v7.1 for Linux sürümü vardı.  İndirebilmek için üye olmanız ve üyeliğinizin onaylanması gerekiyor. Bu bazen hemen olurken bazen zaman alabiliyor şansınıza artık. Yaklaşık 360 MB bir dosya iniyor. Aşağıdaki komutlarla cuDNN kurulumununu yapıyoruz.

cd ~/Downloads/
  tar xvf cudnn*.tgz
  cd cuda
  sudo cp */*.h /usr/local/cuda/include/
  sudo cp */libcudnn* /usr/local/cuda/lib64/
  sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

Bu aşamadan sonra kontrol için nvidia-smi komutu ile herşeyin yolunda gidip gitmediğini kontrol etmiş oluyoruz. Bu komut sonucunda ekran kartınızla ilgili çeşitli bilgiler komut ekranında gözükecektir.

5- Derin öğrenme için tercih ettiğiniz dil python’sa ki python olmalı bence, bu iş için bize yardımcı olacak çok güzel kütüphanler var bunları kuruyoruz. Bu zamana kadar tüm bilgisayarımızı ilgilendiren işler yaptık artık Virtual Env üzerinden gideceğiz bunu bildiğinizi varsayıyorum daha önce kurulumu üzerine bir yazı yazmıştım.  Bir Virtual Env Klasörü oluşturduk ve aşağıdaki komutları sırası ile işliyoruz.


pip install matplotlib
pip intsall numpy
pip intsall pandas
pip intsall h5py
pip intsall scipy
pip intsall skimage
pip intsall sklearn
pip intsall sympy 

Ayrıca ihtiyacınız olursa OpenCv’yi de eklemeniz gerekebilir onuda burada anlattım.

6- Bu aşamadan sonra atrık ihtiyacımız olan kütüphaneleri kuracağız. Yeni başlayan biri için en uygun Keras, Tensorflow, Theano üçlüsü, hemen üçünüde bilecekmiyiz demeyin bunlardan Keras Theano veya Tensorflow ile çalışabilen bir üst kütüphane. İşleri kolaylaştırmak için yazılmış kurduktan sonra arka planda hangisinin çalışmasını istiyorsanız onu ayarlayabilirsiniz.  Bu kütüphanelerin hem GPU hemde CPU için kurumları var eğer GPU’nuz yoksa diğer kurulumları tercih edin.

Önce Tensorflow kuruyoruz. Kurulum için komutlar burda mevcut inanmazsanız bakın.

pip install --upgrade tensorflow-gpu

Bu arada ben python 2.7 kullanıyorum. Siz python3.x sürümü kullanıyorsanız pip leri pip3 şeklinde kullanının. Kurulum bittikten sonra import ettiğinizde hata yoksa işlem tamamdır.

  python
  >>> import tensorflow as tf
  >>> exit()

Evet sıra Theanoda onunda kurulumu burada var. Aşağıda komutlar arasına virgül koydum öyle çalışmaz ise tek tek kurun.

pip install dev,nose g++, pygments,sphinx,nose
pip install Theano
  python
  >>> import theano
  >>> exit()

Sıra geldi en kolayını kurmaya onunda kurulumu ve çeşitli ayarları burada var.

  sudo pip install keras  
      python
  >>> import keras

Kurulumdan sonra import komutunu verdiğinizde alacağınız çıktı aşağı yukarı bu şekilde ise hadi bakalım gözünüz aydın.

Screenshot from 2018-03-12 17:56:550

Ammada uzun oldu. Kelime hataları dil sürçmeleri olabilir kusura bakmayın artık. Herhangi bir sorunla karşılaştığınızda çekinmeden ulaşabilirsiniz. Bir dahaki yazıda görüşmek üzere.

Kaynaklar :

1-https://github.com/floydhub/dl-setup

2- https://www.tensorflow.org/install/install_linux#InstallingVirtualenv

3-https://keras.io/backend/

4-http://deeplearning.net/software/theano/install_ubuntu.html

5-https://developer.nvidia.com/cuda-toolkit

6-https://developer.nvidia.com/cudnn

Kategoriler:LINUX

Beaglebone Host key verification failed hatası çözümü

Aralık 7, 2016 Yorum bırakın

Beaglebone black üzerinde aşağıdaki gibi bir hata alıyorsanız çözümünü şu eşkilde yapabilirsiniz.

hata

Hataya sebep olan yer : Offending ECDSA key in /root/.ssh/known_hosts:1

sed -i ‘1d’ ~/.ssh/known_hosts

burada known_hosts dosyamızın hataya sebeb olan ilk satırını ‘1d’ ile  siliyoruz.

İyi çalışmalar

 

Kategoriler:LINUX

Beaglebone üzerinden scp ile veri aktarmak

Aralık 7, 2016 Yorum bırakın

Bu yazımda Beaglebone Blcak (BBB) içindeki bir dosyayı  bilgiyarınıza nasıl aktarcağnızı anlatacağım. Bildiğimiz gibi BBB’yi usb den bilgisayarımıza taktığımızda BBB nin ip adresi 192.168.7.2 , Bilgisayarımızın ip adresi 192.168.7.1 olmaktadır.

scp [yollanacak dosya]  [hedef username @ hedef ip adresi] : [yollanacak dosyanın hedefteki kayıt yeri ]

Örnek :

scp beaglebone.py enes@192.168.7.1:/home/enes

İyi çalışmalar

Kategoriler:LINUX

Beaglebone Black Usb üzerinden İnternete Çıkma

Bu yazımda BB yi internte bağlamayı anlatacağım. Bilindiği gibi usb ile BB yi bilgisarımıza bağlayınca bilgisayarımız 192.168.7.1 ip adresini BB ise 192.168.7.2 ipsini alır. Genelde internete bağlamak için ethernet üzerinden anlatımış ben laptopun wifi si üzerinden BB ye internet bağlantısı sağlayacağız. İlk olarak terminalden

 ssh 192.168.7.2 -l root

ile BB ye ssh üzerinden bağlanıyoruz. Sonra routing tablosuna default çıkış olarak ip adresi atıyoruz.

route add default gw 192.168.7.1

Sonra etc içindeki resolv.cof dosyasını ayarlıyoruz bunun için

 cd /etc 
    nano resolv.conf
    nameserver 8.8.8.8  i nameserver 127.0.0.1 in altına yazıp ctrl+x 
    ve yes onayı veriyoruz

Daha sonra yeni bir terminal açıp komutları giriyoruz.

sudo su
#eth1 benim BB yi bağladığım usb wlan0 ise nete çıktığım wifi arayüzü
iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

İşlem tamam bundan sonra BB de

ping www.google.com

komutunu verice geri dönüş alıyorsanız işlemler başarılı demektir.Bu arada BB yi her kapatıp açtığımızda ayarlar sıfırlancaktır onun için bir bu ayarları içiren bir script yazarsanız her seferinde komut girmek zorunda kalmazsınız. Sorunuz olursa çekinmeden sorabilirsiniz. İyi çalışmalar.

Kategoriler:KARIŞIK, LINUX

Beaglebone Black Ssh ile Usb üzerinden bağlanma ve ssh_exchange_identification: read: Connection reset by peer hatasının çözümü

Merhabalar bu yazımda beaglebone black ile çalışırken karşılaştığım bir sorunun çözümünden bahsedeceğim. Beaglebone Black =BB

Büyük bir hevesle aldık BB mizi herşey hazır usb den güç de verdik. Benim gibi hdmi kablosu olmayanlar BB ye uzaktan bağlanıp konsol üzerinden çalışmak isteyecektir. Bunun içinde ssh ile BB ye bağlanmamız gerekiyor. BB için default olarak gelen ip 192.168.7.2 dir. Linux işletim sistemli bilgisayarımızda terminalden şu komutu vererek BB ye bağalanabiliriz.

ssh 192.168.7.2 -l root

ama komutu verdik ama bağlantı olmuyor. Sonuç aşağıdaki gibi

ssh 192.168.7.2 -l root
ssh_exchange_identification: read: Connection reset by peer

Araştırmalarım sonucu yabancı bir kaynaktan şöyle bir çözüm buldum.

İlk olarak herhangi bir browser açıp adres çubuğuna http://192.168.7.2:3000/ yazıyoruz. Tabi bunu yazarken BB nin usb ile bilgisayara bağlı olması gerektiğini unutmayın. Bu adres bizi cloud9 ide sine götürecek sol üstten File > NewFile deyip yeni bir dosya açıyoruz. İçerisine aşağıdaki kodu yapıştırıp kaydet diyoruz (serv.js diye isim verelim kayıt ederken) sonra üstteki run düğmesine basıyoruz.

ar fs = require('fs');
var destroyed_key_file = '/etc/dropbear/dropbear_rsa_host_key';
fs.readFile(destroyed_key_file, function (err, data) {
if (err) throw err;

if( data===null || data.length===0 )
{
console.log("we have a corrupted host key file... try do delete it");
fs.unlink(destroyed_key_file, function (err) {
if (err) throw err;
console.log('successfully deleted ' + destroyed_key_file);
console.log('you should now reboot your beaglebone.');
console.log('the /etc/init.d/dropbear script will create a new rsa host key file for you.');
console.log('after the reboot you should be able to login over ssh');
});
} else {
console.log("it seems that you have another problem, sorry");
}
});

Kod çalıştırılınca konsola log yazıları gelecek succesfully deleted görünce işlem tamam. Şimdi BB yi ya reset düğmesine basarak yada usbden çıkartıp tekrar takarak yeniden başlatıyoruz. Sonra tekrar ssh komutunu veriyoruz ilk defeda onay soruyor yes diyoruz şifre soruyor enter diyoruz ve artık BB içindeyiz.

sene@G550 ~ $  ssh 192.168.7.2 -l root
The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established.
RSA key fingerprint is bd:e7:0d:68:58:0e:4a:ab:08:9a:54:c5:39:d5:51:a0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.7.2' (RSA) to the list of known hosts.
root@192.168.7.2's password:
root@beaglebone:~#

İyi çalışmalar dilerim.

Kategoriler:LINUX