Makine öğreniminin sıfır temeli mi? Bir görüntü sınıflandırıcı oluşturmak için TensorFlow'u kullanmayı öğretin |

Editörün notu: Pete Warden, TensorFlow mobil ekibinin teknik lideridir. Jetpac'ta ilk teknik memur olarak görev yaptı. Jetpac'in derin öğrenme teknolojisi, mobil ve gömülü cihazlarda çalışacak şekilde optimize edilmiştir. Şirket, 2014 yılında Google tarafından satın alındı. Pete ayrıca Apple'da GPU optimizasyonu alanında görüntü işleme üzerine çalıştı ve O'Reilly için veri işleme üzerine birçok kitap yazdı. Bu makale Pete Warden tarafından, kodlama olmadan kendi görüntü sınıflandırıcınızı nasıl oluşturacağınız konusunda (şairler için TensorFlow, Kodlama olmadan kendi görüntü sınıflandırıcınızı nasıl oluşturabilirsiniz) konusunda genel halk için yazılmıştır ve makine öğrenimi hakkında fazla bir şey bilmeyen kişilerin de makine öğreniminden keyif alabileceğini ummaktadır. Faydalar. Aşağıdakiler Lei Feng tarafından derlenmiştir. (Daha önce, Leifeng.com TensorFlow ile bir görüntü tanıma sisteminin nasıl kurulacağını rapor etmişti, ayrıntılar için görüntülemek için lütfen tıklayın)

Derin öğrenmeye ilk başladığımda, bu alana başlamayı gerçekten zor buldum. Referans için çok fazla materyal yok ve olsa bile, sadece çok bilgili akademik araştırmacılar anlayabilir. Neyse ki, son birkaç yılda derin öğrenmeyi yönlendirmek için gittikçe daha fazla materyal kullanıldığından, başlamak artık eskisi kadar ulaşılamaz değil.

Her zaman EC2'yi şairlerin bile kullanabileceği bir biçimde tasarlamanın iyi olduğunu düşünmüşümdür. Kullanıcıların bu zor ve gereksiz süreçleri kurtarmak için platform üzerinde basit bir uygulama kurarak temel bilgisayar bilgilerini adım adım kullanmalarına olanak sağlar. Ancak şu ana kadar popüler bir kullanıcı tabanına sahip bir derin öğrenme platformu görmedim. Bu amaçla, bilgisayar programlamasını bilmeden TensorFlow ile kendi görüntü sınıflandırıcınızı nasıl oluşturacağınızı gösterdim. Aşağıda belirli adımlar verilmiştir (ilgili Youtube videoları için burayı tıklayın):

Adım 1: Docker'ı kurun

Neden Docker'a ihtiyacınız var?

TensorFlow'un OS X üzerinde yerel olarak çalışmasına izin vermek sorun olmamalıdır. Bununla birlikte, Python gibi geliştirme araçları için, kurulum sırasındaki standardizasyon derecesi o kadar yüksek değildir ve verilen talimatlar aynı şekilde uygulanamaz. Kolaylık sağlamak için, MacBook Pro'ya bir Linux sanal makine kurmak için Docker uygulama konteyner motorunun ücretsiz sürümünü kullanıyorum. Docker indirme adresi için burayı tıklayın.

Kurulumdan sonra şöyle görünür:

2. Adım: TensorFlow'u yükleyin

Docker'ı kurup çalıştırdıktan sonra, TensorFlow ile önceden yüklenmiş bir Linux sanal makine alabiliriz. sonra:

1. Docker'da uygulanabilen TensorFlow'u indirin (indirme adresi: https://www.tensorflow.org/get_started/os_setup#docker-installation)

2. Terminalin (treminal) normal çalışmasını sağlamak için aşağıdaki komutları kullanın (bu işlem daha fazla içeriği indirir ve çıkarır, bu da zaman alıcı olabilir):

3. İndirme işlemi tamamlandıktan sonra, indirdiğiniz Linux sanal makinesi olan yeni bir terminal göreceksiniz. Kurulumun başarılı olmasını sağlamak için aşağıdaki talimatlara tıklayın.

4. Şimdi, aşağıda gösterildiği gibi TensorFlow dizini, ***. Build dosyası ve diğerleri dahil olmak üzere bir dizi dizini görebilirsiniz:

3. Adım: Docker'ı optimize edin

Docker genellikle web uygulamalarını test etmek için kullanılır. Bu işlevi çalıştırırken, bilgi işlem performansı önemli değildir, bu nedenle sanal makinedeki işlemci hızlı çalışmaz. Ancak bir görüntü sınıflandırıcı oluşturma durumunda, bilgisayarın birçok hesaplamayı işlemesi gerekir, bu nedenle burada Docker'ın hesaplama hızını optimize etmeliyiz.

Docker, VirtualBox sürücüsünü dahili olarak kullanır, bu nedenle ayarları yönetmek için VirtualBox kontrol panelini kullanacağız. Aşağıdaki gibi yöntemler:

1. Mac'inizde VirtualBox uygulamasını bulun ve açın, sanal makineyi panelin sol tarafında göreceksiniz. Şimdi varsayılan olmalıdır (sistem varsayılanı).

2. "Varsayılan" ı sağ tıklayın ve görüntülenen menüde Kapat'ı seçin > ACPI Kapatma

3. Kapattıktan sonra, "varsayılan" altında "Kapatıldı" görünecektir Tekrar sağ tıklayın ve beliren menüden "Ayarlar" ı seçin.

4. "Sistem" simgesine tıklayın ve ardından "Anakart" sekmesini seçin.

5. "Temel Bellek" kaydırıcısını yeşil kısma sürükleyin. Genel olarak, dizüstü bilgisayarın toplam belleğinin yaklaşık% 75'ini oluşturmasına izin verin. 12GB olarak ayarladım ve bilgisayarım 16GB.

6. "İşlemci" seçeneğine tıklayın ve işlemci sayısını 1'den büyük olacak şekilde ayarlayın. Genellikle, MacBook Pro'da 4'ü ayarlamak daha iyidir, ancak kaydırıcının altındaki yeşil çubuğu referans olarak kullanabilirsiniz.

7. Ayarlar iletişim kutusunda "Tamam" ı tıklayın, "varsayılan" ı sağ tıklayın ve "Başlat- > Başsız Başlangıç ".

8. Aşağıdaki komutları yeniden çalıştırın:

Bu işlem serisini tamamladıktan sonra, sanal makine, çalışmasını hızlandırmak için bilgisayarın bilgi işlem gücünü kullanabilir!

4. Adım: Resimleri indirin

Aşağıdaki adımlar TensorFlow'un grafik yeniden eğitim durumuna dayanmaktadır.

Resimlerinizi farklı dizinlerde klasörlere nasıl böleceğinizi ve ardından ilk resim tanıma sinir ağının üst katmanını bu dizinleri tanımak üzere hızlı bir şekilde eğitmek için nasıl kullanacağınızı gösterir.

1. Sonra, bazı vaka fotoğrafları almanız gerekir. Terminalde hala "root @ ..." komut istemini görüyorsanız, bu, hala Linux sanal makine ortamında olduğunuz anlamına gelir. Ardından, sanal makineden çıkmak için "çıkış" a tıklamanız gerekir.

2. Eğitim görüntülerini kaydetmek ve çiçek fotoğraflarını indirmek ve ayıklamak için İndirilenler dizininde yeni bir klasör oluşturmak için aşağıdaki komutu çalıştırın:

3. Tamamlandıktan sonra, aşağıda gösterildiği gibi yeni bir pencere göreceksiniz:

Bu, çiçek kutusu resmini başarıyla indirdiğinizi gösterir. Ayrıca, dosyaya başka çiçek türleri veya fotoğraflar da koyabilir ve ardından dosya adını karşılık gelen adla değiştirebilirsiniz.

Adım 5: Klasörü sanal makinede çalıştırın

1. Eğitim için hazır olan fotoğrafları aldıktan sonra, fotoğrafları TensorFlow'a koymak için bunları Linux'ta kullanım klasöründe kullanabilirsiniz:

2. Bir Linux istemi belirir. Klasörün normalde sanal makinede paylaşıldığından emin olmak için aşağıdaki komutları deneyin:

3. Çiçek klasörü listesini aşağıdaki gibi oluşturun:

6. Adım: Kodu güncelleyin

Bu durumun en son kodu kullanması gerekiyor ve aşağıdaki kaynak kod kontrol programı git'i içerecektir.

1. Çıkarma kodu varsayılan bir e-posta adresi gerektirir:

2. En son kaynakları çıkarın:

3. Şimdi, vim penceresinde olmalısınız. Ayrılmak için "çık" ı tıklayın. Tamamlandıktan sonra, kodun en son sürümüne sahip olacaksınız. Ardından, onu çalışan bir sürümle senkronize edin ve aşağıdaki komutu çalıştırın:

7. Adım: Kodu derleyin

Bu adımın görevi kodu derlemektir. Talimatlarda, işlemcinin AVX ile çalışmasını hızlandırabilecek bazı optimizasyon bayrakları bulacaksınız:

Kodun yazılması 5-10 dakika sürebilir ve bu işlem birçok uyarıyı beraberinde getirebilir. Ama merak etmeyin, bu normaldir.

8. Adım: Kodu çalıştırın

Yeniden eğitim programını çalıştırmak için aşağıdaki komutu çalıştırın:

Ardından, ilk modelin indirilmesi hakkında bilgi ve ardından darboğazlar hakkında uzun bir bilgi listesi olacak. Arka planın tam olarak nasıl çalıştığını bilmek istiyorsanız, burayı tıklayabilirsiniz.

Varsayılan / tmp hedefini çıktı görüntüsüne ve paylaşılan / tf_files dosyasındaki önbelleğe alınmış darboğazı değiştirdim, böylece nihai sonuç OS X'ten elde edilebilir ve farklı bir sanal makineye kaydedilebilir.

Darboğaz önbelleği tamamlandıktan sonra fotoğraf eğitim sürecine girer. Bu yaklaşık 5 dakika sürebilir. Nihai çıktı satırı doğruluk değeri yaklaşık% 90 olmalıdır, yani 10 fotoğraf varsa, görüntü sınıflandırıcınız bunlardan 9'unu karşılık gelen klasörlerinde doğru şekilde sınıflandırabilir.

9. Adım: Görüntü sınıflandırıcıyı kullanın

Sınıflandırılmış resimler /tmp/output_graph.pb içine yerleştirilir. Test edin, sonra başka bir örnek kod alabilirsiniz. Label_image örneği, grafikleri yükleyebilen ve bunları kullanıcı tarafından sağlanan görüntülere uygulayabilen küçük bir C ++ programıdır. Aşağıdaki adımları deneyebilirsiniz:

Bir papatya resmini zaten ayırt edebildiğini göreceksiniz. Eğitim süreci rastgele olduğu için modeliniz bazen hata yapabilir, nasıl performans gösterdiğini görmek için başka resimler deneyebilirsiniz.

Sen bittin

Uygulamanızda çalışmasını sağlamak için sabırsızlanıyor musunuz? Çok basit, İndirilenler / tf_images dizininde yeni bir klasör oluşturun, eğitmek istediğiniz görüntüleri alt klasöre koyun ve ardından sınıflandırıcıyı yeniden çalıştırın.

Şimdi, uygulamada çalıştırın! Label_image örneğini şablon olarak kullanarak, C ++ 'nın ürününüze entegre edilip edilemeyeceğini ve hatta mobil cihazlarda çalıştırılıp çalıştırılamayacağını açıkça görebilirsiniz. Bir akıllı telefonda çalıştırmak istiyorsanız, lütfen Android örnek kodunu kontrol edin.

Son olarak, bu eğiticinin size ilham vereceğini ve kullanıcıların daha iyi bir deneyim elde etmelerine yardımcı olmak için derin öğrenmeyi nasıl kullanacağınız hakkında daha fazla düşünmenizi sağlayacağını umuyorum. İzlediğiniz için teşekkürler ~

aracılığıyla: oreilly

Daha benzer öğreticiler için lütfen Lei Feng web sitesinde "makine öğrenimi öğreticisi", "TensorFlow" vb. Anahtar kelimeleri arayın ~

Milli Gün Altın Hafta film izleme rehberi, hangi film için tiyatroya gireceksiniz
önceki
Rastgele giriş: Monoton fotoğrafçılığa veda edin ve sanal karakterlerle video çekmeyi deneyin! #iOS
Sonraki
En değerli cep telefonu iPhone X, ikinci el ürünler için artık 5800 yuan'a mal oluyor Telefonunuzun değeri ne kadar?
"Dünyanın Her Yerinden Geçmek" beni tavuk çorbası içmeye ikna etti, ama bir ağız dolusu arsenikle beslendi ...
11 sözde belgesel gerilim filmi önerin, lütfen kodlayın
MG 1/100 Beyaz Yeniden Boyanmış Phoenix
Apple CEO'su "hız kapısına" yanıt veriyor / WeChat sahteciliği engelliyor ve 875 appleti temizliyor / Android 9.0 kod adı açığa çıktı | İlham sabah okuması
"Monster Hunter World" test deneyimi paylaşımı, bu sefer birçok yeni unsur var
Siyah teknolojisi, Sony elektronik kağıt DPT-RP1'in kısa ve uzun aşk deneyimi değerlendirmesini de "kağıda dökebilir"
Bu yılın en iyi kumar filmi, bence "One Piece: Golden City" ödülüne layık görülmeli!
1/144 Barbatos Modifiye "Digimon" Omega Beast
Qualcomm bile tehlikede, peki ya diğer Fabless şirketleri?
Ünlü gezgin usta Fudan Üniversitesi'nden mezun oldu ve karısı ve çocuklarıyla geçirdiği trafik kazası nedeniyle kendini terk mi etti? Kahraman, söylentileri kendisi çürüttü!
Apple trilyon dolarlık şirketlere önceden rezervasyon yapıyor mu? Google ve Amazon memnuniyetsizliği ifade ediyor
To Top