def test01_liner():
# 用numpy生成100个点
x_data = np.random.rand(100)
y_data = x_data * 0.1 + 0.2
# 构造一个线程模型
# k:斜率; b:偏置值
b = tf.Variable(0.)
k = tf.Variable(0.)
y = k * x_data + b
# 定义二次方差损失函数,用于优化计算结果,机器学习理论部分
# 求得预测值和实际值的平方差,用于判断计算结果的损失
loss = tf.reduce_mean(tf.square(y_data - y))
# 定义梯度下降法来进行训练的优化器,0.1参数为训练步长
optimizer = tf.train.GradientDescentOptimizer(0.1)
# 定义最小化代价函数,梯度下降的目的是把loss降到最小
# loss越小代表预测值与真实值越接近,
# k,b越接近0.1和0.2
train = optimizer.minimize(loss)
# 初始化变量,一旦有变量,则需要初始化变量
init = tf.global_variables_initializer()
# run
with tf.Session() as sess:
sess.run(init)
for step in range(8001):
sess.run(train)
if step % 20 == 0:
print(step, sess.run([k, b]))
"""运行过程:
1. sess.run(train) -> optimizer.minimize(loss) :使用梯度下降法计算最小化的loss:
原理: 深度学习06-logistic
2. 然后计算y_data 和y 的平方差,y_data为x_data的固定值;根据y的模型来计算斜率k和偏置量b
3. 当k和b最接近y_data模型中的斜率和偏置量,则说明模型最优化
4. 为什么要使用确定的值来训练模型?
求预测模型最接近真实模型的算法
"""
if __name__ == "__main__":
test01_liner()
TensorFlow03-实现线性回归
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1. 简介 在统计学中,回归分析(regression analysis)指的是确定两种或两种以上变量间相互依赖的...
- 预备知识及相关文档博客 学习吴恩达机器学习课程笔记,并用python实现算法 python numpy基本教程: ...
- 目标 给定一批由 y = 3*x + 2 生成的数据集(x, y)建立线性回归模型 h(x) = w*x + b预...