TensorFlow——tensorflow编程基础
0.tensorflow中的模型运行基础
tensorflow的运行机制属于定义和运行相分离,在操作层面可以抽象成两种:模型构建和模型运行。
在模型构建中的常见概念:
张量(tensor):数据,即某一类型的多为数组
变量(Variable):常用于定义模型中的参数,是通过不断训练得到的值
占位符(placeholder):输入变量的载体,也可以理解成模型的参数
图中的节点操作(operation,op):即一个op获得0个或多个tensor,执行得到,输出得到的tensor
计算图代表一个计算任务,在模型运行的环节中,图会在会话中被启动,session将图中的op分发到CPU或GPU子类的设备上,同时提供执行op的方。这些方法执行后,将产生tensor返回,在python中返回的是numpy的ndarray对象,在C/C++中返回的tensor是TensorFlow::Tensor实例
session与图交互过程中还定义了下面两种数据流向机制:
注入机制(feed):通过占位符模型传入数据
取回机制(fetch):从模型中得到结果
import tensorflow as tf hello = tf.constant('hello world')
sess = tf.Session()
print(sess.run(hello))
sess.close()
建立session,在session中输出hello,world,通过run方法得到hello的值,下面使用with session的作用
# /usr/bin/python
# -*- encoding:utf-8 -*- import tensorflow as tf
import numpy as np a = tf.constant(4)
b = tf.constant(2) with tf.Session() as sess:
print("相加: a + b ", sess.run(a+b))
print("相乘: a * b ", sess.run(a*b))
with session的用法是最常见的,它使用python中的with语法,即当程序结束时,会自动关闭session,不需要写close。
下面演示注入机制,使用注入机制,将具体的实参注入到相应的placeholder中。feed只在调用的方法内有效,方法结束后feed就会自动消失。
import tensorflow as tf
import numpy as np a = tf.placeholder(tf.int32)
b = tf.placeholder(tf.int32)
add = tf.add(a, b)
mul = tf.multiply(a, b) with tf.Session() as sess:
print("相加: ", sess.run(add, feed_dict={a:3, b:2}))
print("相乘: ", sess.run(mul, feed_dict={a:4, b:6}))
构建session的其他方法
交互式的session方式
通常是在交互的环境下使用,具体的用法和with session类似,代码如下:
sess = tf.InteractiveSession()
Supervisor方式:这种方法可能会更高级些,使用的时候也更加的复杂,可以自动的管理session中的具体任务,比如,载入/载出检查点文件,写入tensorboard等,另外该方式还支持分布式的训练任务部署。
TensorFlow——tensorflow编程基础的更多相关文章
- 第六节,TensorFlow编程基础案例-保存和恢复模型(中)
在我们使用TensorFlow的时候,有时候需要训练一个比较复杂的网络,比如后面的AlexNet,ResNet,GoogleNet等等,由于训练这些网络花费的时间比较长,因此我们需要保存模型的参数. ...
- 第五节,TensorFlow编程基础案例-session使用(上)
在第一节中我们已经介绍了一些TensorFlow的编程技巧;第一节,TensorFlow基本用法,但是内容过于偏少,对于TensorFlow的讲解并不多,这一节对之前的内容进行补充,并更加深入了解讲解 ...
- Tensorflow学习笔记----基础(3)
目录: 一.TensorFlow的系统架构 二.TensorFlow的设计理念 三.TensorFlow的运行流程 四.TensorFlow的编程模型:边.节点.图.设备.变量.变量初始化.内核 五. ...
- TensorFlow深度学习基础与应用实战高清视频教程
TensorFlow深度学习基础与应用实战高清视频教程,适合Python C++ C#视觉应用开发者,基于TensorFlow深度学习框架,讲解TensorFlow基础.图像分类.目标检测训练与测试以 ...
- 第二章 Matlab面向对象编程基础
DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...
- [.net 面向对象编程基础] (1) 开篇
[.net 面向对象编程基础] (1)开篇 使用.net进行面向对象编程也有好长一段时间了,整天都忙于赶项目,完成项目任务之中.最近偶有闲暇,看了项目组中的同学写的代码,感慨颇深.感觉除了定义个类,就 ...
- Android开发4: Notification编程基础、Broadcast的使用及其静态注册、动态注册方式
前言 啦啦啦~(博主每次开篇都要卖个萌,大家是不是都厌倦了呢~) 本篇博文希望帮助大家掌握 Broadcast 编程基础,实现动态注册 Broadcast 和静态注册 Broadcast 的方式以及学 ...
- T-Sql编程基础
T-sql编程 入门小游戏 T-sql编程基础,包括声明变量,if判断,while循环,以及使用一些基本函数. 记得在学校的时候,写过一个二人对打的文字输出游戏. 上代码 alter proc usp ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- 如何夯实(Java)编程基础,并深入学习和提高
如何夯实(Java)编程基础,并深入学习和提高? 240赞同反对,不会显示你的姓名 匿名用户 240 人赞同 多学习...网上自学的学习网站很多,见以下榜单~一.汇总榜单: 公开课_学习网站导航 收录 ...
随机推荐
- Python--day67--CBV和FBV、Request对象及上传文件示例
1,CBV版添加新的出版社 views.py文件 urls.py文件 2,Request对象: request对象 当一个页面被请求时,Django就会创建一个包含本次请求原信息的HttpReques ...
- H3C NAPT配置举例
- Django入门7--博客撰写页面开发
- P1099 双连击
题目描述 我们假设一个二位整数 \(N(10 \le N \le 99)\) ,它的十位上的数字是 \(A\) ,个位上的数字是 \(B\) ,如果 \(A\) 和 \(B\) 的比例关系满足 \(A ...
- H3C Network命令详解
- tp框架使用心得(六)——分页查询
http://baijiahao.baidu.com/s?id=1578482537511010805&wfr=spider&for=pc 在用thinkphp中,对于新手手册中还是有 ...
- P1091 剧院广场
题目描述 柏林首都的剧院广场呈长方形,面积为 \(n \times m\) 平方米.在这座城市的周年纪念日之际,人们决定用方形花岗岩石板铺设广场.每块石板的大小都是 \(a \times a\) . ...
- 【23.68%】【hdu 2871】Memory Control
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission ...
- API自动化测试指南
我相信自动化技能已经成为高级测试工程师总体技能的标配.敏捷和持续测试破坏了传统的测试自动化实践,导致测试工程师重新考虑自动化的完成方式.当今的自动化工程师需要在GUI的下方深入到API级别完成软件质量 ...
- 阿里云“网红"运维工程师白金:做一个平凡的圆梦人
他是阿里云的一位 P8 运维专家,却很有野心得给自己取花名“辟拾(P10)”:他没有华丽的履历,仅凭着 26 年的热爱与坚持,一步一个脚印踏出了属于自己的技术逆袭之路:他爱好清奇,练就了能在 20 秒 ...