‫Umarım hazırsınızdır, çünkü şimdi tüm veriler üzerinde bir modeli eğitmenin zamanı geldi.
‫Modelimizin tahminlerini kontrol edip değerlendirerek her şeyin çalıştığını doğruladık ve şöyle dedik: Evet, modelimiz
‫kesinlikle bir şeyler öğreniyor, ancak onu yalnızca bin görüntü üzerinde eğittiğimiz için,
‫10.000'den fazla görüntü üzerinde eğitim alan ilk tam gelişmiş derin öğrenme modelimiz gibi tam ölçekli bir modelde
‫deneyip deneyemeyeceğimizi görelim.
‫İşte bu noktada, daha önce oluşturduğumuz fonksiyonların gücü gerçekten devreye girecek.
‫O halde kendimiz için küçük bir başlık açalım.
‫Bir modeli eğitmek, aslında buna büyük bir köpek modelini eğitmek diyelim.
‫Ve buraya küçük bir moji koyabiliriz.
‫Tam veriye ulaştığınızda bunu elde edersiniz.
‫Bu büyük bir köpek modeli çünkü çok sayıda köpek görüntüsü üzerinde çalışıyoruz.
‫Bu projeye bayıldım.
‫Kestik.
‫İhtiyacımız olan şey en başta hatırlamaktır.
‫Eğer istemiyorsan, sorun değil.
‫Şimdi ona bir göz atacağız.
‫Elimizde X ve y, len x, len y var ve bunlar eğitim verilerimizin tamamı.
‫Bunlar dosya adları ve bunlar da etiketler.
‫Yani buraya gelirsek, X trende bulunan tüm dosya adlarıdır.
‫Yani X'in ilk belki on tanesine bakacak olursak, X'in on tanesi.
‫Bunlar tüm eğitim görüntü dosyalarımızın adlarıdır.
‫Bunları daha önce sadece 800 uzunluğunda olan X trenine ayırdık.
‫İşte oldu.
‫Kara X trenine bir göz atarsak.
‫Sadece 800 resim.
‫Yani şu anda modelimiz yalnızca 800 görüntü üzerinde eğitilmiştir.
‫Ve eğer nedenine bakmak istersek, neden etiketler her bir dosya yolu ile ilişkilendiriliyor?
‫Boolean dizileri şeklinde.
‫Peki tam bir modeli eğitmek için ne yapmamız gerekiyor?
‫Açılış konuşmamıza geri dönecek olursak, iş akışımız nedir?
‫Verileri hazırlayın.
‫Zaman kiplerine çevir.
‫Bunun için bir fonksiyonumuz var.
‫Hatırlıyor musun?
‫Veri grupları oluşturun.
‫İstemiyorsan, sorun değil.
‫Bunun için bir işlev oluşturduk ve sorununuza uygun bir model seçtik.
‫Yani TensorFlow hub'ı, sadece model oluşturmayı kullanabileceğimiz ve ardından modeli verilere uydurup bir tahmin yapabileceğimiz
‫bir yer.
‫Bir deneyelim.
‫Şimdi gidip bir veri yığını oluşturalım.
‫Tam veri seti ile.
‫İşte bu noktada, defterinizin ilerleyen bölümlerinde işlevler gerçekten yardımcı olur.
‫Veri eşitliği için buna değeceğini söylemiştim.
‫Veri grupları oluşturun.
‫Şuna bir bak.
‫Bu, yukarıda yazdığımız fonksiyonumuzdur.
‫Görüntü x ve etiket y çiftlerinden oluşan veri yığınları oluşturur.
‫Güzel veri karışıklıkları.
‫Eğer eğitim veriyorsa ama vermiyorsa, bu biraz engel teşkil eder.
‫Test verilerini de girdi olarak kabul ettiğini göremiyoruz.
‫Etiket yok.
‫Yani sorun yok.
‫Bu eğitim verisi değildir.
‫Şimdi tam bir veri veri yığını oluşturalım.
‫Şimdi tüm verilere bir göz atalım.
‫Bu bir toplu veri seti.
‫Çok güzel.
‫Resimler ve etiketlerle.
‫Harika.
‫Veri yığını oluşturmanın gerçekte ne işe yaradığını merak ediyorsanız, hemen geri dönüp
‫buradaki dizinimize bir göz atalım, ne yapıyoruz?
‫Veri yığınlarını görselleştirmek verilerimizi yığınlara dönüştürür.
‫İşte büyük işlevimiz veri yığınları oluşturmak.
‫X ve Y'yi alır.
‫Ve işte olan şey.
‫Bunun nedeni, bunun bir eğitim veri seti olmasıdır.
‫Eğitim verisi yığınları oluşturmak X ve Y'yi zamanlara dönüştürür.
‫Bunları karıştırır ve ardından görüntü işleme işlevimizi ve etiket alma işlevimizi verilerle eşleştirir.
‫Ve sonra verileri 32'lik bir parti boyutuna dönüştürür.
‫Ancak bu konuda daha önce bir video görmüştük.
‫Eğer tazelemeye ihtiyacınız varsa, geri dönün ve bu fonksiyonu oluşturduğumuz videoya göz atın.
‫Şimdi kaldığımız yere geri dönelim.
‫Şimdi verilerimizi geri aldık.
‫Bir sonraki adım ne?
‫Bir modele ihtiyacımız var.
‫Öyleyse model için tam model için model oluştur eşittir model oluştur yapalım.
‫Ne yarattığımı hatırla.
‫Model işlevi yaptı.
‫Doküman yok.
‫Hmm.
‫Neyse, yine de araştıralım.
‫Gidip kontrol edebiliriz.
‫Yani TF Dev image net mobile nat v2 ile bir model oluşturmak.
‫Yani bir modelimiz var.
‫Tamam.
‫Bir toplu veri kümemiz ve bir modelimiz var.
‫Şimdi, model oluşturmanın ne işe yaradığını kontrol etmek istersek, nerede bir model oluşturuyor?
‫Buraya gelirsek, bu bizim model oluşturma işlevimizdir.
‫Ah, bir doküman dizisi yok.
‫Belki bu da ekleyebileceğiniz bir şeydir.
‫Böylece bir bakıcı modeli oluşturan bir fonksiyon yaratırsınız.
‫Bu yüzden, TensorFlow hub'ından indirdiğimiz modeli ve çıktılarımızın sahip olduğumuz etiketlerle
‫aynı boyutta olduğundan emin olmak için üstte yoğun bir katman kullanarak bir bakıcının sıralı modelini oluşturmak
‫için daha önce attığı adımlardan geçecek.
‫Modeli bir kayıp fonksiyonu ve optimize edici ile derleyecek, ki tepenin dibinde
‫bize Uluslararası Tepe İnişi Şampiyonası'nda tepeden aşağı nasıl ineceğimizi
‫anlatan arkadaşımız Adam ve ölçtüğümüz şey doğruluktur.
‫Ve sonra görüntümüzün boyutu olan girdi şeklinden beslenen modeli oluşturuyoruz.
‫Harika.
‫Geri gel.
‫Peki bunu nasıl eğitebiliriz?
‫Sırada ne var?
‫Şimdi ne yapacağız?
‫Bazı geri aramalar oluşturduk, bu yüzden modelimiz için bazı özel geri aramalar yapmamız gerekebilir.
‫Hadi yapalım şunu.
‫Hadi gidip tam model geri aramaları oluşturalım.
‫Eşitliklerde tam modal zaman.
‫Gemide çadırlar kurun.
‫Geri dön.
‫İşte oldu.
‫Bir tensör panosu geri çağrısı oluşturmak için daha önce kullandığımız fonksiyonumuz burada.
‫Unutmayın, tensör panosu geri çağrısı modelimizin performansını izlememize ve diğerleriyle karşılaştırmamıza yardımcı
‫olur.
‫Bu nedenle, tüm veriler üzerinde eğitim verirken doğrulama seti yoktur.
‫Dolayısıyla, erken durdurma ve geri çağırma ile doğrulama doğruluğunu izleyemeyiz.
‫Dolayısıyla, erken durdurma geri çağrımız için model erken durdurmaya ihtiyacımız var.
‫Eşittir bakıcılar, geri çağırmalar, erken bırakmalar.
‫İşte oldu.
‫Ve modelimiz tüm veriler üzerinde parladığında, doğruluğu üç dönem boyunca artmayı
‫bıraktığında doğruluğu izlemesini sağlayacağız.
‫Aşırı avlanmaması için eğitimi durdurmasını sağlayacağız ya da çok fazla uyum sağlamasını
‫engellemeye çalışacağız.
‫Yani kaydır ve gir.
‫Harika.
‫Görünüşe göre modelimizi eğitmeye başlamak için bir reçetemiz olabilir, böylece tam modeli tam veriye uydurabiliriz.
‫İşte gidebileceğimiz yer.
‫Tam model nokta uyumu yapabiliriz.
‫Yani sadece oluşturduğumuz modeli çağırıyoruz.
‫Nokta uyumu x tam veriye eşittir.
‫Şimdi doğrulama seti yok, unutmayın, çünkü tüm veriler üzerinde eğitim yapıyoruz.
‫Epochs 100 yaşında olacak.
‫Ya da sadece num epochs olabilir çünkü daha önce num epochs ayarlamıştık ve az önce oluşturduğumuz iki
‫callback olan callback'lere sahip olacağız.
‫Şimdi bu, daha küçük bir modeli eğiterek yaptığımız adımların aynısını yapıyor, ancak
‫bu sefer daha fazla veriyle.
‫Harika.
‫Şimdi size küçük bir uyarıda bulunmak için buraya küçük bir not koyacağım ve bunu dile getireceğim.
‫Yani sen de biliyorsun.
‫Aşağıdaki hücreyi çalıştırmak biraz zaman alacaktır, belki 30 dakikaya kadar veya belki biraz daha
‫uzun, ilk epok için 30 dakika çünkü çalışma zamanında kullandığımız GPU'nun tüm görüntüleri belleğe yüklemesi gerekiyor.
‫İlk epok, hatırlayın, 1000 görüntü üzerinde daha küçük modelimizle, ilk epok birkaç dakika sürdü,
‫tahmin edebileceğiniz gibi belki üç veya 4 dakika, çünkü bu tam veri seti üzerinde.
‫10,000 resimle eğitim yapıyor.
‫Bu yüzden ilk dönem için tüm verilerin yüklenmesi biraz daha uzun sürecektir.
‫Yani bunu çalıştırmadan önce, tüm kodlar doğru olduğu sürece, aslında hata verebilir.
‫Bu nedenle tüm verileri en baştan denemek yerine, her şeyin çalıştığından emin olduk.
‫Çünkü tam bir makine öğrenimi modelini, tam, derin bir öğrenme modelini eğitirken.
‫Oldukça uzun bir zaman ve saatler alabilir.
‫Burada oldukça şanslıyız.
‫GPU kullandığımız için bu bir saat içinde eğitilecek.
‫Ancak daha büyük bir şirkette çalışıyorsanız, bir hafta boyunca bir şeyi eğitmeyi bırakabileceğinizi hayal edebilirsiniz.
‫İşte bu yüzden deneyler kurduğunuzda, bir derin öğrenme modelini bir hafta boyunca eğittiğinizi ve sonra
‫işe yaramadığının ortaya çıktığını hayal ettiğinizden emin olmak istersiniz.
‫İşte bu yüzden her şeyin çalıştığından emin olmak için yukarıdaki tüm adımları attık.
‫Böylece büyük bir modeli eğitmeden önce her şeyin yerli yerinde olduğundan emin olabiliriz.
‫Tam bir antrenman turu başlatalım.
‫Hazır mısın?
‫İlk tam gelişmiş derin öğrenme modelimizi 10.000'den fazla görüntü üzerinde eğitmek üzereyiz.
‫Köpek vizyonu gerçekten gerçeğe dönüşüyor.
‫Benden nefret et.
‫Üç, iki, bir.
‫Shift ve enter.
‫Parmaklar çapraz.
‫Umarım bu işe yarar.
‫Küçük bir yükleme çubuğunun geldiğini görmeliyiz ve epoch sayısını 100 olarak ayarladığımız için 100
‫epoch'a kadar eğitime devam edecektir.
‫Ancak iyileşme durursa, tam model erken durdurma geri çağırmamız var.
‫Bu, eğitimin başında duracak ve bittikten sonra onda birlik sırayı kullanarak sonuçları kontrol edebiliriz.
‫O yüzden bunun başlamasını bekleyeceğiz.
‫Ve sonra muhtemelen yapacağım şey bu videoyu duraklatmak olacak çünkü yaklaşık yarım saat sürecek.
‫Ben biraz mola vereceğim, belki siz de verebilirsiniz, biraz dolaşmak, rahatlamak için.
‫Oh.
‫Belki yarım saatten biraz daha uzun sürecek.
‫Testlerim yanlış değilse bu sefer düşmeliyim.
‫Ancak birkaç saniye bekleyeceğiz ve model durduğunda bu videoya geri döneceğim.
‫Yani model erken durdurulduğunda, tam model erken durdurma geri çağrısı devreye girmiştir.
‫Tamam.
‫Bu yüzden ne kadar çalışması gerekiyorsa o kadar çalışmasına izin vereceğim.
‫Erken durdurma ve geri arama sayesinde modelim kendini durdurduktan sonra geri geleceğim.
‫Yani birkaç saniye sonra görüşeceğiz ama benim için bu birkaç saat sonra olacak.
‫Belki sizin de geleceğinizde birkaç saat vardır.
‫Ve geri döndük.
‫Pekala.
‫Şimdi tamamen eğitilmiş modelimize bir göz atalım.
‫Gördüğünüz gibi, ilk dönemim oldukça uzun sürdü ve bunu bitirirseniz, bunu geçtiyseniz,
‫bu aslında bir dakika sürecek.
‫Kendinizin sırtını sıvazlamanız gerekir çünkü bu, ilk ve derin öğrenme sinir ağınızı
‫eğitmek için bir geçiş töreni gibidir.
‫Ve bu uzun zaman aldı.
‫Bir veri bilimcisi veya makine öğrenimi mühendisi olduğunuzda bulmanız gereken
‫şeylerden biri de modeliniz çalışırken zaman geçirmenin yollarıdır.
‫Ben de köpeklerimle yürüyüşe çıktım çünkü bu bir tane aldı.
‫Kaç saniye bu?
‫Yani 4730 bölü 60.
‫78 dakika.
‫Yani ilk dönemi yapmak için bir saatten biraz fazla.
‫Ancak dediğim gibi, görüntüler GPU'nun belleğine yüklendikten sonra, bundan sonra ne kadar hızlı gittiğine
‫bakın.
‫Ve bu hücre çalışırken muhtemelen yapmak isteyeceğiniz şey, bunu size daha önce söylemeliydim,
‫ancak gelecek için not alabilirsiniz.
‫Bu hücre çalışırken, ardından çalışan bir kaydetme modeli olmasını istersiniz.
‫Bu şekilde, modeliniz eğitimi bıraktığında.
‫Erken durdurma çağrımızı burada tekrar durdurduğumuz için teşekkürler.
‫Otomatik olarak modeli kaydet işlevimizi çağıracak ve tam modelimizi modeller dizinimize kaydedecektir.
‫Şimdi buraya gelelim ve modellere bir göz atalım.
‫Orada birkaç tane var.
‫Diyelim ki 2 Şubat'ta mobil net tam görüntü setine sahip olan olacak ve ben saat 5 civarında
‫başladım. m..
‫Yani bu sefer aslında benim için yanlış çünkü emin değilim.
‫Belki de tarih saati bana yanlış geliyordur.
‫Ama işte gidiyoruz.
‫Burayı kurtardı.
‫Yolumuzu bulduk.
‫Şimdi aslında neyin oldukça iyi sonuçlandığına bir göz atabiliriz.
‫Şuna bak.
‫Bu eğitim doğruluğu.
‫Ama ben burada biraz şüpheciyim.
‫Neden biliyor musun?
‫Çünkü bunu onaylamıyoruz.
‫Bu sadece tam eğitim verileri üzerinde bir model eğitimidir.
‫O zaman buraya gelelim.
‫Bu eğitimli dosyadaki tüm görüntüler üzerinde eğitim yapıyor, a. k. a. X ve Y.
‫Bu nedenle bir doğrulama seti üzerinde test yapamayız, ancak yapabileceğimiz şey, başlangıçta Kaggle'dan indirdiğimiz test veri
‫setini içe aktarmaktır.
‫İşte başlıyoruz, test dosyası.
‫Ve bunları içe aktarabilir, bir veri demetine dönüştürebilir ve ardından modelimizi kullanarak tahminler yapabilir ve bunları Kaggle'a
‫gönderebiliriz.
‫Bu ne kadar destansı?
‫Öyleyse modelimiz kaydedildi.
‫Yük modeli işlevimizi test edelim.
‫Yani model için yüklenmiş eşittir yük modeli.
‫Bu yolu buraya kopyalayacağız.
‫Tamam.
‫Tam modeli yüklüyorlar.
‫Ve eğer bu satırı buraya kopyalarsak.
‫Kene.
‫Oraya koymak istemiyoruz.
‫Buraya bir dize olarak koymak istiyoruz.
‫Şuna bir bakalım.
‫Harika.
‫Geçiyor.
‫Biz de bunun peşindeyiz.
‫Yani yine, TensorFlow belgelerinin göz ardı edilebileceğini söylediği uyarıları alıyoruz.
‫Tamamdır.
‫Şimdi sırada ne var?
‫Sanırım artık 10.000'den fazla görüntünün tamamı üzerinde tamamen eğitilmiş bir modelimiz olduğuna göre, test veri seti üzerinde
‫nasıl bazı tahminler yapabileceğimizi görüyoruz.
‫Bunu bir sonraki videoda yapalım.