Özel Sizi 10 dakikada TensorFlow uygulamasına götürür (kodla)

Orijinal başlık: TensorFlow Eğitimi: Hızlı öğrenenler için 10 dakikalık Pratik TensorFlow dersi

Yazar: ANKIT SACHAN

Çeviri: He Zhonghua

Redaksiyon: Cheng Siyan

Bu makalenin uzunluğu 2000 kelime , Okumanız tavsiye edilir 10 dakika

Bu makale sayesinde, TensorFlow'daki en temel kavramları anlayabilir ve TensorFlow'daki en basit doğrusal regresyonu nasıl tamamlayacağınızı öğrenebilirsiniz.

Bu TensorFlow eğitiminin hedef okuyucuları, belirli bir temel makine öğrenimi konseptine sahip olan ve TensorFlow'u denemek isteyenlerdir. Öncelikle TensorFlow'u yüklemeniz gerekir ( yüklemek için bu öğreticiyi takip edebilirsiniz -14-04-aws-p2-xlarge /). Bu eğitim iki bölüme ayrılmıştır: İlk bölümde temel kavramları kod örnekleriyle açıklayacağız ve ikinci bölümde doğrusal bir regresyon modeli oluşturacağız.

Bölüm 1: TensorFlow ile ilgili temel bilgiler

TensorFlow, verilerin bir grafik boyunca aktığı sayısal hesaplamalar için bir kitaplıktır. TensorFlow'da veriler, n boyutlu dizilerle temsil edilir ve Tensörler olarak adlandırılır. Grafik, verilerden (Tensörler olarak da adlandırılır) ve matematiksel işlemlerden oluşur.

* Grafikteki düğümler: matematiksel işlemleri temsil eder

* Grafikteki kenarlar: farklı işlemlerde akan Tensörleri temsil eder

TensorFlow, başka bir açıdan diğer programlama dillerinden farklıdır: TensorFlow'da ne oluşturmak isterseniz isteyin, önce tüm planı tasarlamanız gerekir. Grafik oluştururken, değişkenler atanmaz. Daha sonra tam grafik oluşturulduğunda, grafikteki değişkenlere değer atanmadan önce bir oturumda çalıştırılması gerekir. Daha sonra daha ayrıntılı bir giriş yapılacaktır.

Şimdi uygulamalı öğrenelim. Python'u çalıştırın ve tensorflow'u içe aktarın:

1. TensorFlow'daki grafikler

Grafik, TensorFlow'un bel kemiğidir ve tüm hesaplamalar / işlemler / değişkenler grafikte bulunur. Kodda gerçekleşen her şey, TensorFlow tarafından sağlanan varsayılan bir grafiktedir. Grafiğe aşağıdaki koddan erişilebilir:

Ayrıca aşağıdaki gibi tüm işlemlerin bir listesini de alabilirsiniz:

Grafik artık boş olduğu için bu cümlenin çıktısı da boştur, yani.

Her işlemin adını yazdırmak istiyorsanız, şu ifadeyi kullanın:

Bu sefer hala boş, ifadeyi yürütmek için şekildeki işlemi ekleyene kadar bekleyin.

Ayrıca, birden çok grafik de oluşturabiliriz, ancak şimdi ayrıntılara girmeyeceğim.

2. TensorFlow oturumu

Grafik, işlemi tanımlamak için kullanılır ve işlem bir oturumda (oturum) yürütülmelidir, grafiğin oluşturulması ve oturum birbirinden bağımsızdır. Çizimi bir plan olarak düşünebilirsiniz ve konuşma onun inşaat alanıdır.

Diyagram yalnızca hesaplamayı tanımlar veya tasarımın planını oluşturur. Bununla birlikte, oturumda grafiği veya grafiğin bir bölümünü çalıştırmadıkça, hiçbir değişken ve değer yoktur.

Bunun gibi bir oturum oluşturabilirsiniz:

Bir seansı açarken, sonunda kapatmayı unutmayın. Ya da python'da with deyim bloğunu kullanabilirsiniz, böylece otomatik olarak kapanacaktır:

Bu öğreticinin kodunda, sıklıkla with deyim bloğunu kullanacağız ve bunu yapmanızı tavsiye ederiz.

3. TensorFlow'daki Tensörler

TF, verileri numPy paketindeki çok boyutlu dizilere biraz benzeyen Tensors'da depolar (numPy dizilerinden farklı olsalar da)

  • sabit

Sabitin değeri değiştirilemez. Tanım aşağıdaki gibidir:

