TensorFlow-1

  • 1.Graph对象
  • 2.Session对象
  • 3.Variabels变量
  • 4. placeholders与feed_dict
  • 5. tf.train.Saver() 模型参数保存、加载

Tensorflow 中文官网教程–2.0版本的官方教程
TensorFlow教程:TensorFlow快速入门教程(非常详细)
pytorch Vs tensorflow

Tensorflow来源: 由较低级别的符号计算库(例如: Theano) 和 较高级别的网络规范库(例如:Blocks 和 Lasagne)组合而成。

TensorFlow的劣势: 1.x API混乱冗余;2.x重点关注tf.keras,弃用其他API。但是1.x 和2.x 的兼容性堪忧。

TensorFlow的计算方式: 创建数据流图,将数据放入数据流图中计算。数据流图中的节点表示数学操作(op:operation),连线表示tensor 流动的通道。每个节点获得若干个tensor,执行计算后产生若干个tensor。数据流图在会话(Session)中启动运行。

import tensorflow as tf

1.Graph对象

计算图–可以认为是详细的流程图,其包括每一步的操作[op]和变量名字。
显式构建,graph构造函数无需接受任何参数

g = tf.Graph()
with g.as_default():#创建一些OP;它们将被添加到Graph的对象g中a = tf.mul(2,3)

隐式构建,当Tensorflow库被加载时,它会自动的创建一个Graph对象,并将 其作为默认的数据流图。获取默认数据流图具柄:

default_graph = tf.get_default_graph

2.Session对象

session负责分配资源,计算operation, 得出结果。 Session构造函数可接受3个参数。

  1. target 指定执行引擎,默认值为空字符串。在分布式训练中,用于连接不同的tf.train.server.
  2. graph 指定将要加载的Graph 对象, 默认值None(使用默认数据流图)。
  3. config 指定session 对象的配置参数,例如CPU、GPU使用数目、数据流图优化参数、日志选项等。

使用run 来运行相应的计算操作,得到fetches中的张量值。tf.Session.run()函数返回值为fetches指定的执行结果。如果fetches是一个元素就返回一个值;若fetches是一个list,则返回list的值,若fetches是一个字典类型,则返回和fetches同keys的字典。

session.run( fetches, feed_dict=None, options=None, run_metadata=None)

Session的开启涉及具体运算,比较消耗资源。在使用结束后,建议关闭Session。
-> 手动关闭关闭session

a = tf.constant(1, dtype=tf.int8)
b = tf.constant(2, dtype=tf.int8)
res= a + b
sess = tf.Session()             # 加载默认数据流图
sess.run(res)                   # 执行运算
sess.close()                    # 手动关闭session

->自动关闭session 使用with来限定session 的作用范围

a = tf.constant(1, dtype=tf.int8)
b = tf.constant(2, dtype=tf.int8)
res= a + b
with tf.Session() as sess:      # 运算结束后session自动关闭sess.run(res)               # 执行运算res.eval()                  # tensor eval() 方法和 sess.run(res)效果一致

参考文档:TensorFlow中Session的使用

3.Variabels变量

Variabels 类型的参数可通过梯度下降更新、训练。必须明确的初始化而且可以通过Saver保存到磁盘上。
定义Variabels 类型的参数: 使用tf.Variable(tensor)封装相应的tensor

weights  = tf.Variable(tf.random_normal([784, 200], stddev=0.35),name="weights")
biases  = tf.Variable(tf.zeros([200]), name="biases")

在graph 中若含有variabels 类型的变量,必须使用在session中显式调用 初始化函数。
-> 全量variable 初始化 tf.global_variables_initializer()

# 含有tf.Variable的环境下,因为tf中建立的变量是没有初始化的,
# 在debug时还不是一个tensor,而是一个Variable变量类型
tensor = tf.Variable(tf.random_normal(shape=[10]))
init = tf.global_variables_initializer()
with tf.Session() as sess:sess.run(init)  # initialization variablesprint(sess.run(tensor))

-> 部分variable 初始化 tf.variables_initializer()

var1 = tf.Variable(0,name="initialize_me")
var2 = tf.Variable(1,name="no_initialization")
init = tf.variables_initializer([var1],name="init_var1")
with tf.Session() as sess:sess.run(init)

4. placeholders与feed_dict

tf.placeholder 创建占位符号,比如模型的输入数据,其只有在训练与预测时才会有值。赋值时,使用feed_dict 进行赋值操作。

import numpy as np
x = tf.placeholder(tf.float32, shape=(10, 10))         # 10行10列
y = tf.matmul(x, x) # 矩阵乘
with tf.Session() as sess:  #print(sess.run(y))  # ERROR: 此处x还没有赋值.  rand_array = np.random.rand(1024, 1024)  print(sess.run(y, feed_dict={x: rand_array}))  # Will succeed.

