初学机器学习

配置太复杂
机器学习
权重W和偏执B。
通过学习来修正
一次函数的例子
Y=W*X+B;

# -*- coding: UTF-8 -*-
#基础,一个一次函数,Y=W*x+B
import tensorflow as tf
import matplotlib.pyplot as plt
import  numpy as np


#-----------【定义一个参数:Y=W*x+B】-----------
#Y=3.0X+2.0
TRUE_W=3.0
TRUE_B=2.0
xdata=tf.random.normal(shape=[100])
TRUE_Y=TRUE_W*xdata+TRUE_B

#------------【构建预测的函数模型】-------------
class Model(object):
    def __init__(self):
        self.w=tf.Variable(1.2)
        self.b=tf.Variable(0.5)

    def __call__(self, xdata):
         return self.w*xdata+self.b #预测的Y

#-------------【损失函数:预测与真实的差值】--------------

def compute_loss(true_y,y):
    return tf.reduce_mean(tf.square(true_y-y))

#--------------【神经网络的构建】--------------------------
def main():
    model=Model()#实例化模型
    for each in range(45):#45次训练
        with tf.GradientTape() as tape:
            loss=compute_loss(TRUE_Y,model(xdata))#计算损失:真实与预测的差值
                                 #(差值,变量)
            dw, db = tape.gradient(loss, [model.w, model.b])    #获取梯度值
        # 衰减权重和偏置,进行优化,梯度下降
        model.w.assign_sub(0.05 * dw)  #0.05为学习率
        model.b.assign_sub(0.05 * db)

        print("epoch %2d: w_true= %.2f, w_pred= %.2f; b_true= %.2f, b_pred= %.2f, loss= %.2f" % (
            each + 1, TRUE_W, model.w.numpy(), TRUE_B, model.b.numpy(), loss.numpy()))

#启动

if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值