import tensorflow as tf
#1.创建样本数据
x = tf.random_normal([100,1], #产生100个样本数据
mean=1.75, #均值
stddev=0.5,#标准差
name='x_data')
# y = 2x + 5
y_true = tf.matmul(x,[[2.0]]) + 5.0 #tf.matmul(x,[[2.0]])为矩阵x与矩阵[[2.0]]相乘
#2.建立线性模型
#给出权重(系数w,b)
weight = tf.Variable(tf.random_normal(1,1)), #生成正太分布的权重(w,b),shape为[1,1]
name='w', #权重名称
trainable=True) #表示该值weight可训练(可变化),否则不能收敛
#偏置
bias = tf.Variable(0.0, #初始值
name='b',
trainable=True)
#预测y
#计算模型:y = wx + b,其中 w为权重,b为偏置
y_pred = tf.matmul(x,weight) + bias
#3. 构建损失函数(标准差)
#损失函数
loss_val =tf.square( y_true - y_pred)
loss = tf.reduce_mean(loss_val)
#4. 对损失函数进行梯度下降,获取最优参数(权重和偏置)
#使用优化器GrandientDescentOptimizer()完成梯度下降,0.1为学习率,minimize(loss)表示将损失值降到最小
train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
#初始化变量
init_op = tf.global_variables_initalizer()
#收集损失值操作(tensorboard可视化)
tf.summary.scalar('losses',loss) #损失值loss是个标量,使用summary.scalar()
merged = tf.summary.merge_all() #保存所有摘要信息
with tf.Session() as sess:
sess.run(init_op) #执行初始化
#存事件文件(tensorboard可视化),FileWriter返回的fw是一个文件写入器
fw = tf.summary.FileWriter('../summary/', #指定事件文件的目录,这里存放在当前文件的上一级文件下的summary文件下
graph=sess.graph) #指定存当前这个session的graph(图)
#执行500次梯度下降,训练权重和偏置值
for i in range(500):
sess.run(train_op) #执行梯度下降
summary = sess.run(merged) #每次循环运行合并后的张量
fw.add_summary(sumary,i) #记录第i次摘要
print(i,':',weigth.eval(),',',bias.eval()) #每执行一次梯度下降(训练),将weight和bias打印出来
#接下来就执行,然后进入tensorboard可查看scalar,graph等
使用Tensorflow实现线性回归并在Tensorboard中显示
最新推荐文章于 2024-12-05 00:00:00 发布
本文详细介绍使用TensorFlow构建线性模型的过程,包括样本数据生成、模型建立、损失函数定义及参数优化。通过500次梯度下降迭代,实现权重和偏置的训练,并利用tensorboard进行可视化监控。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
TensorFlow-v2.15
TensorFlow
TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

62

被折叠的 条评论
为什么被折叠?



