tensorflow的归一化与梯度下降

2023-11-07

代码:

# coding=utf-8
# By author MZ


import  numpy as np
from sklearn.datasets import load_boston
import tensorflow as tf
from sklearn.preprocessing import StandardScaler


## 从sklearn的数据集中拿出波士顿房价数据
boston = load_boston()
x=boston.data #获取数据集中的真实数据
y=boston.target #数据的标签
print(y.shape) # 打印下数据的shape
m,n = boston.data.shape
## numpy的.c_是combine,用来将两个矩阵进行相加(按列)
X = np.c_[np.ones((m, 1)), x]
## 使用sklearn中的StandardScaler类可以将数据按期属性(按列进行)减去其均值,并除以其方差。
## 得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。
## 好处在于可以保存训练集中的参数(均值、方差)直接使用其对象转换测试集数据
## 对数据进行归一化后,梯度下降的速度会有明显的提升
scaler = StandardScaler().fit(X)
scaled_housing_data_plus_bias = scaler.transform(X)



## 定义两个常量,一个是x一个是y
X_true = tf.constant(scaled_housing_data_plus_bias, dtype=tf.float32, name="xx")
y_true = tf.constant(y, dtype=tf.float32, name="yy")

# tf.random_uniform类似于numpy的ranom.rand
theta=tf.Variable(tf.random_uniform([n + 1, 1],-1.0,1.0),name="theta")


y_hat=tf.matmul(X_true,theta,name="y_hat")
erro=y_hat-y_true
# print(y_true.shape)
# print(y_hat.shape)

##求数据的均方根误差
mse = tf.reduce_mean(tf.square(erro), name="mse")
## 直接使用tensorflow定义好的gradients方法求梯度
gradients = tf.gradients(mse, [theta])[0]

##定义学习率为0.01
learning_rate=0.01
##tf的assign方法,是赋值操作,将后一个参数的值赋给前一个参数
training_op = tf.assign(theta, theta - learning_rate * gradients)

## 初始化变量
initializer = tf.global_variables_initializer()
# epochs是训练次数
n_epochs = 1000
with tf.Session() as sess:
    sess.run(initializer) #初始化
    ## 迭代,等待梯度下降
    for epochs in range(n_epochs):
        ## eval方法类似于session的run方法,也是启动计算的一种方式
        ## mse.eval()等价于sess.run(mse)
        print("epochs: ",epochs," MSE: ",mse.eval())
        sess.run(training_op)
    best_theta = theta.eval()
    print(best_theta)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow的归一化与梯度下降 的相关文章

