#tf.Session.run也接收一个可选的参数options
#能够让你来配置训练时的参数
#run_metadata参数让你能够收集关于训练的元信息
#列如你可以使用这些可选项来追踪执行的信息
import tensorflow as tf
y = tf.matmul([[37.0, -23.0], [1.0, 4.0]], tf.random_uniform([2, 2]))
with tf.Session() as sess:
# Define options for the sess.run() call
options = tf.RunOptions()
options.output_partition_graphs = True
options.trace_level = tf.RunOptions.FULL_TRACE # Define a container for the returned metadata
metadata = tf.RunMetadata() sess.run(y, options=options, run_metadata=metadata) # Print the subgraphs that executed on each device
print(metadata.partition_graphs) # Print the timings of each operation that executed
print(metadata.step_stats)

下面是输出的结果:

2018-02-17 11:12:58.518912: I C:\tf_jenkins\workspace\rel-win\M\windows\PY\35\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
[node {
name: "MatMul/a"
op: "Const"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "value"
value {
tensor {
dtype: DT_FLOAT
tensor_shape {
dim {
size: 2
}
dim {
size: 2
}
}
tensor_content: "\000\000\024B\000\000\270\301\000\000\200?\000\000\200@"
}
}
}
}
node {
name: "random_uniform/shape"
op: "Const"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "dtype"
value {
type: DT_INT32
}
}
attr {
key: "value"
value {
tensor {
dtype: DT_INT32
tensor_shape {
dim {
size: 2
}
}
tensor_content: "\002\000\000\000\002\000\000\000"
}
}
}
}
node {
name: "random_uniform/RandomUniform"
op: "RandomUniform"
input: "random_uniform/shape"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "T"
value {
type: DT_INT32
}
}
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "seed"
value {
i: 0
}
}
attr {
key: "seed2"
value {
i: 0
}
}
}
node {
name: "random_uniform/sub"
op: "Const"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "value"
value {
tensor {
dtype: DT_FLOAT
tensor_shape {
}
tensor_content: "\000\000\200?"
}
}
}
}
node {
name: "random_uniform/mul"
op: "Mul"
input: "random_uniform/RandomUniform"
input: "random_uniform/sub"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
}
node {
name: "random_uniform/min"
op: "Const"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "dtype"
value {
type: DT_FLOAT
}
}
attr {
key: "value"
value {
tensor {
dtype: DT_FLOAT
tensor_shape {
}
float_val: 0.0
}
}
}
}
node {
name: "random_uniform"
op: "Add"
input: "random_uniform/mul"
input: "random_uniform/min"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
}
node {
name: "MatMul"
op: "MatMul"
input: "MatMul/a"
input: "random_uniform"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
attr {
key: "transpose_a"
value {
b: false
}
}
attr {
key: "transpose_b"
value {
b: false
}
}
}
node {
name: "_retval_MatMul_0_0"
op: "_Retval"
input: "MatMul"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
attr {
key: "T"
value {
type: DT_FLOAT
}
}
attr {
key: "index"
value {
i: 0
}
}
}
library {
}
versions {
producer: 24
}
]
dev_stats {
device: "/job:localhost/replica:0/task:0/device:CPU:0"
node_stats {
node_name: "_SOURCE"
all_start_micros: 1518837178526738
op_start_rel_micros: 12
op_end_rel_micros: 12
all_end_rel_micros: 21
memory {
allocator_name: "cpu"
}
timeline_label: "_SOURCE = NoOp()"
scheduled_micros: 1518837178526691
memory_stats {
}
}
node_stats {
node_name: "MatMul/a"
all_start_micros: 1518837178526765
op_end_rel_micros: 5
all_end_rel_micros: 7
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
dim {
size: 2
}
dim {
size: 2
}
}
allocation_description {
requested_bytes: 16
allocator_name: "cpu"
ptr: 1903518068800
}
}
}
timeline_label: "MatMul/a = Const()"
scheduled_micros: 1518837178526759
memory_stats {
host_persistent_memory_size: 16
host_persistent_tensor_alloc_ids: -1
}
}
node_stats {
node_name: "random_uniform/shape"
all_start_micros: 1518837178526773
op_start_rel_micros: 1
op_end_rel_micros: 2
all_end_rel_micros: 2
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_INT32
shape {
dim {
size: 2
}
}
allocation_description {
requested_bytes: 8
allocator_name: "cpu"
ptr: 1903518066368
}
}
}
timeline_label: "random_uniform/shape = Const()"
scheduled_micros: 1518837178526772
memory_stats {
host_persistent_memory_size: 8
host_persistent_tensor_alloc_ids: -1
}
}
node_stats {
node_name: "random_uniform/sub"
all_start_micros: 1518837178526780
op_end_rel_micros: 1
all_end_rel_micros: 1
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
}
allocation_description {
requested_bytes: 4
allocator_name: "cpu"
ptr: 1903518066240
}
}
}
timeline_label: "random_uniform/sub = Const()"
scheduled_micros: 1518837178526775
memory_stats {
host_persistent_memory_size: 4
host_persistent_tensor_alloc_ids: -1
}
}
node_stats {
node_name: "random_uniform/min"
all_start_micros: 1518837178526782
op_end_rel_micros: 1
all_end_rel_micros: 2
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
}
allocation_description {
requested_bytes: 4
allocator_name: "cpu"
ptr: 1903518069120
}
}
}
timeline_label: "random_uniform/min = Const()"
scheduled_micros: 1518837178526781
memory_stats {
host_persistent_memory_size: 4
host_persistent_tensor_alloc_ids: -1
}
}
node_stats {
node_name: "random_uniform/RandomUniform"
all_start_micros: 1518837178526785
op_start_rel_micros: 1
op_end_rel_micros: 11
all_end_rel_micros: 12
memory {
allocator_name: "cpu"
total_bytes: 16
peak_bytes: 16
live_bytes: 16
allocation_records {
alloc_micros: 1518837178526792
alloc_bytes: 16
}
allocation_records {
alloc_micros: 1518837178526870
alloc_bytes: -16
}
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
dim {
size: 2
}
dim {
size: 2
}
}
allocation_description {
requested_bytes: 16
allocated_bytes: 16
allocator_name: "cpu"
allocation_id: 1
has_single_reference: true
ptr: 1903518118336
}
}
}
timeline_label: "random_uniform/RandomUniform = RandomUniform(random_uniform/shape)"
scheduled_micros: 1518837178526776
memory_stats {
}
}
node_stats {
node_name: "random_uniform/mul"
all_start_micros: 1518837178526798
op_start_rel_micros: 1
op_end_rel_micros: 11
all_end_rel_micros: 12
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
dim {
size: 2
}
dim {
size: 2
}
}
allocation_description {
requested_bytes: 16
allocated_bytes: 16
allocator_name: "cpu"
allocation_id: 1
ptr: 1903518118336
}
}
}
timeline_label: "random_uniform/mul = Mul(random_uniform/RandomUniform, random_uniform/sub)"
scheduled_micros: 1518837178526797
memory_stats {
}
}
node_stats {
node_name: "random_uniform"
all_start_micros: 1518837178526812
op_end_rel_micros: 8
all_end_rel_micros: 9
memory {
allocator_name: "cpu"
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
dim {
size: 2
}
dim {
size: 2
}
}
allocation_description {
requested_bytes: 16
allocated_bytes: 16
allocator_name: "cpu"
allocation_id: 1
ptr: 1903518118336
}
}
}
timeline_label: "random_uniform = Add(random_uniform/mul, random_uniform/min)"
scheduled_micros: 1518837178526810
memory_stats {
}
}
node_stats {
node_name: "MatMul"
all_start_micros: 1518837178526823
op_end_rel_micros: 45
all_end_rel_micros: 47
memory {
allocator_name: "cpu"
total_bytes: 16
peak_bytes: 16
live_bytes: 16
allocation_records {
alloc_micros: 1518837178526826
alloc_bytes: 16
}
}
output {
tensor_description {
dtype: DT_FLOAT
shape {
dim {
size: 2
}
dim {
size: 2
}
}
allocation_description {
requested_bytes: 16
allocated_bytes: 16
allocator_name: "cpu"
allocation_id: 1
has_single_reference: true
ptr: 1903518061312
}
}
}
timeline_label: "MatMul = MatMul(MatMul/a, random_uniform)"
scheduled_micros: 1518837178526821
memory_stats {
}
}
node_stats {
node_name: "_retval_MatMul_0_0"
all_start_micros: 1518837178526872
op_start_rel_micros: 1
op_end_rel_micros: 3
all_end_rel_micros: 5
memory {
allocator_name: "cpu"
}
timeline_label: "_retval_MatMul_0_0 = _Retval(MatMul)"
scheduled_micros: 1518837178526870
memory_stats {
}
}
}

