我正在考虑使用this方法来计算使用sess.run的运行操作的计算复杂性,metadata.cost_graph中compute_cost的单位是什么?
例如,运行
tf.reset_default_graph()
y = tf.matmul([[37.0, -23.0], [1.0, 4.0]], tf.random_uniform([2, 2]))
options = tf.RunOptions()
options.trace_level = tf.RunOptions.FULL_TRACE
ops = tf.GraphOptions(build_cost_model=1)
metadata = tf.RunMetadata()
with tf.Session(config=tf.ConfigProto(log_device_placement=True,
graph_options=ops)) as sess:
sess.run(y, options=options, run_metadata=metadata)
print(metadata.cost_graph)
收益
...
node {
name: "MatMul/a"
device: "/job:localhost/replica:0/task:0/device:CPU:0"
id: 2
output_info {
size: 16
alias_input_port: -1
shape {
dim {
size: 2
}
dim {
size: 2
}
}
dtype: DT_FLOAT
}
control_input: 0
compute_cost: 3
persistent_memory_size: 16
}
...