5. tf.train.Saver() 模型参数保存、加载

v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
init = tf.initialize_all_variables()
# Add ops to save and restore all the variables.
saver = tf.train.Saver()# Later, launch the model, initialize the variables, do some work, save the variables to disk.
with tf.Session() as sess:sess.run(init)save_path = saver.save(sess, "/tmp/model.ckpt")print "Model saved in file: ", save_path

模型恢复时,variable 不需要初始化

v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
saver = tf.train.Saver()# Later, launch the model, use the saver to restore variables from disk, and
# do some work with the model.
with tf.Session() as sess:saver.restore(sess, "/tmp/model.ckpt")print "Model restored."

TensorFlow(1)-模型相关基础概念相关推荐

  1. WiFi相关基础概念

    转自:https://blog.csdn.net/lbaihao/article/details/73250798 一.WiFi相关基础概念 1.什么是wifi 我们看一下百度百科是如何定义的: Wi ...

  2. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念

    linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  3. linux驱动内核哪个文件夹,linux设备驱动归纳总结(一):内核的相关基础概念...

    linux设备驱动归纳总结(一):内核的相关基础概念 1. 内核与 linux 设备驱动的作用与关系 内核:用于管理软硬件资源,并提供运行环境.如分配 4G 虚拟空间等. linux 设备驱动:是连接 ...

  4. 【Linux开发】linux设备驱动归纳总结(二):模块的相关基础概念

    linux设备驱动归纳总结(二):模块的相关基础概念 系统平台:Ubuntu 10.04 开发平台:S3C2440开发板 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  5. SEO究竟是什么?SEO的相关基础概念介绍

    可能对于刚接触优化的新手来说,要明白SEO是什么,只有了解之后才能有进一步的学习以及提升.在互联网搜索引擎中,已经有了大量的相关资料以及定义.不同的人会用不同的语言来解释SEO是什么,但是最终的结果是 ...

  6. linux设备驱动归纳总结(一)内核的相关基础概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-59413.html linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxx ...

  7. 【tensorflow】tensorflow相关基础概念

    参考极客时间 彭靖田老师:TensorFlow快速入门与实战 课程链接 0 数据流图 TensorFlow 是一个编程系统, 使用图来表示计算任务.图中每个节点称作operation. 通过一个可执行 ...

  8. DL相关基础概念-待补充

    一.Deep Learning相关 来源于 深度学习-百度百科 1.1 深度学习 深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)领域中一个新的研究方向 ...

  9. 【认识 NVIDIA GPU】GPU相关基础概念介绍

    系列文章目录 文章目录 系列文章目录 前言 基本概念 CUDA(Compute Unified Device Architecture) SP(Stream Processor) SM(Streami ...

最新文章

  1. python怎么发送代码文件_python 通过 socket 发送文件的实例代码
  2. 数据结构与算法:二分查找
  3. ceq c matlab,求一个函数MATLAB的编程,求大神指教。
  4. 计算机网路网络层之IP协议(4)——有类IP地址
  5. LAN7500 Mac OS X Device Driver
  6. 8000401a 因为配置标志不正确 错误及解决办法
  7. matlab 折线图 标记_matlab画折线图标记线
  8. 西瓜书第三章习题及答案
  9. 冰蝎(Behinder)双击无法打开
  10. 开源公告|腾讯tmagic-editor页面可视化编辑器对外开源
  11. 笔记本ghostwin10系统后只有C盘了别的盘的数据怎样找到
  12. RK3588 CPU GPU DDR NPU定频和性能模式设置
  13. 印象笔记 linux 命令行,在Linux的命令行下使用Evernote的教程
  14. oracle sql查询取整,Oracle SQL语句操作数字:取整、四舍五入及格式化
  15. 真是没想到!原来微信还有这么厉害的翻译功能,一键轻松翻译
  16. Selenium原理探秘
  17. 学一点SQL注入基础
  18. NIS (Network Information Service)
  19. Thirteen Day
  20. 4399笔试面试——感受

热门文章

  1. 冠榕智能灯光控制协议分析(node-controller)
  2. python归一化 增大差异_Python逻辑回归模型原理及实际案例应用
  3. grpc入门到精通_Spring Cloud 从入门到精通(一)Nacos 服务中心初探
  4. Java学习笔记—生产者和消费者模式
  5. idea查询类_Spring Security入门(三): 基于自定义数据库查询的认证实战
  6. 【转】2.1(译)关于async与await的FAQ
  7. 【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码
  8. 与计算机相关的课外活动,课外活动学生论文,关于应用型院校计算机专业课外活动相关参考文献资料-免费论文范文...
  9. sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库
  10. hypixel服务器免费低延迟ip,国服hypixel服务器ip