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 人赞同 多学习...网上自学的学习网站很多,见以下榜单~一.汇总榜单: 公开课_学习网站导航 收录 ...
随机推荐
- springboot2动态数据源的绑定
由于springboot2更新了绑定参数的api,部分springboot1用于绑定的工具类如RelaxedPropertyResolver已经无法在新版本中使用.本文实现参考了https://blo ...
- H3C PAP验证
- Python--day47--mysql分页性能相关方案
提高分页性能: 分页的时候,如果是正常的数据全局扫描,分页越大的时候花费的时间越长. 这时候要提高效率的话就不能全局扫描,如下面的例子,扫描索引且从最大或最小页开始扫描.
- Python--day46--mysql存储过程(不常用)(包含防sql注入)
一.存储过程: 优点:只要传很少的数据到数据库就可以了 缺点:dba管理数据库的时候可能会对数据库进行了更改了那一坨sql语句. 二.创建存储过程: 1.简单 创建存储过程: Python中使用结果 ...
- Python--day39--进程池的回调函数callback
运行结果:
- codeforce 378 div 2 F —— Drivers Dissatisfaction (最小生成树,LCA,倍增)
官方题解: If you choose any n - 1 roads then price of reducing overall dissatisfaction is equal to min(c ...
- linux 位操作
atomic_t 类型在进行整数算术时是不错的. 但是, 它无法工作的好, 当你需要以原子方 式操作单个位时. 为此, 内核提供了一套函数来原子地修改或测试单个位. 因为整个操作 在单步内发生, 没有 ...
- HDU 1711 Number Sequence (KMP 入门)
Number Sequence Problem Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and ...
- linux进程一个阻塞 I/O 的例子
最后, 我们看一个实现了阻塞 I/O 的真实驱动方法的例子. 这个例子来自 scullpipe 驱 动; 它是 scull 的一个特殊形式, 实现了一个象管道的设备. 在驱动中, 一个阻塞在读调用上的 ...
- Spring、Spring Boot和TestNG测试指南 - 使用Spring Boot Testing工具
Github地址 前面一个部分讲解了如何使用Spring Testing工具来测试Spring项目,现在我们讲解如何使用Spring Boot Testing工具来测试Spring Boot项目. 在 ...