Gördüğünüz gibi, Python gibi diğer dillerin aksine, bir oturumda çalıştırmadığınız sürece bir sabitin değerini doğrudan yazdıramaz / ona erişemezsiniz. Tekrar deneyin:

Bu sefer çıktı sonucu 1.0 yazdırıldı

  • değişken

Yani Tensörler, diğer dillerdeki değişkenlere benzer.

Değişkenler (adından da anlaşılacağı gibi) sabitlerden farklıdır ve farklı değerler depolayabilir. Bununla birlikte, TF'de, değişkenlerin ayrı ayrı başlatılması gerekir ve her değişkeni ayrı ayrı başlatmak çok verimsizdir. Bununla birlikte, TensorFlow tüm değişkenleri bir kerede başlatmak için bir mekanizma sağlar. Spesifik yöntem aşağıdaki gibidir:

0.11 ve önceki tf sürümleri için initialize_all_variables () yöntemini kullanın:

> > > init_op = tf.initialize_all_variables ()

Sürüm 0.12 ve üzeri, global_variables_initializer () kullanın:

> > > init_op = tf.global_variables_initializer ()

Yukarıdaki kod, TensorFlow'un varsayılan grafiğine init_op ekleyecektir.

Şimdi, az önce tanımlanan b değişkenine erişmeye çalışmadan önce, b'yi ve 2.0 çıktısını yazdırmak için init_op'u çalıştırın:

Şimdi şekildeki tüm işlemleri yazdırabilirsiniz:

Bu sefer çıktı:

Const

test_var / ilk_değer

test_var

test_var / Atama

test_var / okuma

içinde

Gördüğünüz gibi, a sabiti önceden tanımlanmıştı, bu nedenle şekle eklenmiştir. Benzer şekilde, değişken b için, test_var / initial_value, test_var / read vb. Gibi pek çok "test_var" durumu da grafiğe eklenir. Tüm ağı görselleştirmek için TensorBoard'u kullanabilirsiniz TensorBoard, TensorFlow grafiklerini ve eğitim süreçlerini görselleştirmek için bir araçtır.

  • Yer tutucu

Yer tutucular, adından da anlaşılacağı gibi, başlatılmayı / doldurulmayı bekleyen tensörlere atıfta bulunan yer tutucuları temsil eder. Yer tutucular eğitim verileri için kullanılır. Yer tutucular yalnızca kod bir oturumda çalışırken doldurulur. "Besleme" yer tutucu şeyine feed_dict denir. Feed_dict, verileri depolamak için kullanılan (bir dizi) anahtar / değer çiftidir:

Yukarıdaki örneğin çıktısı 6'dır.

4. TensorFlow'da cihazları uygulayın

TensorFlow, kodunuzu bir gpu, cpu veya gpu kümesinde çalıştırabilen çok güçlü yerleşik işlevlere sahiptir. Kodu çalıştırmak için kullanmak istediğiniz cihazı seçmeniz için size seçenekler sunar. Bu, burada ayrıntılı olarak ele alınmamaktadır, daha sonra bu konuyla ilgili ayrı bir eğitim olacaktır. TensorFlow'un tam resmine bir göz atalım:

Bölüm 2: Basit kod örneği

Bu bölümde, doğrusal regresyon kodunu öğreneceğiz.Önce, birkaç kodda kullanılan TensorFlow fonksiyonlarına bakalım:

Rastgele bir normal dağılım oluşturun:

Normal dağılımı izleyen rastgele değerler oluşturmak için random_normal kullanın. Bu örnekte, w 784 * 10 değişkendir ve değeri 0,01 standart sapma ile normal dağılımı izler.

Azaltın_ortalama:

Bir dizinin ortalamasını hesaplayın

Çıkış 35

ArgMax:

Python'daki argmax'a benzer şekilde, belirtilen eksen boyunca maksimum tensör değerinin dizinini döndürür

Çıktı: her satırdaki maksimum değerin dizinini temsil eden dizi ().

Doğrusal regresyon egzersizi:

Problem tanımı: Doğrusal regresyonda, başlangıçta birçok veri noktası vardır ve bizim görevimiz bu noktalara düz bir çizgiyle uymaktır. Bu örnekte 100 nokta oluşturup bunlara uyacağız.

  • Eğitim verilerini oluşturun

TrainX'in değeri -1 ile 1 arasındadır.

trainY, trainX'in 3 katı artı bir miktar girişim değeridir.

  • Yer tutucu

