import tensorflow as tf
定义线性回归
def linearregression():
“”"
实现线性回归
:return:
“”"
# 准备数据集 x[100, 1] 0.8*x + 0.7 = [100, 1]
with tf.variable_scope(“orginal_name”):
x = tf.random_normal([100, 1], mean=0, stddev=1)
y_true = tf.matmul(x, [[0.8]]) + [[0.7]]
# 建立线性回归模型
# 初始化w和b [100, 1] * [1, 1] + [1] = [100, 1]
with tf.variable_scope("model"):
w = tf.Variable(initial_value=tf.random_normal(shape=[1, 1], mean=0, stddev=1.0))
b = tf.Variable(initial_value=tf.random_normal(shape=[1, 1]))
y_predict = tf.matmul(x, w) + b
# 均方误差 (y - y_predict)^2 / m
with tf.variable_scope("training"):
error = tf.reduce_mean(tf.square(y_true - y_predict))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
init = tf.global_variables_initializer()
# 收集变量
# scalar 收拾0维度的值
tf.summary.scalar("error", error)
# histogram收集高纬度值
tf.summary.histogram("weights", w)
tf.summary.histogram("bias", b)
# 合并变量
merge = tf.summary.merge_all()
# 创建一个saver
saver = tf.train.Saver()
with tf.Session() as sess:
sess.run(init)
filewriter = tf.summary.FileWriter("./tmp/summary/", graph=sess.graph)
filewriter = tf.summary.FileWriter(logdir="./tmp/summary", graph=sess.graph)
# saver.restore(sess, "./tmp/test.ckpt")
for i in range(500):
sess.run(optimizer)
print(sess.run([error, w, b]))
# 运行合并变量op
summary = sess.run(merge)
filewriter.add_summary(summary, i)
# 将模型保存为检查点文件
saver.save(sess, "./tmp/summary/test.ckpt")
if name == ‘main’:
linearregression()