#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 { } } }