2017-12-15 6 views
0

Ich benutzte tfprof, um einen maschinellen Lernalgorithmus zu profilieren. Dies ist eine Beispielausgabe: ================== Modellanalysebericht ====================== Knotenname | # Float_ops _TFProfRoot (-/3163.86b Flops) InceptionResnetV2/InceptionResnetV2/Mixed_6a/branch_1/Conv2d_0b_3x3/Faltung (173.41b/173.41b-Flops) InceptionResnetV2/InceptionResnetV2/Conv2d_4a_3x3/Faltung (167.25b/167.25b-Flops)Hat Tensorflow tfprof theoretische FLOPS?

Hier, in "167.25b/167.25b Flops", was bedeutet die zweite 167.25b? Ist es theoretische Flops?

Antwort

0

Ja, es sind die theoretischen Flops. Ops können Statistiken unter Verwendung der RegisterStatistics Annotation registrieren.

Here ist ein Beispiel für eine solche Anmeldung:

@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)) 
Verwandte Themen