Şub 202017
 
1.248 views

TensorFlow örneği ve küçük bir düzeltme

Bir önceki yazımda TensorFlow örneklerinin yer aldığı bir linkten bahsetmiş ve bazı kodlarda küçük düzeltmeler yapılması gerekebileceğinden bahsetmiştim.

Bu durum, hem yazılım dillerinde, hem de kütüphanelerde çok sık geliştirmelerle karşılaşmamızdan kaynaklanıyor.

TensorFlow örneği ve küçük bir düzeltme

Alıntı: tensorflow.org

Aşağıda, sözünü ettiğim kodlardan birini vereceğim. Yaklaşık 90 satırlık bu python kodunda sadece bir metodun adını değiştirmek gerekiyor. Benim yaşadığım sorunu, benimle benzer ortamlarda çalışan pek çok kişi aynen yaşayacaktır. Bu tür sorunları gidermek, en azından azaltmak için kod yazarlarının paylaştıkları açık kaynaklı kodları hangi koşullarda çalıştırdıklarını not etmelerinde yarar var. Bunun çok kolay olmadığını bir kod yazarı olarak ben de biliyorum. Bu nedenle, test ettiğim aşağıdaki kodu hangi ortamda çalıştırdığımı ve nasıl düzelttiğimi sizlerle de paylaşmak istiyorum.

Orijinal kodun yazarı ve nerede paylaşıldığını kodların başlangıç bölümünde bulabilirsiniz.

Test bilgisayarı: 8GB ram, 4 çekirdek, Intel i5
Test sistemi: Ubuntu 16.04
Python sürümü: 3.5.2
TensorFlow sürümü: 1.0.0
numpy sürümü: 1.12.0
matplotlib sürümü: 1.5.3

Kendi sisteminizdeki kütüphane sürümlerini öğrenmek için aşağıdaki kodu kullanın:

Kodlarda düzeltme gereği sadece tek bir satırda (satır no 39) var.

Sorunlu satır no: 39

Düzeltilmiş satır:

Açıklama:

Diğer kodlarla ilgili takıldığınız yerler olursa, yorum alanından sorularınızı bana yöneltebilirsiniz. 15 ayrı örneği yukarıda belirttiğim koşullarda denedim. 12 örneği sorunsuz çalıştırdım. 3 tanesindeki sorunlar hala devam ediyor. Testleri sürdürüyorum.

Ahmet Aksoy

Kaynaklar:

Şub 182017
 
1.954 views

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Zirvesi 15 Şubat’ta izleyicileriyle buluştu. Etkinlik, aynı zamanda Mountain View üzerinden canlı olarak da yayınlandı. Bu yayına ait kayıtlara https://events.withgoogle.com/tensorflow-dev-summit/watch-the-videos/#content adresinden erişebilirsiniz. Sözkonusu yayının süresi 8 saat 17 dakikadır.

TensorFlow ile herkes için makine öğrenmesi

2017 TensorFlow Dev Summit

TensorFlow kendi web sayfasında: “sayısal hesaplama için akış grafiklerini kullanan açık kaynaklı bir yazılım kütüphanesi” olarak tanımlanıyor. “Grafik üzerindeki düğümler matematiksel işlemleri temsil ederken, kenarlar, bunların arasında iletişim gerçekleştiren çok boyutlu veri dizilerini (tensor) ifade etmektedir.”

Tensorflow kütüphanesi tek veya birden fazla CPU veya GPU üzerinden çalışabilmektedir. Şu anda kütüphanenin 1.0 sürümü yayınlanmış durumdadır.

Eğer bu kütüphane bilgisayarınızda daha önceden kurulmuşsa sürüm numarasını şu komutla sorgulayabilirsiniz:

TensorFlow kütüphanenizi en güncel (1.0.0) sürümüne yükseltmek istiyorsanız ya da tamamen yeniden kurmak niyetindeyseniz https://www.tensorflow.org/ adresindeki ilgili linkleri takip etmeniz yeterlidir.

Örneğin benim bir önceki TensorFlow sürüm numaram (0.11.0) idi. Bu sürümü yeni sürüme yükseltmek için Ubuntuda sadece şu komut yeterli oldu:

Yeni sürümüm: tensorflow (1.0.0)

Bir çok kütüphanenin yeni sürümüyle ilgili çalışan örnek bulmak çoğu zaman biraz problemlidir. TensorFlow 1.0.0 konusunda şanslıyız. Hemen kodlayıp çalıştırabileceğiniz kodlarla dolu bir github sayfası var: https://github.com/aymericdamien/TensorFlow-Examples. Bazı kodlarda artık kullanılmayan bazı metodlarla karşılaşabilirsiniz. Endişelenmeyin. Hata mesajını araştırdığınızda yanıtlarını hemen bulabiliyorsunuz.

Örneğin, tf.neg() metodu yeni düzenlemede tf.negative() şeklini almış. Yani sadece küçük isim değişiklikleriyle baş etmek zorundasınız.

