- Daha işletilmemiş tensör leri oluştur
- Tensör'lerin arasındaki işlemeleri yaz
- Tensor'ları başlat (initialize)
- Bir Session oluştur
- 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 👩🏫
Aşağıdaki formülü hesaplamak için:
# 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.
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.
- 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()
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