人工智能感觉很神秘,作为google公司力推的人工智能框架tensorflow也受到很多人的关注.本文用一个最简单的例子,带领大家看看tensorflow是如何工作的.
如果你对人工智能的原理不了解可以看这篇文章人工智能-神经网络原理

首先导入tensorflow和numpy模块

import tensorflow as tf
import numpy as np

我们知道tensorflow的学习是由一些正确的数据去训练,大量训练之后才会根据之前的经验进行预测.所以我们先构造一些正确的数据.

x = np.random.rand(100).astype(np.float32)
y = x * 0.3 + 0.4

这里x是随机的数列,y是真实数据,也就是我们的训练样本.

下面我们来构造tensorflow中x与y的关系

Weights = tf.Variable(tf.random_uniform([1], -1, 1))
biases = tf.Variable(tf.zeros([1]))
y_prediction = Weights * x + biases

x是输入值,y是tensorflow预测的值.由于不知道x与y是何种关系,所以用两个变量表示,也就是经常听到的权重Weights和偏置值biases.
tf.Variable是tensorflow中的变量

接下来我们要表示出来预测的值与真实值的误差

loss = tf.reduce_mean(tf.square(y_prediction - y))

用预测出来的值减去真实值再平方,再求平均值,得出的值loss就是真实值与预测值的误差.其实这就是我们中学里学的方差.
tf.square是平方运算.tf.reduce_mean是求平均值.

那么接下来如何让预测值更接近真实值呢,当然是让loss越来越小

optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)

在这一步tensorflow会不断调整Weights和biases,去减少loss
GradientDescentOptimizer是优化器的一种,tensorflow有很多种方法去减少loss

接下来我们要初始化tensorflow的变量,这点与其他语言不一样,tensorflow的变量不会立刻分配内存,像先把设计图画完再开工

init = tf.global_variables_initializer()

激活神经网络

sess = tf.Session()
sess.run(init)

开始训练,我们训练200次,每次都会调用优化器调整权重和偏置值
我们每20步打印一次Weights,和biases的值

for step in range(200):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))


训练到最后,我们发现tensorflow调整出来的Weights和biases非常接近与我们给定的0.3和0.4了,所以如果现在给一个x让tensorflow做预期,得到的y值也会很接近真实值.

tensorflow入门教程的更多相关文章

  1. TensorFlow入门教程集合

    TensorFlow入门教程之0: BigPicture&极速入门 TensorFlow入门教程之1: 基本概念以及理解 TensorFlow入门教程之2: 安装和使用 TensorFlow入 ...

  2. tensorflow入门教程和底层机制简单解说——本质就是图计算,自动寻找依赖,想想spark机制就明白了

    简介 本章的目的是让你了解和运行 TensorFlow! 在开始之前, 让我们先看一段使用 Python API 撰写的 TensorFlow 示例代码, 让你对将要学习的内容有初步的印象. 这段很短 ...

  3. 【Tensorflow】Tensorflow入门教程

    基本使用 使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使 ...

  4. TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  5. TensorFlow 2.0 入门教程实战案例

    中文文档 TensorFlow 2 / 2.0 中文文档 知乎专栏 欢迎关注知乎专栏 https://zhuanlan.zhihu.com/geektutu 一.实战教程之强化学习 TensorFlo ...

  6. TensorFlow 中文资源精选,官方网站,安装教程,入门教程,实战项目,学习路径。

    Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...

  7. Tensorflow 2.x入门教程

    前言 至于为什么写这个教程,首先是为了自己学习做个记录,其次是因为Tensorflow的API写的很好,但是他的教程写的太乱了,不适合新手学习.tensorflow 1 和tensorflow 2 有 ...

  8. TensorFlow入门示例教程

    本部分的代码目前都是基于GitHub大佬非常详细的TensorFlow的教程上,首先给出链接: https://github.com/aymericdamien/TensorFlow-Examples ...

  9. FaceRank,最有趣的 TensorFlow 入门实战项目

    FaceRank,最有趣的 TensorFlow 入门实战项目 TensorFlow 从观望到入门! https://github.com/fendouai/FaceRank 最有趣? 机器学习是不是 ...

随机推荐

  1. angularJs 个人初探笔记

    1.环境搭建与angular - phoneCat 安装可以通过git clone来下载源代码: git clone --depth=14 https://github.com/angular/ang ...

  2. System.getProperty参数大全

    System.getProperty()参数大全 #java.version                                    Java Runtime Environment v ...

  3. Java微信公众平台开发_02_启用服务器配置

    源码将在晚上上传到 github 一.准备阶段 需要准备事项: 1.一个能在公网上访问的项目: 见:[  Java微信公众平台开发_01_本地服务器映射外网  ] 2.一个微信公众平台账号: 去注册: ...

  4. dynamic_cast 转换示例

    dynamic_cast 转换示例 /* 带虚函数与不带虚函数转换的区别 dynamic_cast:必须要有虚函数才可以转换 dynamic_cast:只能处理转换指针或引用,不能转换对象 dynam ...

  5. ASP.NET Core的身份认证框架IdentityServer4(3)-术语的解释

    IdentityServer4 术语 IdentityServer4的规范.文档和对象模型使用了一些你应该了解的术语. 身份认证服务器(IdentityServer) IdentityServer是一 ...

  6. 块级元素行内元素以及display属性

    1.什么叫做标签语义化? ->合理的标签做合适的事情 ->HTML中常用的标签都有哪些? (块状标签和行内标签) ->块状标签和行内标签的区别? (常用的有8条区别) 1)内联元素: ...

  7. 学习C++ -> 构造函数与析构函数

    学习C++ -> 构造函数与析构函数 一.构造函数的介绍    1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用 ...

  8. 2017年11月1日 初学者易上手的SSH-spring 01控制反转(IOC)

    这章开始学习SSH中最后的一个框架spring.Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用. 首先就来学习一下I ...

  9. linux 更新源miss问题

    1.之前新装的linuxMint 执行 apt-get install vim 安装失败 发现原因是源更新失败导致,后来执行apt-get update 发现老是获取失败,查了google总结出以下解 ...

  10. Server 2008 R2远程桌面授权,解决120天过期问题

    平时在使用远程桌面过程,我们经常会遇到这样的两个问题. 问题一.远程桌面的连接数限制 Server 2008 R2默认远程桌面连接数是2个用户,如果多余两个用户进行远程桌面连接时,系统就会提示超过连接 ...