🏃‍♀️ Tensorflow'a Hızlı Giriş

🚩 Tensorflow'daki programların ana akışı

  1. Daha işletilmemiş tensör leri oluştur

  2. Tensör'lerin arasındaki işlemeleri yaz

  3. Tensor'ları başlat (initialize)

  4. Bir Session oluştur

  5. Session'ı çalıştır. Bu, yukarıda yazdığın işlemleri yürütecektir.

Özetle, değişkenleri başlat, bir Session oluştur ve Session'ın içindeki işlemleri çalıştır 👩‍🏫

👩‍💻 Kod Örneği

Aşağıdaki formülü hesaplamak için:

loss=L(y^,y)=(y^(i)y(i))2loss=L(\hat{y},y)=(\hat{y}^{(i)}-y^{(i)})^2

# Tensörleri oluşturma ve arasındaki işlemi yapma 
y_hat = tf.constant(36, name='y_hat')
y = tf.constant(39, name='y')
loss = tf.Variable((y - y_hat)**2, name='loss')

# Tensörleri başlatma
init = tf.global_variables_initializer()

# Session oluşturma
with tf.Session() as session: 
    # İşlemeleri çalıştırma
    session.run(init) 

    # Sonuçları yazdırma
    print(session.run(loss))

Kayıp fonksiyonu için bir değişken oluşturduğumuzda, loss'u basitçe diğer miktarların bir fonksiyonu olarak tanımladık, ancak değerini değerlendirmedik. Bunu değerlendirmek için initializer'ı kullanırız.

❗ Değişken Başlatma (initalization) Hakkında Not

Aşağıdaki kod için

a = tf.constant(2)
b = tf.constant(10)
c = tf.multiply(a,b)
print(c)

🤸‍♀️ Çıktı:

Tensor("Mul:0", shape=(), dtype=int32)

Beklendiği gibi, 20 görmeyeceğiz 🤓! Sonucun shape attribute'u olmayan ve "int32" türünde bir tensör olduğunu söyleyen bir tensörümüz var. Tek yaptığımız 'computation graph' koymaktı, ancak henüz bu hesaplamayı çalıştırmadık.

📦 TF'deki Placeholders

  • Yer tutucu placeholder, değerini ancak daha sonra belirleyebileceğiniz bir nesnedir. Bir yer tutucunun değerlerini belirtmek için, bir feed dictionary kullanarak değerleri iletebiliriz.

  • Aşağıda, x için bir yer tutucu oluşturuldu. Bu, Session'ı çalıştırdığımızda daha sonra bir sayı girmemizi sağlar.

x = tf.placeholder(tf.int64, name = 'x')
print(sess.run(2 * x, feed_dict = {x: 3}))
sess.close()

🎀 Daha Fazla Örnek

Sigmoid Fonksiyonun değerini TF ile hesaplamak

def sigmoid(z):
    """
    z değeri için sigmoid fonksiyonunu hesaplar

    Argümanlar:
    z -- giriş değeri, skaler veya vektör

    Dönüş değeri: 
    results -- z'nin sigmoid değeri 
    """

    # x için yertutucu tanımlama. adı da 'x'.
    x =  tf.placeholder(tf.float32, name = 'x')

    # sigmoid(x)'i hesaplama
    sigmoid = tf.sigmoid(x)

    # session oluşturma, ve çalıştırma.
    with tf.Session() as sess:
        # session'ı çalıştırma ve sonuçları output'a (result'a) atama
        result = sess.run(sigmoid, feed_dict = {x: z})

    return result

Maliyet Fonksiyonun değerini TF ile hesaplamak

def cost(logits, labels):
    """
    sigmoid cross entropy ile cost fonksiyonunun değerini hesaplar

    Argümanlar:
    logits -- z'yi içeren bir vektör, Son lineer ünitenin çıktısı (son sigmoid aktivasyonundan önce)
    labels -- y - etiket vektörü (1 veya 0) 

    Dönüş Değeri:
    cost -- Cost fonksiyonunun session'ını çalıştırır
    """

    # "logits" (z) ve "labels" (y) için yer tutucu oluşturma 
    z = tf.placeholder(tf.float32, name = 'z')
    y = tf.placeholder(tf.float32, name = 'y')

    # Loss fonksiyonunu kullanma
    cost = tf.nn.sigmoid_cross_entropy_with_logits(logits = z,  labels = y)

    # Session oluşturma
    sess = tf.Session()

    # Session'ı çalıştırma 
    cost = sess.run(cost, feed_dict = {z: logits, y: labels})

    # Session'ı kapatma
    sess.close()

    return cost

🌞 Yazının Aslı

Last updated