Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tensorflow as tf
- import numpy as np
- import matplotlib.pyplot as plt
- train_X = np.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
- 7.042,10.791,5.313,7.997,5.654,9.27,3.1])
- train_Y = np.asarray([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,
- 2.827,3.465,1.65,2.904,2.42,2.94,1.3])
- n_samples = train_X.shape[0]
- ## 1. definicija računskog grafa
- # podatci i parametri
- X = tf.placeholder(tf.float32, [None])
- Y_ = tf.placeholder(tf.float32, [None])
- a = tf.Variable(0.0)
- b = tf.Variable(0.0)
- # afini regresijski model
- Y = a * X + b
- # kvadratni gubitak
- loss = (Y-Y_)**2
- #derivacije kvadratnog gubitka
- da = 2 * X * (a * X + b)
- db = 2 * (a * X + b)
- # optimizacijski postupak: gradijentni spust
- trainer = tf.train.GradientDescentOptimizer(0.1)
- grad = trainer.compute_gradients(loss, [a,b])
- train_op = trainer.apply_gradients(grad)
- ## 2. inicijalizacija parametara
- sess = tf.Session()
- sess.run(tf.initialize_all_variables())
- ## 3. učenje
- # neka igre počnu!
- for i in range(100):
- val_loss, val_grad, val_da, val_db, _, val_a,val_b = sess.run([loss, grad, da, db, train_op, a, b],
- feed_dict={X: [1,2], Y_: [3,5]})
- print("Eksplicitno racunanje gradijenta: ", val_da, val_db)
- print("Racunanje gradijenta s compute_gradients() fun: ", val_grad[0])
- print()
- #print(i, val_grad[0],val_loss,val_a,val_b)
- plt.plot([1,2], [3,5], 'ro', label='Original data')
- plt.plot([1,2], sess.run(a) * [1,2] + sess.run(b), label='Fitted line')
- plt.legend()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement