一:基本概念

  • 1、使用图(graphs)来表示计算任务
  • 2、在被称之为会话(Session)的上下文(context)中执行图
  • 3、使用tensor表示数据
  • 4、通过变量(Variable)维护状态
  • 5、使用feed和fetch可以为任意的操作赋值或者从其中获取数据

TensorFlow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation),一个op获得0个或多个tensor,执行计算,产生0个或多个tensor。tensor看做是一个n维的数组或列表。图必须在会话(Session)里被启动。

二:TensorFlow结构

三:简单练习

1、热身前技巧:

a、首先在桌面创建一个专门用来存放TensorFlow代码的文件夹,以后把全部和TensorFlow相关的代码存放在该文件夹下。

b、打开jupyter:首先打开系统终端(cmd):进入刚才创建的存放代码的文件夹(比如我的study_tensor)输入:cd C:\Users\felix\Desktop\study_tensor

进入后输入jupyter notebook

会再浏览器中打开jupyter notebook的编辑环境。(这样打开的话,默认jupyter的工作环境就是刚才创建的文件夹了)

新建工作环境。

如下图表示成功进入工作环境:

2、切入正题,撸代码

shift+enter  执行代码

tab  代码提示

shift+tab  详情提示

a、创建图和启动图

import tensorflow as tf

# 创建一个常量op
m1=tf.constant([[3,3]])
# 创建一个常量op
m2=tf.constant([[2],[3]])
# 创建一个矩阵乘法的op,把m1,m2传入
product=tf.matmul(m1,m2)
print(product) #直接打印并没有执行 # 定义一个会话,自动默认图
sess=tf.Session()
# 调用sess的run方法来执行矩阵乘法op
# run(product)触发图中3个op
result=sess.run(product)
print(result)
sess.close() # 关闭 # 将上一句简化
with tf.Session() as sess:
# 调用sess的run方法来执行矩阵乘法op
# run(product)触发图中3个op
result=sess.run(product)
print(result)

创建图,启动图

图中的每一个代码块都执行了。(按shift+enter执行)

b、变量

import tensorflow as tf

x=tf.Variable([1,2]) # 创建一个变量op
a=tf.constant([3,3]) # 创建一个常量op
# 增加一个减法op
sub=tf.subtract(x,a)
# 增加一个加法op
add=tf.add(x,sub)
# 初始化全部的变量,不初始化会出问题
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)# 先进行变量的初始化
print(sess.run(sub))
print(sess.run(add)) state=tf.Variable(0,name='counter')# 初始化变量为0,可以给变量起名字
new_value=tf.add(state,1) # 创建一个op,作用是使state加1
update=tf.assign(state,new_value) # 将后面的值赋值给前面的值,赋值op
# 初始化全部的变量,不初始化会出问题
init=tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)# 先进行变量的初始化
print(sess.run(state))
for i in range(5):
sess.run(update)
print(sess.run(state))

变量

c、fetch和feed

import tensorflow as tf

# fetch 可以执行多个op
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0) add=tf.add(input2,input3)
mul=tf.multiply(input1,add) # 乘法op with tf.Session() as sess:
result=sess.run([mul,add]) # 同时运行多个op,就是fetch
print(result) # feed 以字典的形式传入值
input1=tf.placeholder(tf.float32) # 创建一个占位符,具体的值可以在运行的时候传入
input2=tf.placeholder(tf.float32) # 创建一个占位符
output=tf.multiply(input1,input2) with tf.Session() as sess:
# feed的数据以字典的形式传入
result=sess.run(output,feed_dict={input1:[7.0],input2:[2.0]})
print(result)

fetch和feed

d、简单示例-优化线性模型,使模型接近样本

import tensorflow as tf
import numpy as np # pip3 install numpy安装 # 使用numpy生成100个随机点
# 样本
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2 # 直线 标准直线 # 构造一个线性模型
b=tf.Variable(0.0)
k=tf.Variable(0.0)
y=k*x_data+b # 使用TensorFlow优化k 和 b 来优化线性模型,使其接近样本 # 二次代价函数
loss=tf.reduce_mean(tf.square(y_data-y)) # reduce_mean求平均值,tf.square计算平方
# 定义一个梯度下降法来进行训练的优化器
optimizer=tf.train.GradientDescentOptimizer(0.2) # 0.2为学习率,梯度下降的优化器
# 最小化代价函数
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: # 每20次输出一次结果
print(step,sess.run([k,b])) # 发现结构k值越来越接近0.1,b值越来越接近0.2

简单示例 优化线性模型