Eğitim verilerinin daha sonra doldurulması için iki yer tutucu tanımlayın

  • Modelleme

Doğrusal regresyon modeli y_model = w * x şeklindedir, w'nin değerini hesaplamamız gerekir. İlk olarak, bir model oluşturmak için w ila 0'ı başlatabiliriz ve maliyet fonksiyonunu (Y-y_model) 'in karesi olarak tanımlayabiliriz. TensorFlow, maliyet işlevini en aza indirmek için her yinelemeden sonra degradeyi güncellemek için birçok optimize ediciyle (Optimizer) birlikte gelir. Burada modeli 0.01 öğrenme oranıyla eğitmek için GradientDescentOptimizer'ı kullanıyoruz ve ardından eğitim işlemini bir döngüde çalıştırıyoruz:

  • Eğitim

Şimdiye kadar sadece grafiği tanımladık ve özel bir hesaplama yok.

TensorFlow değişkenleri henüz atanmamış. Tanımlanan grafiği gerçekten çalıştırmak için, ayrıca bir oturum oluşturmanız ve çalıştırmanız gerekir. Bundan önce, tüm değişkenleri başlatmak için init işlemini tanımlayabilirsiniz:

İlk adım, başlatma işlemini tamamlamak için session.run () içinde init'i çağırmaktır. Ardından verileri feed_dict'e "besleyerek" train_op'u çalıştırırız. Yineleme tamamlandıktan sonra, 3'e yakın olması gereken son w değerini yazdırıyoruz.

  • Egzersiz yapmak

Yeni bir oturum oluşturursanız, hangi sonuçlar çıkacaktır?

Sembolik hesaplama fikri olan 0.0 çıktısını verecektir.Önceki oturumdan ayrıldığınızda, tüm işlemler sona erecektir.

Umarım bu eğitim, TensorFlow'u öğrenme yolunda iyi bir başlangıç yapmanıza yardımcı olur. Herhangi bir sorunuz varsa, yorum alanına bir mesaj bırakabilirsiniz. Kodun tamamı buradan indirilebilir:

https://github.com/sankit1/cv-tricks.com

TensorFlow'u öğrenmeye devam etmek için ikinci öğreticiyi de takip edebilirsiniz:

Orijinal bağlantı:

artificial-intelligence/deep-learning/deep-learning-frameworks/tensorflow/tensorflow-tutorial/

Ve Zhonghua, Almanya'da Yazılım Mühendisliği Yüksek Lisansı. Makine öğrenimine olan ilgiden dolayı, yüksek lisans tezi, geleneksel anlamlarını geliştirmek için genetik algoritma fikirlerini kullanmayı seçti. Şu anda Hangzhou'da büyük veri ile ilgili uygulamalar yapıyor. Datapie'ye katılmak THU, BT çalışanları için üzerine düşeni yapmayı ve aynı zamanda benzer düşünen birçok arkadaş edinmeyi umuyor.

Münhasır Duygu analizi için neden NLP kullanmalı?
önceki
"For döngüsü" nden vazgeçin ve size bu algoritmayı kullanmayı öğretin! (Kod eklenmiştir)
Sonraki
2017, Tesla tarihinin en önemli yılı olacak
Elek, yıka ve havalandır, kimse bilmiyor
Özel Büyük veri altında intihar riski algısı ve rehberliği (video PPT indirme ile)
MIT Technology Review'un öne çıkan önerileri: yılın en iyi teknoloji kitapları
Krypton 2018 Büyük eğlencenin yenilgisi, mücadelesi ve yeniden doğuşu
Gölge kuklaları yaratmak, seramik panda bahçesi yapmak ... 32 uluslararası öğretmen ve öğrenci Tianfu kültürünü deneyimlemek için Chengdu'ya geldi
Özel LinkedIn kişiselleştirilmiş öneri modelini ve modelleme ilkelerini anlamak için bir makale
Yüzlerce Şampiyonlar Ligi maçında "kilometre hüznü" hoş karşılanıyor! 32 yaşındaki eski dünyanın 1 numaralı kalecisi, oyunun en kötüsü oldu!
Özel İntiharı önleme, büyük veri de hayat kurtarmak için çalışıyor
Fox Business News: 2017 için en iyi 10 teknoloji tahmini
İnovasyon söz konusu olduğunda büyük şirketler neden her zaman girişimlere kapılıyor?
Sichuan'daki bazı kolejler ve üniversiteler için kış tatili takvimi yayınlandı ve şu anda en uzun 49 günlük tatil
To Top