一、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. 实例 tar备份以日期命名

    tar备份以日期命名****************************************************************************************#v ...

  2. OpenLayers3基础教程——OL3基本概念

    从本节開始,我会陆陆续续的更新有关OL3的相关文章--OpenLayers3基础教程,欢迎大家关注我的博客,同一时候也希望我的博客可以给大家带来一点帮助. 概述: OpenLayers 3对OpenL ...

  3. 每天一个JavaScript实例-获取元素当前高度

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  4. javascript/jquery模板引擎——Handlebars初体验

    Handlebars.js下载地址:http://handlebarsjs.com/ 最近自己在建一个站,采用完全的前后端分离的方式,现在正在做前端的部分.其中有项功能是需要ajax调用后端接口,返回 ...

  5. Ubuntu下配置Tomcat以指定(非root)身份执行

    My Blog:http://www.outflush.com/ 通常情况下.在配置Tomcat生产环境时,一般会配置Tomcat以特定的身份执行(非root).这样有利于提高安全性,防止站点被黑后的 ...

  6. IO流-获取指定目录下文件夹和文件对象【File类】

    一.运用File类实现获取指定目录下文件夹和文件对象 1.File类 2.方法: 获取文件绝对路径 :getAbsolutePath 案例: import java.io.File; /** * 获取 ...

  7. Android 常用Shell命令

    1.查询模拟器/设备实例 adb devices 2.从模拟器/设备中拷入或拷出文件(默认拷贝在执行目录) 从模拟器或者设备中复制文件或目录,使用(如下命): adb pull <remote& ...

  8. 强连通分量+poj2186

    强连通分量:两个点能够互相连通. 算法分解:第一步.正向dfs全部顶点,并后序遍历 第二步,将边反向,从最大边dfs,构成强连通分量 标号最大的节点属于DAG头部,cmp存一个强连通分量的拓扑序. p ...

  9. PyTorch 60 分钟入门教程

    PyTorch 60 分钟入门教程:PyTorch 深度学习官方入门中文教程 http://pytorchchina.com/2018/06/25/what-is-pytorch/ PyTorch 6 ...

  10. 基于字符的打印机 图形化打印机 PostScript解释器

    60行*80字符/行=4800字节 300点/英寸(300DPI)   8*10英寸/页打印区域 光栅图像处理器  RIP PostScript程序--- > PostScript解释器 --& ...