TensorFlow提供profiler来帮助我们更好的了解神经网络的cost,找到时间消耗和空间消耗的瓶颈,从而更好地调整网络结构。下面就让我们来探究一下TensorFlow是如何帮我们来了解我们网络的。
Profiler提供的接口
- tf.profiler.ProfileOptionBuilder() 这是最基本的操作,用做创建Profile
- 通过添加不同的后缀操作来创建不同的profile
- .time_and_memory()创建时间和内存的profile
- .float_operation()创建float operation的profile
- .order_by() 排序输出的结点
- .select(attributes) 选择不同的属性来展示,请参考文档选择支持的attribute
- .trainable_variables_parameter()
- .with_file_output() 输出结果到文件
- .with_max_depth() 设置展示的最大深度
- .with_min_execution_time() 只展示执行时间小于设定值的结点
- .with_stdout_output() 输出到标准输出流
- .with_timeline_output() 生成时间线的json文件
基本流程
... 生成网络结构
# 生成session run的配置, 设置trace_level<