随机推荐

  • 使用java输出一组6位的随即数组

    可以使用 Java 的 Random 类来生成一组 6 位的随机数组 下面是一个示例代码 import java util Random public class Main public static void main String ar
  • C#使用操作符~按位取反

    int x 12345678 int y x 是按位取反操作符 string xStr Convert ToString x 2 PadLeft 32 0 将int数值 转换成二进制字符串 string yStr Convert ToStr
  • Angular嵌套路由

    嵌套路由 1 在app routing module ts文件中配置路由 const routes Routes path home component HomeComponent children path tabbar componen
  • STM32学习笔记(6):PWM控制

    PWM控制 PWM方波 脉冲宽度调制 PWM 是英文 Pulse Width Modulation 的缩写 简称脉宽调制 是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术 广泛应用在从测量 通信到功率控制与变换的许多领域中
  • Gradle使用Maven仓库

    在build gradle文件中 修改repositories如下 repositories mavenLocal mavenCentral 这样的话 就会优先从maven的仓库中查找所需的jar包 我的maven配置本地仓库为D repo
  • github哪些协议能商用_版权->GitHub代码版权你关心过吗?

    作为一个无版权习惯的码农 终于遇到一个大坑 堵住了自己一条光明大路 那就是 版权 大部分程序员遵从的原则就是不重复造轮子 作为一个非著名相声演员 哦不 非大牛程序员 咳咳 把这句至理名言发挥的更是淋漓尽致 只要有需求 想好大致架构思路和逻辑
  • 数据组合利器:从入门到精通Python中的zip()函数应用

    介绍 zip 函数是Python内置的一个非常有用的函数 它可以将多个可迭代对象打包成一个元组构成的新的可迭代对象 本文将深入探讨zip 函数的用法 从入门到精通 目录 zip 函数的基本用法 使用zip 函数合并列表 使用zip 函数进行
  • Unity中的UGUI源码解析之事件系统(7)-输入模块(上)

    Unity中的UGUI源码解析之事件系统 7 输入模块 上 从今天开始 我们进入事件系统的的最后一部分 输入模块 InputModules 输入模块是事件系统的核心 是真正使用检测和调用回调的地方 输入模块主要有几个角色 分别为 BaseI
  • 深入了解jQuery的children方法

    jQuery是一种简化HTML文档遍历和操作 事件处理 动画和AJAX等常见任务的JavaScript库 而children 方法是其中之一 它是一个非常实用的方法 可以让我们在DOM树中轻松找到特定元素的子元素 并进行进一步操作 在本文中
  • Nginx配置参数解释

    目录 worker processes work cpu affinity worker rlimit nofile events模块 1 use method 2 worker connections 3 multi accept htt
  • grep正则表达式例子

    grep支持的正则表达式有很多 这里尽量全面地列出各种正则表达式及其说明 行首匹配 用于匹配字符串的开始 行尾匹配 用于匹配字符串的结束 匹配除换行符外的任意一个字符 匹配零个或多个前面的字符 匹配一个或多个前面的字符 匹配零个或一个前面的
  • 2020三校生英语计算机试卷,2020江西省“三校生”对口升学考试考试说明英语科目最新考试英语复习教材考前模拟试卷课本教材资料试题...

    三 题型示例 第 I 卷 选择题 共 125 分 单项选择题 共 25 小题 每小题 1 分 满分 25 分 从 A B C D 中 选出可以填入空白处的最佳选项 并在答题卡上将该项 填黑 1 Thank you very much Mr
  • Flink SQL CDC 的实时增量同步数据

    问题导读 1 怎样实现基于 Flink SQL CDC 的数据同步方案 2 CDC 是否需要保证顺序化消费 3 GROUP BY 结果如何写到 Kafka 传统的数据同步方案与 Flink SQL CDC 解决方案业务系统经常会遇到需要更新
  • 程序猿 C#常规面试题

    1 NET框架是什么 NET框架是Microsoft的软件开发框架 它提供了一个受控的编程环境 可以在基于Windows的操作系统上开发 安装和执行软件 2 NET和C 的区别 NET是一种框架 CLR公共语言运行库是 NET FrameW
  • Avalon 学习系列(四)—— 循环遍历

    Avalon2 的 ms for 绑定集齐了 ms repeat ms each ms with 的所有功能 更加好用 性能也提升了很多 Avalon 不需要 vue 或 react 那样使用 key 属性来提高性能 内部已经帮你搞定了 循
  • 1.1 计算机的发展与应用

    一 计算机的发展 1 计算机的发展 1 计算机的奠基人 艾兰 图灵 4个贡献 图灵机 可计算性理论 人工智能之父 图灵奖 冯 诺依曼 5个贡献 EDVAC 存储程序 现代计算机的基本结构 计算机之父 五部分 2 第一台 首台通用电子计算机
  • readme for esoe tools

    Pack hta Pack hta is a tool of ESOE to pack js files It s also a demo of ESOE It has below features file New Open Saveed
  • L->data 与 L.data比较

    L gt data 与 L data比较 当L是结构体 类的 指针时 用L gt data指明结构体中的变量 面向对象中 类的对象 而当L data则是结构体变量 类的对象 用L data表示
  • docker 容器绑定hosts

    问题 最近有个需求需要在docker容器里进行hosts绑定 尝试了将hosts 写在Dockerfile里 构建出镜像 但是启动容器后绑定的hosts会丢失 而且手动进入容器绑定hosts后 重启容器后hosts也会丢失 原因 简单的说
  • tensorflow的归一化与梯度下降

    代码 coding utf 8 By author MZ import numpy as np from sklearn datasets import load boston import tensorflow as tf from sk