一、TensorFlow 简介

TensorFlow 是 Google 开源的一款人工智能学习系统。为什么叫这个名字呢?

Tensor 的意思是张量,代表 N 维数组;Flow 的意思是流,代表基于数据流图的计算。

把 N 维数字从流图的一端流动到另一端的过程,就是人工智能神经网络进行分析和处理的过程。

话说在 Android 占领了移动端后,Google开源了 TensorFlow,希望占领 AI 端。

TF的特点是可以支持多种设备,大到 GPU、CPU,小到平板和手机都可以跑起来 TF。

而且 TF 的使用很方便,几行代码就能开始跑模型,这让神经网络的入门变得非常简单。

二、TensorFlow 的安装

因为精力有限,此处只介绍在windows10平台上的安装,其他平台的安装方法google上一抓一大把。

我安装的方法是用最简单粗暴的方法:Anaconda

1.在Anaconda官网上下载64位



(注意自己的python的版本)

在安装过程注意的一点是勾选如下图中的两个选项,其他的默认即可:

2.安装成功后打开Anaconda,切换到environment功能栏,可以看到很多的工具包,搜索Tensorflow,勾选上,然后点击Apply,进行安装即可。

三、TensorFlow的基础运算

在搞神经网络之前,先让我们把 TensorFlow 的基本运算,也就是加减乘除搞清楚。

首先,TensorFlow 有几个概念需要进行明确:

  • 图(Graph):用来表示计算任务,也就我们要做的一些操作。

  • 会话(Session):建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,一个会话可以有多个图,通过执行这些图得到结果。

如果把每个图看做一个车床,那会话就是一个车间,里面有若干个车床,用来把数据生产成结果。

  • Tensor:用来表示数据,是我们的原料。

  • 变量(Variable):用来记录一些数据和状态,是我们的容器。

  • feed和fetch:可以为任意的操作(arbitrary operation ) 赋值或者从其中获取数据。相当于一些铲子,可以操作数据。

形象的比喻是:把会话看做车间,图看做车床,里面用 Tensor 做原料,变量做容器,feed 和 fetch 做铲子,把数据加工成我们的结果。

创建图和运行图

下面我们创建一个图,并在 Session 中执行它,不用担心看不懂,每句代码都会注释,只有有编程基础,都能 OK:

#引入TensorFlow包
import tensorflow as tf
#创建一个常量v1,它是1*2的矩阵
v1=tf.constant([[2,3]])
#创建一个常量v2,它是2*1的矩阵
v2=tf.constant([[2],[3]])
#创建一个矩阵乘法,这里要注意的是,创建了乘法后,是不会立即执行的,要在会话中执行才行
product=tf.matmul(v1,v2) #打印,得到的不是乘法的结果,而是得到乘法本身
print(product) #定义一个会话
sess=tf.Session()
#运行乘法,得到结果
result=sess.run(product)
#打印结果
print(result)
#关闭会话
sess.close()

上面就是用 TensorFlow 进行了一个最简单的矩阵乘法。

创建一个变量,并用 for 循环对变量进行赋值操作

#创建一个变量num
num = tf.Variable(0,name = "count")
#创建一个加法操作,把当前的数字加10
new_value = tf.add(num,10)
#创建一个赋值操作,将new_value的值赋值给num
op = tf.assign(num,new_value) #使用这种写法,在运行完毕以后,会话自动关闭
with tf.Session() as sess:
#初始化变量
sess.run(tf.global_variables_initializer())
#打印num的初始值
print(sess.run(num))
#创建一个for循环,每次给num+10,并打印出来
for i in range(5):
sess.run(op)
print(sess.run(num))

可以看到,除了变量创建稍微麻烦一些和必须建立 session 来运行,其他的操作基本和普通Python一样。

通过 feed 设置 placeholder 的值

有的时候,我们会在声明变量的时候不赋值,计算的时候才进行赋值,这个时候 feed 就派上用场了


#创建一个变量占位符input1
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32) #创建一个乘法操作,把input1和input2相乘
new_value=tf.multiply(input1,input2) #使用这种写法,运行完毕后,会话会自动关闭
with tf.Session() as sess: #打印new_value的值,在运算时,用feed设置两个输入的值
print(sess.run(new_value,feed_dict={input1:23.0,input2:11.0}))

