给不明白深度学习能干什么的同学,感受下深度学习的power

import tensorflow as tf
import numpy as np #使用numpy生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2 #这里我们设定已知直线的k为0.1 b为0.2得到y_data #构造一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b #二次代价函数(白话:两数之差平方后取 平均值)
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器(其实就是按梯度下降的方法改变线性模型k和b的值,注意这里的k和b一开始初始化都为0.0,后来慢慢向0.1、0.2靠近)
optimizer=tf.train.GradientDescentOptimizer(0.2) #这里的0.2是梯度下降的系数也可以是0.3...
#最小化代价函数(训练的方式就是使loss值最小,loss值可能是随机初始化100个点与模型拟合出的100个点差的平方相加...等方法)
train=optimizer.minimize(loss) #初始化变量
init=tf.global_variables_initializer() with tf.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
if step%20==0:
print(step,sess.run([k,b])) #这里使用fetch的方式只是打印k、b的值,每20次打印一下,改变k、b的值是梯度下降优化器的工作

贴一张我的运行结果:

看,k和b在一步步逼近0.1和0.2,是不是很神奇!最终的误差仅为0.000026526和0.00001402,厉害吧,感受到深度学习的强大了么,这里还只是一个神经元,如果成千上万个甚至几十万个会有什么效果呢?

这就是深度学习的power,当然前提是你得配上tensorflow的接口,才能快速高效的搭建自己的神经网络。

目录:

  1. tensorflow简介、目录
  2. tensorflow中的图(02-1)
  3. tensorflow变量的使用(02-2)
  4. tensorflow中的Fetch、Feed(02-3)
  5. tensorflow版helloworld---拟合线性函数的k和b(02-4)
  6. tensorflow非线性回归(03-1)
  7. MNIST手写数字分类simple版(03-2)
  8. 二次代价函数、交叉熵(cross-entropy)、对数似然代价函数(log-likelihood cost)(04-1)
  9. 多层网络通过防止过拟合,增加模型的准确率(04-2)
  10. 修改优化器进一步提升准确率(04-3)
  11. 手写数字识别-卷积神经网络cnn(06-2)
  12. 循环神经网络rnn与长短时记忆神经网络简述(07-2)
  13. 循环神经网络lstm代码实现(07-3)
  14. tensorflow模型保存和使用08
  15. 下载inception v3  google训练好的模型并解压08-3
  16. 使用inception v3做各种图像分类识别08-4
  17. word2vec模型训练简单案例
  18. word2vec+textcnn文本分类简述及代码

tensorflow版helloworld---拟合线性函数的k和b(02-4)的更多相关文章

  1. TensorFlow拟合线性函数

    TensorFlow拟合线性函数 简单的TensorFlow图构造 以单个神经元为例 x_data数据为20个随机 [0, 1) 的32位浮点数按照 shape=[20] 组成的张量 y_data为 ...

  2. 目标检测之车辆行人(tensorflow版yolov3)

    背景: 在自动驾驶中,基于摄像头的视觉感知,如同人的眼睛一样重要.而目前主流方案基本都采用深度学习方案(tensorflow等),而非传统图像处理(opencv等). 接下来我们就以YOLOV3为基本 ...

  3. TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点

    TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...

  4. Tensorflow版Faster RCNN源码解析(TFFRCNN) (2)推断(测试)过程不使用RPN时代码运行流程

    本blog为github上CharlesShang/TFFRCNN版源码解析系列代码笔记第二篇   推断(测试)过程不使用RPN时代码运行流程 作者:Jiang Wu  原文见:https://hom ...

  5. tensorflow学习4-过拟合-over-fitting

    过拟合: 真实的应用中,并不是让模型尽量模拟训练数据的行为,而是希望训练数据对未知做出判断. 模型过于复杂后,模型会积极每一个噪声的部分,而不是学习数据中的通用 趋势.当一个模型的参数比训练数据还要多 ...

  6. 跟我学算法-tensorflow 实现线性拟合

    TensorFlow™ 是一个开放源代码软件库,用于进行高性能数值计算.借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU.GPU.TPU)和设备(桌面设备.服务器集群.移动设备.边缘设 ...

  7. Delphi_01_控制台版HelloWorld

    对于Windows下的控制台编程,我相信很多人都不陌生.而C语言开始的著名的“Hello world”程序基本是学习编程的第一步.我想对于 RAD开发,大家熟悉的一般都是GUI编程,而对于consol ...

  8. 初学tornado之MVC版helloworld

    作者:the5fire | 标签: MVC  tornado  | 发布:2012-08-06 2:41 p.m. 文接上篇,看我一个简单的helloworld,虽然觉得这个框架着实精小,但是实际开发 ...

  9. tensorflow版的bvlc模型

    研究相关的图片分类,偶然看到bvlc模型,但是没有tensorflow版本的,所以将caffe版本的改成了tensorflow的: 关于模型这个图: 下面贴出通用模板: from __future__ ...

随机推荐

  1. 逻辑运算符及其优先级,C语言逻辑运算符及其优先级详解

    C 语言提供了以下三种逻辑运算符. 一元:!(逻辑非). 二元:&&(逻辑与).||(逻辑或). 以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻 ...

  2. 每天进步一点点------SOPC的Avalon-MM IP核(二) AVALON总线的IP核定制

    简介 NIOS II是一个建立在FPGA上的嵌入式软核处理器,除了可以根据需要任意添加已经提供的外设外,用户还可以通过定制用户逻辑外设和定制用户指令来实现各种应用要求.这节我们就来研究如何定制基于Av ...

  3. via/route blockage/size blockage/wire/pin guide/pin blockage/partition

    1.via 中文名称互连线通孔.我们知道,芯片的连线有不同层的金属互连线相互连接.而Via的作用就是连接这些不同层的金属.如下图所示: 一个完整的通孔是由三层组成的,包括两个互连层和一个cut层,cu ...

  4. git按需过滤提交文件的一个细节

    问题场景 用git管理代码时,作为git小白的我总会遇到一些无法理解的问题,在请教了一些高手后终于解开了疑惑,参考以下场景: 1.比如我们已在电脑1上完成用vs编辑项目.添加.提交到服务器的完整流程, ...

  5. SpringCloud全家桶学习之概览(一)

    一.概览 根据百度百科的描述,微服务架构是一项在云中部署应用和服务的新技术.而SpringCloud是微服务架构思想的一个具体实现,它为开发人员提供了构建分布式系统中一些常见模式的工具(服务注册与发现 ...

  6. win10鼠标右击 新建文件夹 反应缓慢、迟钝

    1. 先使用360杀毒,步骤如下: 2.修改注册表 https://jingyan.baidu.com/article/363872ec9e25972e4ba16f82.html 3.  如果仍未解决 ...

  7. 获取SqlServer存储过程定义的三种方法

    declare @p_text varchar(max) SELECT @p_text= text FROM syscomments WHERE id = ( SELECT id FROM sysob ...

  8. Anniversary party POJ - 2342

    题目链接 经典的树形dp,最大独立集,对于每个点就有2个状态,选/不选 设\(dp_{i,0}\)表示不选第i个,\(dp_{i,1}\)表示选第i个,容易得到其状态转移 \(dp_{i,0} = \ ...

  9. Git - 常用命令, cheatsheet

    git init git add <filename1> <filename2> git add . git checkout -- <filename> git ...

  10. Python:面向对象基础

    基本理论 什么是对象 万物皆对象 对象是具体的事物 拥有属性.行为 把许多零散的东西,封装成为一个整体 Python中一切东西都是对象,Python是一门特别彻底的面向对象编程语言(OOP) 其他编程 ...