Kütüphane, örnek veri setlerine de sahip. Elle yazılmış rakam görüntülerinden oluşan “mnist” veri seti, örneklerde yoğun şekilde kullanılıyor. Örneklerin bir çoğunu 8GB belleğe sahip, 4 CPU’lu i5 makineye kurulu Ubuntu 16.04 üzerinde, Python-3.5.2 ile test ettim. Sorunsuz çalışıyorlar.

Eğer bilgisayarınızda GPU kullanma imkanınız varsa, verilen örneklerin sonuçlarını çok kısa sürede alabilirsiniz. Benim gibi sadece CPU kullansanız bile, kodların çalışma süresi aşırı uzun değil.

TensorFlow, “herkesin makine öğrenmesini kolayca uygulayabilmesini” hedefliyor. Bunda da başarılı olacak gibi.

Eğer siz de makine öğrenmesi konularıyla ilgileniyorsanız, TensorFlow’la bir an önce tanışmayı programınıza alın.

Ahmet Aksoy

Kaynaklar:

Şub 172017
 
812 views

Ek enerji istemeyen soğutma sistemleri geliyor

www.livescience.com tarafından aktarılan bir habere göre binaları ek enerjiye ihtiyaç duymayan, üretilmesi basit ve ucuz bir yöntemle soğutabilmek mümkün olacak.

Ek enerji istemeyen soğutma sistemleri geliyor

Kaynak: www.livescience.com

Bu çözümü sağlayan malzeme, sıradan plastik rulolara benziyor. Aslında o, ısı yansıtıcı bir süper malzeme. Bu malzeme ile kaplanan yapılar, harici ısı kaynaklarının olumsuz etkilerinden korunacak.

Güneş panellerinin aksine, bu malzeme güneşin ortalıkta olmadığı zamanlarda da etkisini sürdürüyor ve en ufak bir enerjiye ihtiyaç duymuyor.

Bu süpermalzemenin bir diğer özelliği de ucuz, kolay ve büyük oranlarda üretilebilir olması.

Soğutucu malzeme üç temel bileşenden oluşuyor:
1- Saydam polimer polimetilpenten
2- Cam boncuklardan oluşan tabaka
3- İnce bir yansıtıcı gümüş katman

Cam boncukların boyutu, “phonon-polariton resonance” adı verilen kuantum etkiyi oluşturacak şekilde seçiliyor. Bu etkinin, kızılötesi ışınların cam atomlarının titreşimiyle etkileşime girmesi sırasında ortaya çıktığı belirtiliyor. Cam boncukların ve en alttaki gümüş tabakanın görünür ışığı yansıtırken malzemenin alt tabakalarındaki kızılötesi ışıma da yüzeye ulaşmakta; dolayısıyla malzeme soğumaktadır.

Yapılan hesaplara göre, yaz döneminde normal bir konutu soğutabilmek için çatıdaki 10 ila 20 metrekarelik bir kaplama yeterli olacaktır.

Bu malzemenin termoelektrik santralların soğutulmasında da kullanılabileceği, hatta aşırı ısınma nedeniyle verimli çalışamayan güneş panellerinin ömrünü uzatabileceği söyleniyor.

Bu tür süper malzemelerin fosil yakıt kullanımının azaltılmasına katkıda bulunması da kuvvetle mümkün. Bekleyip, göreceğiz.

Kaynak: http://www.livescience.com/57902-magic-foil-cools-buildings.html

Şub 162017
 
819 views

Yeni dünya rekoru – 18 dakikada 104 uydu uzaya gönderildi

Hemen sevinmeyin! Bu rekoru bizim ülkemiz kırmadı. Amerika veya Çin de değil. Bu rekorun sahibi Hindistan.

Yeni dünya rekoru

Resim: science.alert.com

Hindistan Uzay Araştırmaları Örgütü (ISRO) tarafından 18 dakika içinde uzaya gönderilen 104 adet uydu, Hindistana yeni bir dünya rekoru kazandırdı.

Bir önceki rekor 2014 yılında aynı gün içinde uzaya 37 uydu gönderen Rusya Uzay Ajansına aitti.

Uydular, 27358 km/saat hızla hareket eden bir roket tarafından bir kaç saniye içinde yörüngelerine fırlatıldı. Bu, çok riskli işlem başarıyla gerçekleştirildi. Sözkonusu uydulardan 88 adedi Planet Labs‘a ait yaklaşık 3.5 kilogramlık küçük birimlerden oluşuyor. Uyduların hepsi Hint Okyanusu üzerindeki yörüngelere konuşlandırıldı.

ISRO yöneticisi A.S. Kiran Kumar, proje maliyetinin yaklaşık yarısının ticari işletmeler tarafından karşılandığını belirtti.

Uzaya uydu göndermenin maliyeti giderek düşerken, dünya çevresinde oluşan uzay atıklarının giderek daha fazla endişe yaratmakta olduğu belirtiliyor. Bunda, gönderilen uyduların pek çoğunun sadece bir kaç yıllık ömre sahip olması önemli. Bu süre tamamlandığında, o uydular birer uzay çöpü haline dönüşüyor.

