TensorFlow是一个用于人工智能的开源神器,是一个采用数据流图(data flow graphs)用于数值计算的开源软件库。数据流图使用节点(nodes)和边线(edges)的有向图来描述数学计算,图中的节点表示数学操作,也可以表示数据输入的起点或者数据输出的终点,而边线表示在节点之间的输入/输出关系,用来运输大小可动态调整的多维数据数组,也就是张量(tensor)。TensorFlow可以在普通计算机、服务器和移动设备的CPU和GPU上展开计算,具有很强的可移植性,并且支持C++、Python等多种语言。

import tensorflow as tf
import numpy as np
import time

#使用 NumPy 生成随机数据, 总共 2行100列个点.
x_data = np.float32(np.random.rand(2, 200))
#矩阵乘法
#这里的W=[0.100, 0.200]和b=0.300是理论数据

通过后面的训练来验证
y_data = np.dot([0.100, 0.200], x_data) + 0.300

#构造一个线性模型,训练求解W和b
#初始值b = [0.0]
b = tf.Variable(tf.zeros([1]))
#初始值W为1x2的矩阵,元素值介于[-1.0, 1.0]区间
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
#构建训练模型,matmul为矩阵乘法运算
y = tf.matmul(W, x_data) + b

#最小均方差
loss = tf.reduce_mean(tf.square(y - y_data))
#使用梯度下降算法进行优化求解
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

#初始化变量
init = tf.global_variables_initializer()

with tf.Session() as sess:
    #初始化
    sess.run(init)

#拟合平面,训练次数越多越精确,但是也没有必要训练太多次
    for step in range(0, 201):
        sess.run(train)
        #显示训练过程,这里演示了两种查看变量值的方法
        print(step, sess.run(W), b.eval())

运行结果如下,可以发现求解的结果非常接近理论值,为避免浪费大家流量,这里省略了中间的180个训练结果。

0 [[ 0.15414073  0.32496157]] [ 0.43636867]
1 [[ 0.03701844  0.20617545]] [ 0.21209587]
2 [[ 0.10094656  0.26214167]] [ 0.32871172]
3 [[ 0.07112053  0.22834063]] [ 0.26936483]
4 [[ 0.08938536  0.24124807]] [ 0.30078542]
5 [[ 0.08256587  0.23040327]] [ 0.28532556]
6 [[ 0.08844876  0.23214042]] [ 0.29402208]
7 [[ 0.08755529  0.22768299]] [ 0.29021722]
8 [[ 0.08995744  0.22669716]] [ 0.29283032]
9 [[ 0.09047545  0.2241728 ]] [ 0.29209939]
10 [[ 0.09179883  0.22267541]] [ 0.2930637]
...
191 [[ 0.10000042  0.20000042]] [ 0.29999956]
192 [[ 0.1000004   0.20000039]] [ 0.29999959]
193 [[ 0.10000037  0.20000036]] [ 0.29999962]
194 [[ 0.10000035  0.20000033]] [ 0.29999962]
195 [[ 0.10000034  0.20000032]] [ 0.29999965]
196 [[ 0.10000032  0.2000003 ]] [ 0.29999968]
197 [[ 0.1000003   0.20000029]] [ 0.29999968]
198 [[ 0.10000029  0.20000027]] [ 0.29999971]
199 [[ 0.10000027  0.20000026]] [ 0.29999971]
200 [[ 0.10000026  0.20000026]] [ 0.29999974]

