PyTorch'tan MXNet'e on dakikada `` Li Mu ''

MXNet Yazarı / Amazon Baş Bilimcisi Li Mu

Yazar: MXNet yazar / yönetmen bilim adamı Li Mu Amazon

Xin Zhiyuan Rehberi PyTorch, tamamen zorunlu bir derin öğrenme çerçevesidir. Popüler, çünkü basit ve anlaşılması kolay bir programlama arayüzü sağlıyor ve hızla popülerlik kazanıyor. MXNet, ndarray ve gluon modülleri aracılığıyla PyTorch'a çok benzer bir programlama arayüzü sağlar. Bu makale, aynı algoritmayı uygulamak için bu iki çerçevenin nasıl kullanılacağını kısaca karşılaştıracaktır.

PyTorch, tamamen zorunlu bir derin öğrenme çerçevesidir. Popüler, çünkü basit ve anlaşılması kolay bir programlama arayüzü sağlıyor ve hızla popülerlik kazanıyor. Örneğin, Caffe2 yakın zamanda PyTorch'a dahil edildi.

Özellikle bilmediğiniz şey, MXNet'in ndarray ve gluon modülleri aracılığıyla PyTorch'a çok benzer bir programlama arayüzü sağlamasıdır. Bu makale, aynı algoritmayı uygulamak için bu iki çerçevenin nasıl kullanılacağını kısaca karşılaştıracaktır.

Kurulum

PyTorch, varsayılan olarak yüklemek için conda kullanır, örneğin

Ve MXNet daha yaygın olarak kullanılan pip'dir. Gece sürümünü kurmak için --pre burayı kullandık

Çok boyutlu matris

Çok boyutlu matrisler için PyTorch Torch stilini takip eder ve tensör olarak adlandırır, MXNet ise NumPy ndarray adını kullanır. Daha sonra, her bir öğenin 1 olarak başlatıldığı iki boyutlu bir matris oluşturuyoruz. Sonra her elemana 1 ekleyin ve yazdırın.

  • PyTorch:

  • MXNet:

Paket isimlerindeki farkı göz ardı ederek, buradaki temel fark, MXNet'in şekil parametrelerinin tıpkı NumPy gibi parantez içine alınması gerektiğidir.

Model eğitimi

Biraz daha karmaşık bir örneğe bakalım. Burada, MINST veri setinde bir model eğitmek için çok katmanlı bir algılayıcı (MLP) kullanıyoruz. Karşılaştırmayı kolaylaştırmak için 4 küçük parçaya ayırıyoruz.

Verileri oku

Burada MNIST veri setini indirip hafızaya yüklüyoruz, böylece partileri tek tek okuyabiliriz.

  • PyTorch:

  • MXNet:

Buradaki temel fark, MXNet'in veri değişikliğinin okunan grubun birinci öğesine, yani MNIST resmine, ikinci etiket öğesi yerine uygulandığını belirtmek için transform_first kullanmasıdır.

Modeli tanımlayın

Aşağıda sadece tek bir gizli katmana sahip bir MLP tanımlıyoruz.

  • PyTorch:

  • MXNet:

Sıralı kapsayıcıyı, bir sinir ağı oluşturmak için katmanları bir araya getirmek için kullandık. MXNet ve PyTorch arasındaki temel farklar şunlardır:

  • Giriş boyutunu belirlemenize gerek yok, bu sistem daha sonra otomatik olarak çıkaracaktır

  • Tamamen bağlı ve evrişimli katmanlar, etkinleştirme işlevlerini belirleyebilir

  • Daha sonra modeli okurken ve yazarken gerekli olan her katmana benzersiz bir ad eklemek için bir name_scope etki alanı oluşturmanız gerekir

  • Model başlatma işlevini açıkça çağırmamız gerekiyor.

Herkes sadece sinir ağlarının her katmanı Sıralı altında tek tek çalıştırabileceğini bilir. PyTorch, ilerlemenin nasıl yürütüleceğini özelleştirmek için nn.Module'u devralabilir. Benzer şekilde, MXNet, benzer efektler elde etmek için nn.Block'u devralabilir.

Kayıp işlevi ve optimizasyon algoritması

  • PyTorch:

  • MXNet:

