2017-12-15 14 views
0

マシン学習アルゴリズムをプロファイルするためにtfprofを使用しました。これはサンプル出力です ==================モデル分析レポート==================== ノード名| ( -/3163.86bプ) InceptionResnetV2/InceptionResnetV2/Mixed_6a/Branch_1/Conv2d_0b_3x3 /畳み込み(173.41b/173.41bフロップ) InceptionResnetV2/InceptionResnetV2/Conv2d_4a_3x3 /畳み込み(167.25b/167.25bフロップ)テンソルフローのtfprofは理論上のFLOPSを出力しますか?

位_TFProfRootをfloat_ops

ここで、 '167.25b/167.25b flops'では、2番目の167.25bはどういう意味ですか?それは理論的なフロップですか?

答えて

0

はい、理論的なフロップです。 Opsは、RegisterStatisticsアノテーションを使用して統計情報を登録できます。

Hereは、そのような登録の例である:

@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)) 
関連する問題