🏃‍♀️ 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ı