Burada çapraz entropi fonksiyonunu ve en basit stokastik gradyan inişini ve 0,1'lik sabit bir öğrenme oranını kullanıyoruz.

Eğitim

Son olarak, eğitim algoritmasını uyguladık ve çıktı sonuçlarını ekledik. Her seferinde farklı ağırlıklar ve veri okuma sırası kullanacağımızı, dolayısıyla sonucun her seferinde farklı olabileceğini unutmayın.

  • PyTorch

  • MXNet

MXNet ve PyTorch arasındaki temel farklar aşağıdaki gibidir:

  • Girdiyi Değişken'e koymanıza gerek yoktur, ancak daha sonra türetebilmek için hesaplamayı mx.autograd.record () içine koymanız gerekir

  • Her seferinde gradyanı 0 olarak silmeye gerek yoktur, çünkü yeni gradyan, adımı biriktirmek yerine yazılır. MXNet'in belirli bir parti boyutuna ihtiyacı vardır

  • Çok boyutlu diziyi skalere dönüştürmek için asscalar () 'ı çağırmanız gerekir.

  • Bu örnekte, MXNet, PyTorch'tan iki kat daha hızlıdır. Elbette herkes bu tür karşılaştırmalar konusunda dikkatli olmalı.

Sonraki adım

  • Daha ayrıntılı MXNet öğreticisi:

  • Bize bir mesaj bırakmaya hoş geldiniz. MXNet'in sahip olmasını umduğunuz PyTorch'un kolaylıkları nelerdir?

Topluluğa katıl

Xinzhiyuan AI teknolojisi + endüstri topluluğunun işe alımında, AI teknolojisi + endüstri uygulamasına ilgi duyan öğrenciler, gruba katılmak için küçük bir WeChat hesabı ekleyebilir: aiera2015_1; incelemeyi geçtikten sonra gruba katılmaya davet edeceğiz. Topluluğa katıldıktan sonra grubu değiştirdiğinizden emin olun Açıklamalar (isim-şirket-pozisyon; profesyonel grup incelemesi katıdır, lütfen anlayın).

Hanchuan'ın güzel manzarası: Güzelliğini kaydetmek için bu şehrin fotoğraf makinesiyle fotoğrafını çekin
önceki
Luneng'in koç baş yardımcısı Peng Yuyan'a benziyor ve takıma katılmak için Guangzhou'ya gidecek, ancak Li Tongguo görünmedi
Sonraki
Hanchuan 2 Nolu Ortaokulun taşınmasının ilerleyişine ilişkin rapor (5.17)
Yeni Yıl neredeyse geldi, Jingdezhen Trafik Polisi kesinlikle aşırı yüklemeyi araştırıyor! Onaylanan kişi sayısının dışında bir bebek daha olsa bile bu bir ihlaldir!
"Google AI değişiklikleri koçu" Jeff Dean resmi olarak yapay zekayı devraldı ve arama departmanları ikiye bölündü!
Bir Hafta PerakendeLiu Qiangdong cezai kovuşturmadan muaf tutuldu, Jingdong personeli Xu Leicheng'in "üst liderini" ayarladı
Hanfu'yu bir düzineden fazla ülkede fotoğraf çekmek için aldı ve tek bir fotoğrafla dünyayı fethetti ...
Sorgu odasındaki saat o zor geceleri bilir!
Ulusal Bilim ve Teknoloji Üniversitesi lisans öğrencileri, CVPR AAAI'de makaleler yayınlamaya devam ediyor ve 3B model kitaplığı için bir deformasyon analizi yöntemi öneriyor
Songkran FestivaliChiang Mai Islak Vücut Partisi
Polis öldükten 240 gün sonra kızı doğdu: polis üniforması babanın kucaklaması gibidir
"Wife's Romantic Travel 2" nin yeri ortaya çıktı! Yalnız şehir, kızın doğanın kalbini koruyor
Güneyliler güneşin yağmur ve çiyle kaplanmasına izin verir, ancak güneş dinlemiyor, kuzeyi destekliyor.
Meng Haoran: Hayatın değişimleri olmasaydı, ışık ve esinti nerede?
To Top