Haberle ilgili ayrıntılara aşağıdaki “sciencealert” linkinden ulaşabilirsiniz.

Ahmet Aksoy

Kaynak: http://www.sciencealert.com/india-just-set-a-new-world-record-launching-104-satellites-in-18-minutes

Şub 092017
 
971 views

Zihin Okuma Bilimsel Olarak Kanıtlandı

Gözünü kırpma yeteneğinden bile yoksun hastalarla, onların düşüncelerini elektronik araçlarla okuyarak iletişim kurmak giderek daha etkin hale geliyor.

Aslında bu teknoloji onlarca yıl önceden beri var. Buna rağmen, gelişmeler oldukça yavaş ilerliyor.

Zihin okuma

Alıntı: sciencealert.com

Yeni çalışmalar, alternatif bir beyin-bilgisayar arayüzü teknolojisinin, dış dünyayla bağlantısı tamamiyle kopmuş insanların seslerini duyurabilme imkanına kavuşmakta olduğunu gösterdi.

ALS (amytotrophic lateral sclerosis) hastalığının son evrelerinde hastalar, tam bir felç durumuna (locked-in sendromu) gelmektedir. Bu aşamadaki hastalar hiç bir organlarını, gözlerini bile oynatamamaktadır. Oysa beyinleri hala aktif durumdadır.

Bu sorunu gidermek amacıyla bir araya gelen uluslararası bir araştırmacı grubu, öncekilerden farklı bir yol izleyerek, sinirlerdeki elektriksel aktivite yerine beyindeki oksijen oranını ölçme yoluna gittiler.

Bu sayede ALS hastalarıyla komple felç halinden önce ve sonra iletişim kurabilme imkanı elde ettiler. Çünkü bu, düşüncelere ilişkin beyin aktivitelerini kaydetmenin belki de yegane yoluydu.

Bu yeni beyin-bilgisayar teknolojisini kullanan kişiler bir kaç ay boyunca bakıcılarıyla ve aileleriyle iletişim kurabildiler.

Araştırmacılar, aldıkları doğru yanıtların rasgele olmadığını, doğruluk oranının %70 düzeyinde bulunduğunu belirtiyorlar.

Hastalara içinde bulundukları durumla ilgili duyguları da soruldu. Bunlardan dört tanesi mutlu olup olmadıkları sorusunu bir kaç hafta boyunca sürekli “evet” olarak yanıtladı.

Kaynak:
Ana Matran-Fernandez, Post-doctoral Researcher, University of Essex.
http://www.sciencealert.com/this-new-mind-reading-technology-lets-locked-in-patients-communicate

Şub 022017
 
1.612 views

Python ile Mozaik Resimler

Python, her alanda çok güçlü kütüphanelere sahip bir dil. Grafik kütüphaneleri açısından da aynı durum geçerli. Bunların başında is “matplotlib” geliyor.

Bu yazımda, sözünü ettiğim kütüphanenin “scatter” metodunu ele alacağım.

Python ile Mozaik Resimler

Angelina Jolie

Matplotlib kütüphanesi çok geniş ve kapsamlıdır. İstatistik veya derin öğrenme çalışmalarının görselleştirilmesinde yoğun şekilde kullanılır.

Yazıyı fazla uzatmamak için kodların ayrıntılı açıklamasına girmeyeceğim. Satır aralarına bazı ipuçları koydum. Diğer ayrıntıları da ilgili kütüphanelere ait açıklamalardan bulabilirsiniz. Bu kütüphanelerden etkin bir şekilde yararlanabilmek için onları kullanmak gerekir. Farklı parametreleri, farklı değerlerle denemekte yarar var.

Scatter metodundaki “marker” parametresini burada biraz açmak istiyorum:
Bu marker (işaret) grafik üzerindeki işaretleme biçimini tarif eder. İki tür “marker” bulunur.

  • 1- İçi dolu işaretler: ‘8><^vodDHh*ps'
  • 2- İçi boş işaretler: ‘,.1234 _x+’ 01234567

Tırnak içinde grup halinde gösterilen işaretlerin her biri tek olarak seçilip kullanılmalıdır. Örneğin: ‘8’, ‘o’, ‘x’. Boş işaretlerden bazıları da tırnaksız rakamlar halindedir.

Kodları Python 3.5.2 ile test ettim.

Parametrelerle oynayarak çok ilginç sonuçlar elde edebilirsiniz.

Matplotlib, pillow ve numpy kütüphanelerini Ubuntu 16.04 üzerinde aşağıdaki komutlarla kurmanız gerekir:

  • sudo apt install python3-matplotlib
  • sudo apt install python3-pil
  • sudo pip3 install numpy

Ahmet Aksoy

Not: Yukarıdaki kodlar için Christien Diener‘in github pyart sayfasında verdiği kodları temel alıp, biraz basitleştirdim.

Kaynaklar: