当前位置: 首页 > news >正文

使用tensorflow的线性回归的例子(二)

#List3-30

拟合y=2x

%matplotlib inline

import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

x_train = np.linspace(-1, 1, 101)

y_train = 2 * x_train + np.random.randn(*x_train.shape) * 0.33

plt.scatter(x_train, y_train)

w = tf.Variable(np.random.randn(),tf.float32)

b = tf.Variable(np.random.randn(),tf.float32)

#设置迭代次数和学习率

learning_rate = 0.01

training_epochs = 100

loss = []

count = 0

display_count = 10 #控制显示粒度的参数,每训练10个样本输出一次损失值

#定义模型函数

def model(x,w,b):

    return tf.multiply(x,w)+b

def loss_fun(x,y,w,b):

    err = model(x,w,b)-y

    squared_err = tf.square(err)

    return tf.reduce_mean(squared_err)

def grad(x,y,w,b):

    with tf.GradientTape() as tape:

        loss_ = loss_fun(x,y,w,b)

    return tape.gradient(loss_,[w,b])

#optimizer= tf.keras.optimizers.Adam(learning_rate=0.01)

for epoch in range(training_epochs):

    for (x, y) in zip(x_train, y_train):

        loss_ =loss_fun(x,y,w,b)

        loss.append(loss_)

        #计算当前[w,b]的梯度

        delta_w,delta_b = grad(x,y,w,b)

        change_w = delta_w * learning_rate

        change_b = delta_b * learning_rate

        w.assign_sub(change_w)

        b.assign_sub(change_b)

        #训练步数加1

        count = count +1

        if count % display_count == 0:

            print('train epoch : ','%02d'%(epoch+1),'step:%03d' % (count),'loss= ','{:.9f}'.format(loss_))

plt.scatter(x_train, y_train)

y_learned = x_train*w.numpy()+b.numpy()

plt.plot(x_train, y_learned, 'r')

plt.show()

         

http://www.lqws.cn/news/593677.html

相关文章:

  • 【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(2)支持向量回归(SVR)
  • linux魔术字定位踩内存总结
  • GORM 删除的重要特性:软删除实践案例(优化版)
  • 前端计算机视觉:使用 OpenCV.js 在浏览器中实现图像处理
  • React:利用React.memo和useCallback缓存弹窗组件
  • Oracle 常用函数
  • 设置linux静态IP
  • 测试第六讲-测试模型分类
  • RabbitMQ - SpringAMQP及Work模型
  • 信息化项目验收,软件工程评审和检查表单
  • Qt中使用QSettings数据或结构体到INI文件
  • 边缘人工智能与医疗AI融合发展路径:技术融合与应用前景(下)
  • 区块链存证:数字时代的法律盾牌还是技术乌托邦?
  • 数据结构day5——队列和树
  • 县级智慧水务一体化方案及落地案例PPT(39页)
  • 8.Docker镜像讲解
  • 高强螺栓的计算与选用
  • 深入金融与多模态场景实战:金融文档分块技术与案例汇总
  • Qt时间显示按钮功能详解
  • 【docker】unknown shorthand flag: ‘f‘ in -f See ‘docker --help‘.
  • 实变与泛函题解-心得笔记【16】
  • Electron 应用中的内容安全策略 (CSP) 全面指南
  • MySQL索引深度解析:B+树、B树、哈希索引怎么选?
  • 机器学习在智能金融风险评估中的应用:信用评分与欺诈检测
  • day48
  • C++ 网络编程(13) asio多线程模型IOServicePool
  • CAU数据挖掘实验 表分析数据插件
  • 零信任安全管理系统介绍
  • 安防监控视频汇聚平台EasyCVR v3.7.2版云端录像无法在web端播放的原因排查和解决方法
  • 笔记本电脑怎样投屏到客厅的大电视?怎样避免将电脑全部画面都投出去?