Oca 172018
 
2.278 kez okundu

Tensorflow ile Acemi Şiirler

Bu yazımda internet üzerinden rasgele derlenmiş şiirler kullanarak eğittiğim sistemden aldığım -şiirimsi- çıktıları paylaşacağım.

şiirimsi tensorflow

Henüz abartılı bir sonuç beklemeyin. Nasıl ki bir bebeğin konuşmayı öğrenmesi için belli bir zamana ihtiyacı varsa, makine öğrenmesi sistemlerinin de öğrenmek için zamana ve çabaya ihtiyacı var.

Bu çalışmada Kullandığım veri seti internet üzerinden rasgele toplanmış yaklaşık 70 bin dize içeriyor. Bu veri özel bir denetimden geçmedi. Şair veya biçem konusunda herhangi bir ayrım uygulanmadı. Tek kaygı, dişe dokunur sonuçlar elde edebilmek için veri boyutunun en az 1 milyon karakter olması gereğiydi. (Bu bir kural olmasa da, bir çok uzmanın önerisi bu yönde.) Kullandığım veri setinin boyutu yaklaşık 2MB.

Program, Tensorflow kütüphanesiyle karakter düzeyli RNN (Recurrent Neural Network) eğitimi yapıyor.

Raspberry Pi 3 üzerinde Tensorflow kurulumunu “Raspberry Pi ile Tensorflow 2” başlıklı yazımda ele almıştım. Tensorflow 1.1.0, Python 3.4 üzerinde sorunsuz bir şekilde çalışıyor. (Halen en son Tensorflow sürüm numarası 1.5)

Eğitim çalışmasında Sherjil Ozair’in github deposundaki kodlarını kullandım: https://github.com/sherjilozair/char-rnn-tensorflow

Eğitim için Python 2 veya Python 3 kullanmak mümkün. Ancak Tensorflow sürümü en az 1.0 olmalıdır.

EĞİTİM İŞLEMLERİ

Eğitim işlemi

komutuyla yapılıyor. Eğer herhangi bir parametre vermezseniz, otomatik olarak “Tiny Shakespeare” verisi kullanılıyor. İsterseniz, internet üzerinden başka veri setleri de bulup indirebilirsiniz.

Sanal ortam üzerindeki kendi eğitim çalışmamda şu kodları kullandım:

Tensorflow

Her batch işlemi yaklaşık .25 saniye tutuyor. Toplam 40050 batch olduğuna göre yaklaşık 10 bin saniyelik bir eğitim süresi olacak. Yani 3 saate yakın bir süre.

Bilgisayarım 4 çekirdekli bir i5. Ancak tam yükte aşırı ısındığından, çökmemesi için işlemcileri 2.53GHz yerine 2.40GHz hızla çalıştırabiliyorum. Aynı işlemler Raspberry Pi 3 üzerinde 8 kat daha fazla bir zamana ihtiyaç duyuyor. Bu yüzden tek bir Raspberry Pi ile bu tür bir eğitim yapmak pek de verimli değil.

Ancak, bir başka bilgisayarda eğitilmiş veri setini Raspi’ye aktarıp, kullanabilirsiniz. Ben de bu yöntemi tercih ediyorum.

SONUÇLAR

Eğitilmiş bir veri setini kullanarak sonuç elde etmek için verilecek komut şu:

Yukarıdaki komuttan da anlaşılacağı gibi, eğitilmiş veri “save/siirler” klasöründe bulunuyor.

Dizüstü bilgisayarımda eğittiğim veriyi Raspberry Pi 3 üzerine “rsync” komutu ile çektim ve raporladım:

Raspberry Pi 3 üzerinde rapor alma işlemi bile yaklaşık 30 saniye sürüyor.

Bir örnek daha:

Çok daha büyük bir veri seti ve -tercihen- GPU kullanabilen bir bilgisayarda eğitilmiş veri setleriyle çok daha anlamlı sonuçlar elde etmek mümkün olabilir.

Eğer güçlü bir bilgisayara sahipseniz veya sabırlı biriyseniz siz de kendi veri kümelerinizi eğitebilirsiniz.

Ahmet Aksoy

Referanslar:

  2 Yanıt - “Tensorflow ile Acemi Şiirler”

  1. Hocam öğretirken türkçe karakter sorunu alıyorum.

    • Eğitilecek bilgileri içeren dosyanın UTF-8 formatlı olması lazım. Eğer python2 kullanıyorsanız,
      o da sorun yaratmış olabilir.
      Python3 kullanıyorsanız ve dosya utf-8 formatlı ise, veri dosyasının hata veren lokasyonundaki karaktere -bir hex editör programı ile- bakın. Sorunlu bir karakterse, o karakteri kaldırın.

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(gerekli)

(gerekli)

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi:
Önceki yazıyı okuyun:
Raspberry Pi Maceralarım No-09

Raspberry Pi Maceralarım No-09 Raspberry Pi 3 GPIO ile Bir Ledin Parlaklığını ve Frekansını Kontrol etmek Önceki yazımda "İki Yönde...

Kapat