张量流的tfprof输出理论FLOPS吗?



我使用tfprof来介绍机器学习算法。这是样本输出:===================模型分析报告====================================节点名称|#float_ops_tfprofroot( -/3163.86B拖鞋) InceptionResnetv2/inceptionResnetv2/mixed_6a/branch_1/conv2d_0b_3x3/卷积(173.41b/173.41b flops) InceptionResnetv2/inceptionResnetv2/conv2d_4a_3x3/卷积(167.25b/167.25b flops)

在这里,在'167.25b/167.25b flops'中,第二个167.25b表示什么?是理论上的拖鞋吗?

是的,它是理论上的拖鞋。操作可以使用RegisterStatistics注释注册统计信息。

这是一个这样的注册的示例:

@ops.RegisterStatistics("MatMul", "flops")
def _calc_mat_mul_flops(graph, node):
  """Calculates the compute resources needed for MatMul."""
  transpose_a = node.attr["transpose_a"].b
  a_shape = graph_util.tensor_shape_from_node_def_name(graph, node.input[0])
  a_shape.assert_is_fully_defined()
  if transpose_a:
    k = int(a_shape[0])
  else:
    k = int(a_shape[1])
  output_shape = graph_util.tensor_shape_from_node_def_name(graph, node.name)
  output_shape.assert_is_fully_defined()
  output_count = np.prod(output_shape.as_list())
  return ops.OpStats("flops", (k * output_count * 2))

相关内容

  • 没有找到相关文章

最新更新