1.了解tensorflow基本架构
2.用梯度下降的方法训练处模型
3.可视化样本数据,可视化训练出的模型以及可视化损失函数
"""
Created on Wed May 2 09:40:08 2018
@author: jiangcheng
"""
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# create data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3
#打印出准备训练的样本
fig = plt.figure()
plt.xlabel('X')
#设置Y轴标签
plt.ylabel('Y')
plt.scatter(x_data,y_data,c = 'r',marker = 'x') #'o'---圆点,‘s’---方块
#设置图标 ,左上角的图标
plt.legend('x')
#显示所画的图
plt.show()
### tensorflow structure start ###
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1]))
y = Weights*x_data + biases
loss = tf.reduce_mean(tf.square(y-y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)#梯度下降,学习速率为0.5
train = optimizer.minimize(loss)
init = tf.initialize_all_variables()
### tensorflow structure end ###
sess = tf.Session()
sess.run(init) # Very important
cost=[]
for step in range(201):
sess.run(train)
if step % 20 == 0:
# print(step, sess.run(Weights), sess.run(biases))
print("Cost after iteration {}: {}".format(step, np.squeeze(sess.run(loss))))
cost.append(sess.run(loss))
####训练出的模型
fig = plt.figure()
#设置X轴标签
plt.xlabel('Xmodel')
#设置Y轴标签
plt.ylabel('Ymodel')
#画散点图
plt.scatter(x_data,sess.run(y),c = 'y',marker = 'o') #'o'---圆点,‘s’---方块
#设置图标 ,左上角的图标
plt.legend('xmodel')
plt.show()
###打印代价
plt.plot(np.squeeze(cost)) #压缩
plt.ylabel('cost')
plt.xlabel('iterations (per 20)')
plt.title("Learning rate =" +str( 0.5))
plt.show()
1.训练的数据可视化
2.模型可视化
3.损失函数可视化