‫Pekala.
‫Şimdi elimizde eğitim ve doğrulama bölümleri var.
‫X değerlerimiz resimlerimizin dosya yolları ve Y değerlerimizdir.
‫Etiketler, etiketlerin boolean numpy gösterimleridir.
‫Şimdi yapmamız gereken şey, etiketlerimiz zaten sayısal bir formatta olduğundan, resimlerimizi sayılara dönüştürmemiz
‫veya en azından bunu bizim için yapacak bir işlev oluşturmamız gerekiyor.
‫Bunun için küçük bir başlık oluşturalım.
‫Başaracağız.
‫Görüntüleri ön işleme.
‫Görüntüleri zamanlara dönüştürmek.
‫Böylece bu adıma resmi olarak başlamış sayılırız.
‫Şimdi, görüntüleri zamanlara dönüştürmek dediğimde, bu ne tür bir veri üzerinde çalışıyor olursanız olun sahip olacağınız
‫ortak bir temadır.
‫Yani görüntü olmasa bile, ses dosyası gibi bir şeyse veya bir metin parçasıysa, TensorFlow ile çalışıyorsanız yine
‫de zamanlara dönüştürmeniz gerekecektir.
‫Ve unutmayın, zaman kipleri sayısal bir gösterimdir, bir tür matris gibi.
‫Pekala, bunu tekrar yapabilmemizin bir yolu nedir?
‫Görüntülerimizi not defterinde ön işlemden geçirmek yerine, yalnızca ihtiyaç duyduğumuzda ön işlemden geçirebiliriz.
‫Çünkü dosya yollarını manipüle etmek, daha az veriyle çalıştığı için bir görüntüyü manipüle etmekten çok daha
‫kolaydır.
‫Dosya yollarına zaten sahip olduğumuz için projenin geri kalanında bu temayı kullanacağım.
‫Ben de diyorum ki, olabilir.
‫Bunu yapacağız.
‫Projedeki adımlar için bazı işlevler geliştirmeye başlayacağız.
‫Bununla kastettiğim şey, sadece bir satır kod yazmak ve ardından hücreyi çalıştırmak yerine işlevler oluşturmaktır.
‫Hücre çalışmıyor çünkü orada hiçbir şey yok.
‫Başlangıçta, ilk başladığımda, yapacağım şey buydu.
‫Sayısız hücrede sayısız kod satırı çalıştırır ve sonra çalıştırmaya devam ederdim.
‫Ve sonunda, aşağıda defterin başka bir bölümünde olsam bile, burada bir yerde
‫zaten yazdığım kodu yeniden yazmam gerekecekti.
‫İşte bu yüzden bir kez kod yazabilmek için fonksiyonlar oluşturmaya başlayacağız.
‫Başlangıçta biraz zaman alabilir, ancak bu işlevleri daha sonra yeniden kullanabiliriz ve iş akışlarınızda
‫düşünmeye başlamanızı istediğim şey budur.
‫Eğer şöyle düşünüyorsanız, Hey, burada verileri önceden işleyeceğim, belki bu işleve, bu işlevselliğe daha
‫sonra ihtiyacım olabilir.
‫Bu yüzden bunu tek bir hücre yerine bir fonksiyona dönüştüreceğim.
‫Bunu ön işlem için yapalım.
‫Görüntülerimizi zaman kiplerine dönüştürüyoruz.
‫Birkaç şey yapan bir fonksiyon yazacağız.
‫Şimdi, bu ön işleme işlevi görüntülere özgü olacaktır, ancak konsept aynı kalmaktadır.
‫Hangi veriyle çalışıyor olursanız olun, muhtemelen onu bir çeşit tensöre dönüştürmeniz gerekecektir.
‫Bu yüzden girdi olarak bir resim dosyası yolu almak istiyoruz.
‫Şu ana kadar elimizde olan bu.
‫Görüntü dosyası yollarımız var.
‫Dosyayı okumak ve bir değişkene kaydetmek için TensorFlow'u kullanmak istiyoruz.
‫Muhtemelen bu değişkene görüntü diyeceğiz.
‫Güzel ve basit.
‫Üç İmajımızı değiştirmek istiyoruz.
‫Dolayısıyla, görüntü değişkeni bir JPEG olacaktır, çünkü bu iki zamanda uğraştığımız
‫görüntü dosyası türüdür.
‫Dört.
‫Şimdi ne yapacağız?
‫Resmi yeniden boyutlandırmamız gerekiyor.
‫Yani tüm resimlerimiz farklı boyutlarda olduğu için.
‫Genellikle tüm görüntülerinizi, görüntü sınıflandırmanızı veya görüntülerle bir tür derin öğrenme işlem hattını
‫standart bir boyuta yeniden boyutlandırmak standart bir uygulamadır.
‫Bu yüzden resmi yeniden boyutlandıracağız.
‫224'ün bir şekli olmak için.
‫Şimdi, bir görüntüyü yeniden şekillendirme konusunda deneyim sahibi olmadan bu konu hakkında düşünmenizi istiyorum.
‫Sahip olmak neden önemli olabilir?
‫Bu.
‫Şimdi, bu boyut keyfi olabilir, ancak onlarla çalışırken benzer boyutta görüntülere sahip olmak neden önemli
‫olabilir?
‫Son olarak, değiştirilmiş görüntüyü döndürün.
‫Şimdi.
‫İşlev için beş adımımız var.
‫"Vay canına, bunu nasıl yapabilirim?" diye düşünüyor olabilirsiniz.
‫Buradaki bir kaynağa göz atmanızı istiyorum.
‫Yani TensorFlow.
‫Veri yükleme.
‫İşte başlıyoruz.
‫Bu yüzden, TensorFlow'a nasıl veri yükleneceğini okumaya başlayabilmeniz için bunu bir kenara bırakacağım.
‫Bu yüzden burası kontrol etmek için gerçekten iyi bir bölüm.
‫Yani TensorFlow verileri yönlendirir.
‫Kontrol etmek isterseniz bunu kaynaklar bölümüne ek olarak bırakacağım.
‫Sadece 10 dakikamı burayı okuyarak geçirdim.
‫Belki anlamasanız bile önümüzdeki birkaç gün içinde 10 dakikanızı ayırabilirsiniz.
‫Bazı kavramları bir araya getirmeye yeni başladım.
‫Ve şimdi eğitimlere gelince, burada bir tane daha olmalı.
‫Bence verileri yükleyin ve önceden işleyin.
‫Bu da bir başka değerli konu.
‫Buraya mı geliyoruz?
‫Görüntüleri yüklemek için yapacağımız şey bu.
‫Benim sorunum resimleri yüklemeye çalışmak ve onları zamanlara nasıl dönüştüreceğimi bilmek istiyorum.
‫Bu yüzden derslere gidiyorum.
‫Yük verilerine bakıyorum.
‫Ve resimleri nasıl yükleyeceğime baktım.
‫Sonra da buradan okuyabilirsiniz.
‫Bu yüzden bu iki kaynağı birbirine bağladığımdan emin olacağım.
‫Ve bu videoyu bitirdikten sonra, her birini yaklaşık 10 dakika boyunca okumanızı istiyorum.
‫O zaman geri dönelim.
‫Bu işlevi burada oluşturalım.
‫Ancak bunu yapmadan önce, size bir görüntünün gerçekte nasıl göründüğünü ve bir tensörün neye
‫benzediğini göstermek istiyorum.
‫Haydi o zaman.
‫Bir görüntüyü bir umpire a'ya dönüştürün.
‫Tam burada.
‫Bunu yapmadan önce,
‫bir görüntüyü içe aktarmanın neye benzediğini söyleyelim.
‫Bu yüzden numpy dizisine dönüştürüyorum.
‫Zamanların boyutlu numpy dizilerine veya matrislerine çok benzediğini söylediğimi hatırlıyor musunuz?
‫Şimdi göreceğimiz şey, görüntü okuma anlamına gelen read içindeki harita çizme işlevini
‫içe aktarıyoruz.
‫Resmi okumak için kaydedeceğim.
‫Dosya isimlerini alalım 42.
‫Unutmayın, dosya adları sadece eğitim görüntülerimizin dosya yollarının bir listesidir.
‫İşte burada.
‫Köpek görüşü.
‫Eğitim görüntüleri.
‫Ve sonra görüntü şeklini kontrol etmek istiyoruz.
‫Tamam.
‫İşte resmimiz burada.
‫Bu yükseklik.
‫Genişlik.
‫Aslında hep kafam karışıyor ama bu yüzden onları kare bir görüntü gibi yeniden şekillendiriyoruz.
‫Bu yüzden yükseklik ve genişlik gerçekten önemli değildir.
‫Yükseklik, genişlik, renk kanalı olduğuna inanıyorum.
‫Renk kanalından kastım kırmızı, yeşil ve mavi piksellerdir.
‫Peki buraya gidersek, renk kanalı nedir?
‫Kanal obj bir örnek.
‫Yani bir görüntü kırmızı, yeşil ve mavi renklerden oluşur.
‫Bu konuyu biraz daha derinlemesine incelemenize izin vereceğim.
‫Ancak buradaki bir görüntüdeki her pikselin kırmızı, yeşil ve mavi değerlerin
‫bir kombinasyonu olduğunu ve 0 ile 255 arasında değiştiğini bana güvenmeniz gerekecek.
‫Eğer bir numpy dizisi olan resmimize bakacak olursak, şöyle olması gerekir.
‫İşte oldu.
‫Sıfır ile 255 arasındaki değerler.
‫Yani nokta maksimum görüntüsüne gidersek, belki bu bize bir şey söyleyecektir.
‫255 ve imaj adamları.
‫Sıfır.
‫İşte oldu.
‫Yani kırmızı, yeşil ve mavi piksel değerleri sıfır ile 2 arasındadır. 55.
‫Bizim imajımız tam olarak budur.
‫Evet.
‫Şu anda bir hakemde.
‫Zamanların numpy dizilerine çok benzediğini nasıl söylediğimi hatırlıyorum.
‫Öyleyse bunu bir gerilime dönüştürelim ve bunu yapabiliriz.
‫TF Constant kullanarak neredeyse her şeyi bir tensöre dönüştürebilirsiniz.
‫Şimdi doküman dizisini okursak, tensör benzeri bir nesneden sabit bir tensör oluşturur.
‫Çok güzel.
‫Bu konuda biraz daha bilgi edinebilirsiniz.
‫Ancak sloganımızı unutmayın Şüpheniz varsa, kodu çalıştırın.
‫Biz de bunu uygulayacağız.
‫Bakalım bu ne yapacak.
‫Tamamen aynı değerlere sahibiz.
‫Aslında, bunu gösterelim.
‫İmaj istiyoruz ve belki de en fazla iki tane.
‫TFA sabitiyle aynı.
‫Yani buradaki tek fark, şimdi 353'e kadar bir şekil tensörüne sahip olmamız ve şimdi 353'e kadar şekil
‫olması.
‫Sadece iki tanesini gösterecek şekilde indeksledik.
‫Ancak bunun bir dizi numpy ve bunun da bir tensör olduğunu görürseniz.
‫Buradaki tek fark, bu tensörün yoğun akışlı olması ve artık bir CPU üzerinde çalışabilmesi, yani çok daha hızlı hesaplama
‫yapabilmesidir.
‫Dolayısıyla GPU'muz bu sayılardaki kalıpları, şu anki makinem olan MacBook Pro'daki CPU'muzun bu sayılardaki
‫kalıpları bulabileceğinden çok daha hızlı bulabilecektir.
‫Şuraya gidelim.
‫Görüntüyü bir tensöre dönüştürün.
‫Şimdi bir görüntünün ne tür verilerden oluştuğunun arkasındaki temelleri biraz gördük?
‫Piksel değerleri.
‫Sıfır ile 255 arasında kırmızı, yeşil veya mavi.
‫Bir görüntünün bir hakemde neye benzediğini gördük ve bir görüntünün bir tensörde neye benzediğini gördük.
‫Son olarak bu beş adımı gerçekleştirmesi gereken fonksiyonumuza gelelim.
‫Peki bu videoyu çok uzun olmaktan kurtarmak için ne yapabiliriz?
‫Bir fonksiyon yazacağımızı söylediğimi biliyorum, ancak bu fonksiyonu gerçekten yazmadan önce biraz sezgi
‫oluşturmanın iyi olacağını düşünüyorum.
‫Bu işlevi bir sonraki videoda oluşturacağız.
‫Bu arada, kendi resimlerinizden birini buraya koymayı deneyin.
‫Herhangi bir dosya adı numarası seçebilir ve ardından farklı değerlerle oynayarak bunu bir tensöre dönüştürmeyi
‫deneyebilirsiniz.