In [1]:
import tensorflow as tf
In [2]:
node1 = tf.constant(3.0, dtype=tf.float32)
In [3]:
node2 = tf.constant(4.0)
In [4]:
print(node1, node2)
In [8]:
sess = tf.Session()
print(sess.run([node1, node2]))
In [13]:
node3 = tf.add(node1, node2)
print(node3)
print(sess.run([node3]))
In [17]:
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b
In [20]:
print(sess.run([adder_node], {a: 1, b: 1}))
In [21]:
print(sess.run([adder_node], {a: [1, 2, 3], b: 1}))
In [23]:
W = tf.Variable([.3], dtype = tf.float32)
b = tf.Variable([-.3], dtype = tf.float32)
In [38]:
x = tf.placeholder(tf.float32)
linear_model = W * x + b
In [39]:
init = tf.global_variables_initializer()
sess.run(init)
In [42]:
print(sess.run(linear_model, {x: [1, 2, 3, 4]}))
In [44]:
y = tf.placeholder(tf.float32)
squared_deltas = tf.square(linear_model - y)
loss = tf.reduce_sum(squared_deltas)
print(sess.run(loss, {x: [1, 2, 3, 4], y: [0, -1, -2, -3]}))
In [45]:
fixW = tf.assign(W, [-1.])
fixb = tf.assign(b, [1.])
sess.run([fixW, fixb])
print(sess.run(loss, {x: [1, 2, 3, 4], y: [0, -1, -2, -3]}))
In [47]:
optimizer = tf.train.GradientDescentOptimizer(0.01)
train = optimizer.minimize(loss)
In [48]:
sess.run(init)
for i in range(1000):
sess.run(train, {x: [1, 2, 3, 4], y: [0, -1, -2, -3]})
In [49]:
print(sess.run([W, b]))
In [50]:
import numpy as np
In [51]:
feature_columns = [tf.feature_column.numeric_column("x", shape=[1])]
In [52]:
estimator = tf.estimator.LinearRegressor(feature_columns=feature_columns)
In [53]:
estimator = tf.estimator.LinearRegressor(feature_columns=feature_columns)
In [64]:
x_train = np.array([1, 2, 3, 4])
y_train = np.array([0, -1, -2, -3])
x_eval = np.array([2, 5, 8, 1])
y_eval = np.array([-1.01, -4.1, -7, 0])
input_fn = tf.estimator.inputs.numpy_input_fn(
{"x": x_train}, y_train, batch_size=4, num_epochs=None, shuffle = True)
train_input_fn = tf.estimator.inputs.numpy_input_fn(
{"x": x_train}, y_train, batch_size=4, num_epochs=1000, shuffle = False)
eval_input_fn = tf.estimator.inputs.numpy_input_fn(
{"x": x_eval}, y_eval, batch_size=4, num_epochs=1000, shuffle = False)
In [65]:
estimator.train(input_fn=input_fn, steps=1000)
Out[65]:
In [68]:
train_metrics = estimator.evaluate(input_fn=train_input_fn)
eval_metrics = estimator.evaluate(input_fn=eval_input_fn)
print("train metrics: %r"% train_metrics)
print("eval metrics: %r"% eval_metrics)
In [ ]: