머신러닝

x+ln(x) = 2 TensorFlow 수치해 파이선 코드

coding art 2018. 11. 25. 17:02
728x90

# x+lnx=2_regression_01.py

import tensorflow as tf
from pylab import *
a = 1.0
b = 2.0
c = -1.0
d = -2.0

t = arange(0.05,3.0,0.01)
s = t+log(t)-2.0
plot(t,s)
xlabel("X")
ylabel("Y")
title("Logarithmic Equation:y=x+ln(x)-2")
grid(True)
show()

#x_train = [0.05, 1.5, 3.0]
x_train = [0.05]
y_train = [-4.9457]

#y_train = [-4.9457,-0.09453, 2.0986]
W = tf.Variable(tf.random_uniform([1], 0.05, 5.0, name='weight'))


hypothesis = (x_train+tf.log(x_train) - W - tf.log(W))

cost = tf.reduce_mean(tf.square(hypothesis - y_train))

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.05)
train = optimizer.minimize(cost)

sess = tf.Session()
sess.run(tf.global_variables_initializer())


for step in range(501):
    sess.run(train)
    if step % 100 == 0:
        print(step, sess.run(cost), sess.run(W))