Yazar | Andrew Zhuravchak
Tercüman | Hilal Ay
Mühür görüntüsü | VCG'den CSDN indirme
Bugün, makine öğrenimi zirveye ulaştı ve çeşitli alanlarda uygulandı. Havaalanında yüz tanıma sistemi var ve Facebook'un kişiselleştirilmiş reklamları var.
Ancak, makine öğrenimi ve gömülü cihazların birleşiminde hala büyük bir boşluk var.
Yerleşik dünyanın ne olduğunu anlamıyoruz
Makine öğrenimini işlemek için güçlü bilgi işlem gücünü kullanmaya alışkınız.
AlexNet, küçük bir 227 x 227 piksel görüntüyü işlemek için 727MFlop bilgi işlem gücüne (Flops = kayan nokta işlemleri) ve 235Mb belleğe ihtiyaç duyar. Örneğin, ARM Cortex-A8'in Google Nexus S üzerindeki işlem gücü saniyede 66MFlop'tur. Bu nedenle, bir çıkarım yapmak için yaklaşık 11 saniye beklemelisiniz. Bu çok yavaş!
Üniversitede makine öğrenimi ile ilgili birkaç kurs aldım. Çok ilginç ödev yaptık. Ancak 4GB GTX1050 bile tüm modelleri eğitmek için yeterli değildi.
Ortalama bir makine öğrenimi mühendisi, bilgi işlem kaynaklarını nadiren dikkate alır. Ve nadiren bellek kullanımını önemsiyorlar. neden? Bu donanımlar çok ucuz olduğu için telefonunuzda bile oldukça iyi bir CPU ve çok fazla bellek var.
Bir partide fotoğraf çekerken telefonunuzdaki depolama alanının yeterli olmadığını fark etmeyeli uzun zaman oldu mu? Yalnızca 256KB flash belleğe sahip bir TrueTouch sensör kontrolörü kullandığınızı hayal edin. Doğru, yalnızca 256 KB. Ve üretici yazılımı bunun bir kısmını kapladığı için, bu depolamayı tam olarak kullanamazsınız. Hesaplanmış, yaklaşık 100 KB kullanabilirsiniz. Son modelinizin boyutuna tekrar bakın. Bundan çok daha büyük olabilir.
İlginç? İzlemeye devam edelim.
"Gömülü aygıtları" duyduğunuzda ne düşünüyorsunuz? Aklınızdaki ilk izlenimi hatırlayın.
1. Gömülü cihazlar herhangi bir elektrikli makine, hatta mikrodalga fırınlar ve çamaşır makineleri olabilir
Evet, doğru anladın!
Günümüzde neredeyse tüm elektrikli ekipmanlar gömülüdür. Bu cihazların her bir işlevden sorumlu bir veya daha fazla denetleyicisi olabilir: dokunma algılama, motor durumu izleme, vb.
2. Arduino ve Raspberry Pi
Tebrikler, yine doğru anladınız!
Her ikisi de DIY projelerinde en popüler ve en yaygın kullanılan araç setlerinden biridir. Ayrıca gömülü cihazlardır.
3. Jetson Nano ve benzeri ürünler
Cevap yine doğru.
Bu, makine öğrenimi modellerini çalıştırmak için özel olarak geliştirilmiş, mini bilgisayar olarak adlandırılan özel bir geliştirme kitidir. Çok güçlü ve çok havalı.
Ama bir sorun var gibi görünüyor.
Arkadaşlarımın çoğu bazı harika donanım yan projeleri yapıyor. Genellikle Arduino veya STM32 kullanırlar.
Jetson Nano ve benzeri cihazlarla çok ilgilenen birkaç AI mühendisi tanıyorum. Bu cihazların gömülü yapay zekanın geleceği olduğuna inanıyorlar.
Ardından, lütfen şu soruyu düşünün: "Bu cihazlardan kaç tanesi üretim seviyesindeki ürünlerde kullanılıyor?"
Cevap: Minimal
Evinizde kaç tane elektrikli cihazınız olduğunu düşünün ve ardından arabanızdaki çok sayıda kontrol cihazı, işte kullanılan güvenlik sistemleri vb. Hakkında düşünün.
Her cihazın bir denetleyicisi vardır. Genellikle bu denetleyiciler minyatür ve süper ucuzdur. Jetson veya Raspberry Pi'nin kaynakları ve işlevleriyle eşleşemezler.
Bir mikrodenetleyiciniz olduğunu varsayalım. Ana görevi ekrana dokunan parmağı kullanmaktır. Bir ARM Cortex-M0 işlemciye, 256KB belleğe (sadece 80120KG'si kullanılabilir) sahiptir. Bu gerçek zamanlı bir sistemdir, bu nedenle modeli tahmin etmek için 100 mikrosaniye gibi çok az zamana ihtiyacınız vardır. Amacınız algoritmayı geliştirmek veya değiştirmektir.
İyi şanslar ve "gömülü AI" dünyasına hoş geldiniz.
Anahtar nokta: Gerçek gömülü dünya, 1-2 $ 'lık son derece sınırlı kaynaklara sahip çiplerden oluşur. Ve üretim seviyesindeki ürünler bu çipi kullanır.
Saf altyapı
Yukarıda bahsettiğim projeler üzerinde çalışıyorum ve iyi ilerliyorum Bu mikrodenetleyiciye uygun küçük bir sinir ağı geliştirdim.
Ardından modeli bilgisayarımdan cihaza aktarmam gerekiyor!
1. Miktar belirleme
İşlemci kayan nokta işlemleri gerçekleştiremez. Yapabilsek bile kullanmayacağız çünkü operasyonu çok karmaşık ve çok zaman alıyor.
Bu nedenle, modelin ağırlığını ölçüyorum, yani sürekli bir aralıktaki değerleri sınırlı bir aralıktaki ayrık değerlere dönüştürüyorum.
bil bakalım ne oldu? Ne PyTorch ne de TensorflowLite bunu tam olarak destekleyemez. Tüm aktivasyon işlevlerini destekleyemezler (çok basit HardTanh'ı kullanmama rağmen). PyTorch, nicel modeli bir dosyaya bile kaydedemez.
Bu yüzden kendim yapmak zorunda kaldım.
2. Çıkarım kodu oluşturma
Modeli bu kontrolörde çalıştırmak istiyorsunuz, değil mi? O zaman model çıkarımı için C kodunu kullanmanız gerekir.
Size talihsiz bir haber vermek için bu adımı elle de yapmanız gerekir. neden? Çünkü PyTorch, kod üretme işlevini anlamaz. Aksine, TFLite bu özelliğe sahip olmasına rağmen oldukça sınırlıdır ve genel aktivasyon işlevlerini desteklemez.
Bu yüzden tekrar kendim yapmak zorunda kaldım.
İşimde bu tür birçok durumla karşılaştım. PyTorch ve TensorflowLite'ı eleştirmek değil, "yardım istemek" istemiyorum.
Anahtar nokta: Makine öğrenimi topluluğunun başka bir büyük sorunu var: "gömülü yapay zeka" için profesyonel araçlar yok.
Karanlıktaki Işık?
Büyük yarı iletken şirketlerin yapay zekaya büyük ilgi duyduklarını ve aktif olarak çok değerli ve önemli şeyler yaptıklarını görüyorum.
CMSIS-NN: Arm Cortex-M CPU için verimli sinir ağı çekirdeği.
Bazı derleyiciler verimli çıkarım kodları oluşturabilir ve bu çıkarım kodları donanımınıza göre optimize edilebilir.
Daha birçok harika şey var.
İngilizce: Makine Öğrenimi Embe'ye Geldiğinde Başarısız Oluyor gg ed System. İşte Nedeni
Bağlantı: https: // directiondatascience .com / makine öğrenimi, embe'ye geldiğinde başarısız olur gg ed-system-9ce6def9ba75
Yazar: Andrew Zhuravchak, Ar-Ge Sistem Mühendisi.
Çevirmen: Crescent Moon
BlackBerry telefonlar kullanımdan kaldırılacak; üç büyük operatör: ücret borcu olan kullanıcılar salgın önleme ve kontrol döneminde durmayacak; Chrome testleri, arama sonucu sayfası URL'sini kaldıracak