128、TensorFlow元数据MetaData的更多相关文章

  1. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇] 通过<实现篇>对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding ...

  2. WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]

    原文:WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇] 元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框 ...

  3. 数据库元数据MetaData

    本篇介绍数据库方面的元数据(MetaData)的有关知识.元数据在建立框架和架构方面是特别重要的知识,再下一篇我们仿造开源数据库工具类DbUtils就要使用数据库的元数据来创建自定义JDBC框架. 在 ...

  4. 【收藏】关于元数据(Metadata)和元数据管理,这是我的见过最全的解读!

    本文主要从元数据的定义.作用.元数据管理现状.管理标准和元数据管理功能等方面讲述了我对元数据(Metadata)和元数据管理的认知及理解. 元数据管理 一.元数据的定义 按照传统的定义,元数据(Met ...

  5. 元数据metadata 对IO有多大影响

    日志文件系统(journaling file systems)可防止系统崩溃时导致的数据不一致问题.对文件系统元数据(metadata)的更改都被保存在一份单独的日志里,当发生 系统崩溃时可以根据日志 ...

  6. 元数据(meta-data)

    本章所介绍的元数据的知识,可能在定制系统时会用到.因为那是后需要修改底层框架的一些内容 一.元数据的定义 在AndroidManifest.xml中如下书写: <activity android ...

  7. 元数据Metadata

    元数据是什么? 元数据(Metadata),又称中介数据.中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置.历史数据. ...

  8. 元数据MetaData(五)

    JDBC的元数据接口有: DatabaseMetaData数据库级 ResultSetMetaData结果集级 一.DatabaseMetaData 在对数据源进行连接以后,得到一个Connectio ...

  9. Android MediaMetadataRetriever 读取多媒体文件信息,元数据(MetaData)

    音乐播放器通常需要获取歌曲的专辑.作者.标题.年代等信息,将这些信息显示到UI界面上. 1.一种方式:解析媒体文件   命名空间:android.media.MediaMetadataRetrieve ...

随机推荐

  1. web 前端3 javascript基础

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  2. raid10 五块硬盘/raid5(三块使用,两块备份)

    raid 10五块硬盘 第一步:在虚拟机中在添加五块硬盘 第二步:使用mdadm命令创建RAID10,名称为“/dev/md0/” -C代表创建操作,-v显示创建过程,-a yes检查RAID名称,- ...

  3. GitHub Pages建立第一个静态页面

    1.创建仓库 创建仓库点击右上角的加号,选择newrepository.然后对仓库信息进行设置.注意箭头标识的几个地方.仓库名必须是http://username.github.io的形式.必须勾选p ...

  4. [Git] 009 逆转未来

    1. 想逆转未来,得先知道时间线 1.1 git log 1.2 git log --oneline 此命令的显示结果比 git log 简洁 1.3 git reflog 此命令显示的记录比前两者完 ...

  5. 剑指Offer编程题(Java实现)——数组中的重复数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  6. JDK11 | 第三篇 : 局部变量类型推断

    文章首发于公众号<程序员果果> 地址 : https://mp.weixin.qq.com/s/PB0Mw4bzjDML7nto2M8x2w 一.简介 Java局部变量类型推断(LVTI) ...

  7. Python中map和reduce函数??

    ①从参数方面来讲: map()函数: map()包含两个参数,第一个是参数是一个函数,第二个是序列(列表或元组).其中,函数(即map的第一个参数位置的函数)可以接收一个或多个参数. reduce() ...

  8. 在Eclipse-jee-neon中配置springsource-tool-suite

    今天为大家展示如何在Eclipse-jee-neon中配置spring的插件(springsource-tool-suit): 打开Eclipse,查看自己的版本. Help –> About ...

  9. python基础--4 元祖

    #元组,元素不可被修改,不能被增加或者删除 #tuple,有序 tu=(11,22,33,44,55,33) #count 获取指定元素在元祖中出现的次数 print(tu.count(33)) #i ...

  10. objectMaaper 反序列化json字段多于或少于实体处理

    两种方式 1 忽略json上未知的字段 设置实体类注解 @JsonIgnoreProperties(ignoreUnknown = true) public class Foo { ... } 2 配 ...