【Tensorflow】Python實現神經網路迴歸
阿新 • • 發佈:2019-01-05
環境
macOS,python3.6,tensorflow1.1.0
迴歸問題
年份 | 事故起數 | 死亡人數 | 受傷人數 | 直接財產損失(萬元) |
---|---|---|---|---|
2003 | 80 | 3 | 50 | 11 |
2004 | 90 | 8 | 70 | 12.5 |
2005 | 180 | 20 | 120 | 20 |
2006 | 140 | 16 | 90 | 18 |
2007 | 120 | 5 | 80 | 15 |
說明:利用前四年的資料建立迴歸模型,並對第五年進行預測。
實現程式碼
import numpy as np
import tensorflow as tf
x = [[80 ,3,50],[90,8,70],[180,20,120],[140,16,90]]
y = [[11],[12.5],[20],[18]]
# y = [11,12.5,20,18]
x_pred = [[120,5,85]]
tf_x = tf.placeholder(tf.float32, [None,3]) # input x
tf_y = tf.placeholder(tf.float32, [None,1]) # input y
# neural network layers
l1 = tf.layers.dense(tf_x, 20, tf.nn.relu) # hidden layer
output = tf.layers.dense(l1, 1) # output layer
loss = tf.losses.mean_squared_error(tf_y, output) # compute cost
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.1)
train_op = optimizer.minimize(loss)
sess = tf.Session() # control training and others
sess.run(tf.global_variables_initializer()) # initialize var in graph
for step in range(150):
# train and net output
_, l, pred = sess.run([train_op, loss, output], {tf_x: x, tf_y: y})
if step % 10 == 0:
print('loss is: ' + str(l))
# print('prediction is:' + str(pred))
output_pred = sess.run(output,{tf_x:x_pred})
print('input is:' + str(x_pred[0][:]))
print('output is:' + str(output_pred[0][0]))