TensorFlow : Simple Linear Fit



Pada catatan ini akan dibahas menggunakan tensorflow untuk melatih model sederhana yaitu Simple Linear Regression.

Catatan: TensorFlow sebetulnya lebih cocok untuk menyelesaikan masalah yang tidak dapat diselesaikan oleh model lain, seperti image recognition, language processing. Namun bila Anda ingin menggunakan TensorFlow untuk menyelesaikan masalah Regression, TensorFlow dapat melakukannya.

Tensorflow cukup rumit dengan segala propertinya, dengan memahami tahap demi tahap disertai meningkatkan kompleksitasnya, agar lebih mudah dalam memahami.


import numpy as np
import tensorflow as tf
import matplotlib.pyplot as plt


#inisialisasi data training dan data label
x_data = np.linspace(0,10,10) + np.random.uniform(-1.5, 1.5, 10)
y_label = np.linspace(0,10,10) + np.random.uniform(-1.5, 1.5, 10)

# persamaan linear yang akan kita selesaikan adalah y = mx + b
# init random value untuk m dan b
# model akan memperbaiki nilai m dan b berdasarkan cost function
m = tf.Variable(0.44)
b = tf.Variable(0.87)

#cost function untuk menghitung error
error = 0

for x,y in zip(x_data, y_label):
    y_hat = m*x + b
    
    error += (y-y_hat)**2 #we want to minimize this error using model
    

#optimzer to minimize error
#learning_rate harus di setting sesuai kebutuhan, utk contoh saat ini digunakan 0.001
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.001)
train = optimizer.minimize(error)

init = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    
    training_steps = 100
    
    for i in range(training_steps):
        sess.run(train)
        
    final_slope, final_intercept = sess.run([m,b])

#test data
x_test = np.linspace(-1, 11, 10) 
y_pred = final_slope*x_test + final_intercept

#ploting untuk melihat seberapa tepat hasil training dari model dalam memprediksi
plt.plot(x_test, y_pred, 'r')
plt.plot(x_data, y_label, '*')
plt.show()



TensorFlow : Simple Linear Fit TensorFlow : Simple Linear Fit Reviewed by noname needed on May 21, 2018 Rating: 5

No comments:

Powered by Blogger.