In [1]:
import tensorflow as tf
import numpy as np

In [2]:
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
print(node2, node2)


Tensor("Const_1:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32)

In [4]:
sess = tf.Session()

In [6]:
print(sess.run([node1, node2]))


[3.0, 4.0]

In [7]:
node3 = tf.add(node1, node2)

In [15]:
print('node 3: ', node3, '\n', sess.run([node3]))


node 3:  Tensor("Add:0", shape=(), dtype=float32) 
 [7.0]

In [22]:
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = tf.add(a,b)
sess.run(adder_node, {a:[3,2] ,b:[3,2]})


Out[22]:
array([ 6.,  4.], dtype=float32)

In [23]:
weight = tf.Variable(.3, tf.float32)
bias = tf.Variable(-.5, tf.float32)
input = tf.placeholder(tf.float32)

In [24]:
linear_model = input * weight + bias

In [27]:
init = tf.global_variables_initializer()

In [28]:
sess.run(init)

In [32]:
print(sess.run(linear_model, {input:[1,2,3,4]}))


[-0.19999999  0.10000002  0.40000004  0.70000005]

In [34]:
error = tf.placeholder(tf.float32)
squared_deltas = tf.square(linear_model - error)
loss = tf.reduce_sum(squared_deltas)
print(sess.run(loss, {input:[1,2,3,4], error:[-.1, .2, .3, .3]}))


0.19

In [35]:
fixWeight = tf.assign(weight, -1)
fixBias = tf.assign(bias, 1)

In [37]:
sess.run([fixWeight, fixBias])


Out[37]:
[-1.0, 1.0]

In [40]:
print(sess.run(loss, {input:[1,2,3,4], error:[-0,-1,-2,-3]}))


0.0

In [45]:
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)

In [46]:
for i in range(1000):
    sess.run(train, {input:[1,2,3,4], error:[-0,-1,-2,-3]})

In [48]:
print(sess.run([weight, bias]))


[-1.0, 1.0]

In [ ]: