使用Tensorflow实现线性回归并在Tensorboard中显示

本文详细介绍使用TensorFlow构建线性模型的过程,包括样本数据生成、模型建立、损失函数定义及参数优化。通过500次梯度下降迭代,实现权重和偏置的训练,并利用tensorboard进行可视化监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值