TensorFlow(二):基本概念以及练习的更多相关文章

  1. 1.Tensorflow的基本概念:

    1.Tensorflow的基本概念: 1.使用图(graphs)来表示计算任务 2.在被称之为会话(Session)的上下文(context)中执行图 3.使用tensor表示数据 4.通过变量(Va ...

  2. Tensorflow的基本概念与常用函数

    Tensorflow一些常用基本概念与函数(一) 1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf ...

  3. Tensorflow学习:(一)tensorflow框架基本概念

    一.Tensorflow基本概念 1.使用图(graphs)来表示计算任务,用于搭建神经网络的计算过程,但其只搭建网络,不计算 2.在被称之为会话(Session)的上下文(context)中执行图 ...

  4. tensorflow(二)----线程队列与io操作

    一.队列和线程 1.队列: 1).tf.FIFOQueue(capacity, dtypes, name='fifo_queue') 创建一个以先进先出的顺序对元素进行排队的队列 参数: capaci ...

  5. 2016 - 2 - 20 ARC知识总结(二 autorelease概念及实现)

    首先祝自己生日快乐~23咯~ 一  autorelease的概念 autorelease会像C语言的自动变量那样来对待对象实例.当超出作用域(相当于变量作用域)时,对象的实例release实力方法被调 ...

  6. 【Samza系列】实时计算Samza中文教程(二)——概念

    希望上一篇背景篇让大家对流式计算有了宏观的认识,本篇依据官网是介绍概念,先让我们看看有哪些东西呢?     概念一:Streams     Samza是处理流的.流则是由一系列不可变的一种相似类型的消 ...

  7. TensorFlow[1]:概念和简例

    简介 TensorFlow是一个实现机器学习算法的接口,也是执行机器学习算法的框架.使用数据流式图规划计算流程,可以将计算映射到不同的硬件和操作系统平台. 主要概念 TensorFlow的计算可以表示 ...

  8. 从零开始学JavaScript二(基本概念)

    基本概念 一.区分大小写 在ECMAScript中的一切(变量.函数名.操作符)都是区分大小写的. 如变量名test和Test分别表示两个不同的变量, 二.标识符 所谓标识符,就是指变量.函数.属性的 ...

  9. PowerDesigner教程系列(二)概念数据模型

    目标:本文主要介绍PowerDesigner概念数据模型以及实体.属性创建.一.新建概念数据模型1)选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型. 2) ...

随机推荐

  1. TCP--粘包拆包,netty的解决方式

    TCP基于链接的协议,并且保证有序性. 但是,每个包的长度,需要明确,否则会发生粘包现象. 以下示例为一个自定义协议的例子,其中包含了拆包的内容. 所有的类: 协议类: public class Pe ...

  2. js复制内容到粘贴板

    点击右边内容:<span onclick="copyContent(this);" title="点击复制">啊,我被复制了</span> ...

  3. Java Swing中文乱码解决方法

    Run As Run Configuration,在Arguments中增加下面这句: -Dfile.encoding=gbk

  4. flask之蓝图BulePrint使用

    之前flask启用程序代码和逻辑代码都是在一个页面,这样代码多了很自然不利于关于,如果要将逻辑代码和进行分离,这里需要用到Falsk的蓝图(Blueprint) 项目结构 app文件夹为项目最外层文件 ...

  5. 利用EasyUI 数据网格(DataGrid)的loader属性实现后端分页

    该属性在easyui官方文档中并没有详细阐述,通过简单的资料查询和摸索,实现了easyUI数据网格的后端分页功能. 在官网文档中这样阐述loader属性: 定义如何从远程服务器加载数据.返回false ...

  6. Oracle GoldenGate(ogg)安装经验大汇总,采坑总结,绝对干货!

    一下是安装ogg过程中遇到的问题和解决办法,绝对良心干货,抽空会写更详细的安装教程.更多精彩内容请点击 OGG-00685 begin time prior to oldest log in log ...

  7. Java上传图片到服务器

    HTML页面的标签 <div id="div_selectpic" align="right" style="width: 300px;font ...

  8. 第一周助教小结——发布作业&线上答疑

    第一周助教小结 助教博客:https://www.cnblogs.com/jason5689/ 本周点评数目:0份 由于发布的作业还未截至,第一次的作业点评还没开始进行,就描述一下评论博客前的感受吧 ...

  9. PHM与智慧运维落地实践案例集 — 机车运用数据智能诊断系统正式上线

    2019年9月20日,经过为期一个多月的紧张测试,北京润科通用技术有限公司为中车某机车单位倾力打造的“机车运用数据智能诊断系统”正式上线运行,标志着润科通用在轨道交通智慧运维领域的又一案例成功落地. ...

  10. python高级特性-filter

    python内建的函数filter用于过滤序列 和map()相同:filter()也接收一个函数的序列. 和map()不同:filter()把传入的函数依次依次作用于每个元素,然后根据返回值是True ...