人工智能-深度学习(2)TensorFlow安装及基本使用(学习笔记)的更多相关文章

  1. 深度学习之TensorFlow安装与初体验

    深度学习之TensorFlow安装与初体验 学习前 搞懂一些关系和概念 首先,搞清楚一个关系:深度学习的前身是人工神经网络,深度学习只是人工智能的一种,深层次的神经网络结构就是深度学习的模型,浅层次的 ...

  2. TF之NN:matplotlib动态演示深度学习之tensorflow将神经网络系统自动学习并优化修正并且将输出结果可视化—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt def add_layer(inputs, in_ ...

  3. 学习笔记TF045:人工智能、深度学习、TensorFlow、比赛、公司

    人工智能,用计算机实现人类智能.机器通过大量训练数据训练,程序不断自我学习.修正训练模型.模型本质,一堆参数,描述业务特点.机器学习和深度学习(结合深度神经网络). 传统计算机器下棋,贪婪算法,Alp ...

  4. 02基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍

    人工智能之父麦卡锡给出的定义 构建智能机器,特别是智能计算机程序的科学和工程. 人工智能是一种让计算机程序能够"智能地"思考的方式 思考的模式类似于人类. 什么是智能? 智能的英语 ...

  5. 深度学习篇——Tensorflow配置(傻瓜安装模式)

    前言 如果你是一个完美主义者,那么请绕过此文,请参考<深度学习篇——Tensorflow配置(完美主义模式)> 安装 pip install tensorflow ok,只要不报错,安装就 ...

  6. 深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装

    一.硬件采购 近年来,人工智能AI越来越多被人们所了解,尤其是AlphaGo的人机围棋大战之后,机器学习的热潮也随之高涨.最近,公司采购了几批设备,通过深度学习(TensorFlow)来研究金融行业相 ...

  7. 人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练

    人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练 MXNet 是一个轻量级.可移植.灵活的分布式深度学习框架,2017 年 1 月 23 日,该项目进入 Apache 基金会,成为 ...

  8. 金玉良缘易配而木石前盟难得|M1 Mac os(Apple Silicon)天生一对Python3开发环境搭建(集成深度学习框架Tensorflow/Pytorch)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_189 笔者投入M1的怀抱已经有一段时间了,俗话说得好,但闻新人笑,不见旧人哭,Intel mac早已被束之高阁,而M1 mac已经 ...

  9. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...

  10. 深度学习之TensorFlow构建神经网络层

    深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...

随机推荐

  1. Storm专题二:Storm Trident API 使用具体解释

    一.概述      Storm Trident中的核心数据模型就是"Stream",也就是说,Storm Trident处理的是Stream.可是实际上Stream是被成批处理的. ...

  2. SGU - 311 Ice-cream Tycoon(线段树)

    Description You've recently started an ice-cream business in a local school. During a day you have m ...

  3. Solr 文章集成

    Solr 文章集成 solr原理 solr wiki: http://wiki.apache.org/solr/ 分布式全文检索系统SolrCloud简单介绍 http://my.oschina.ne ...

  4. ImageViewCoverflow

    https://github.com/Bertlk/ImageViewCoverflow https://github.com/dolphinwang/ImageCoverFlow http://ww ...

  5. 嵌入式开发之davinci---dm8168VPORT口管脚总结

    http://blog.csdn.net/shanghaiqianlun/article/details/7531365

  6. VS类添加头文件注释

    VS2015参考: http://blog.csdn.net/qq395537505/article/details/50853546  修改两个文件,详细信息 VS2010: 找到VS的安装目录 E ...

  7. Struts2逻辑视图与视图资源

  8. windows安装SVN服务器并设置开机启动

    1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装,在命令行下运行svn命令,如下所以,则svn服务器安 ...

  9. (14)javaWeb中的HttpServletResponse类详解

    如果希望了解请求和响应的详细内容,可以看我的“HTTP协议”系列文章 响应体的简单概述: a,响应报文结构: b,常见的状态码,返回服务器处理的结果: c,常见的响应头: HttpServletRes ...

  10. idea新建springmvc+spring+mybaties项目1

    1,点击file,选择module,新建项目 2,选择maven -- >maven-archetype-webapp 3,输入GroupId,ArtifactId,点击next 4,选择本地m ...