Python使用tensorflow中梯度下降算法求解变量最优值相关推荐

  1. 基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比

    基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比目录 一.梯度下降算法的基本原理 1.梯度下降算法的基本原理 二.题 ...

  2. python实现牛顿法和梯度下降法求解对率回归_最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?...

    多图预警 本文讲你肯定能懂的机器学习多维极值求解,主要讲梯度下降和牛顿法的区别应该能够完美的回答题主的问题 事先说明 本文面向学习过高等数学统计学和线性代数基础知识的本科生,并假设读者拥有基本的矩阵运 ...

  3. python中可以用中文作为变量-在Python 3.x中可以使用中文作为变量名。

    [判断题]Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型. [填空题]Python内置函数__用来返回序列中的最大元素 [填空题]表达式 int(4**0.5) 的值为 ...

  4. Python:Tensorflow中两个稀疏张量相乘

    Python:Tensorflow中两个稀疏张量相乘 博主在想让两个稀疏张量进行相乘时,发现不能用tf.matmul.tf.sparse_matmul.tf.sparse_tensor_dense_m ...

  5. 批量梯度下降python实现_python实现梯度下降算法的实例详解

    python版本选择 这里选的python版本是2.7,因为我之前用python3试了几次,发现在画3d图的时候会报错,所以改用了2.7. 数据集选择 数据集我选了一个包含两个变量,三个参数的数据集, ...

  6. tensorflow随机梯度下降算法使用滑动平均模型

    在采用随机梯度下降算法训练神经网络时,使用滑动平均模型可以提高最终模型在测试集数据上的表现.在Tensflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模 ...

  7. 一文清晰讲解机器学习中梯度下降算法(包括其变式算法)

    本篇文章向大家介绍梯度下降(Gradient Descent)这一特殊的优化技术,我们在机器学习中会频繁用到. 前言 无论是要解决现实生活中的难题,还是要创建一款新的软件产品,我们最终的目标都是使其达 ...

  8. 机器学习中梯度下降算法的实际应用和技巧

    当在现实生活中的遇到问题时,我们总是希望找到最佳的解决方案.制造软件产品也是一样的道理,最优化的程序才是最理想的产品. 最优化意味着获得最佳输出.它既是一个数学的重要分支,也在现实生活中有着重要的作用 ...

  9. tensorflow中name_scope和variable_scope变量的使用

    1. variable_scope的使用 首先,使用variable_scope可以很方便的管理get_varibale. 如何确定 get_variable 的 prefixed name? 1.1 ...

最新文章

  1. 转:AbstractQueuedSynchronizer的介绍和原理分析
  2. Ant Design 入门-引用自己命名的组件
  3. 多元统计第二章证明题_2020年中南大学应用统计硕士考研成功经验分享
  4. BZOJ 3870: Our happy ending( 状压dp )
  5. Verilog HDL语言设计4个独立的非门
  6. Hadoop YARN配置参数剖析—RM与NM相关参数
  7. spring的jdbcTemplate的多数据源的配置,springboot的jdbcTemplate的多数据源的配置
  8. NETCDF C and FORTRAN 4.2 安装笔记
  9. IBM Notes Domino V10.0.1第一组语言包发布!
  10. 图片从RGB转换成Lab
  11. npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
  12. sizeof和strlen使用详解
  13. Laravel Guzzle封装
  14. 电脑上的记账本,添加无限个账户记录
  15. Failed to introspect Class from LaunchedURLClassLoader
  16. 用malloc开辟二维数组的三种办法
  17. 最新咸鱼数据采集工具
  18. python绘图输出上下标中的上下标
  19. 如何升级Jenkins版本
  20. Python获取全部股票数据

热门文章

  1. 搜索做成html静态,如何在静态的html里实现搜索功能?
  2. php sqrt函数,sqrt函数怎么使用
  3. 数据结构Java版实验五_实验五数据结构综合应用 20162310
  4. 知云文献翻译打不开_文献翻译工具-知云文献翻译
  5. 帆软报表如何传递主表原有参数给子表呢_报表工具--钻取功能--超链接下钻
  6. front mysql 导出表结构_肿么将mysql的表结构导出到sqlserver中
  7. python如何快速导入未安装模块_如何导入安装在sitepackages中的模块
  8. 修改10g RAC public or private or virtual IP [Oracle]
  9. 部署 Job (第四部分)
  10. ModelMap和ModelAndView的作用