paddleslim.analysis package¶
-
paddleslim.analysis.
flops
(program, only_conv=True, detail=False)¶ Get FLOPs of target graph.
Parameters: - program (Program) – The program used to calculate FLOPS.
- only_conv (bool) – Just return number of mul-adds in convolution and FC layer if only_conv is true. default: True.
- detail (bool) – Whether to return detail of each convolution layer.
Returns: If detail is true, then return a tuple in format (FLOPs, details), otherwise it will just return FlOPs. The details is a dict whose key is the parameter name of convlution layer and value is the FLOPs of each convolution layer.
Return type: int|tuple
-
paddleslim.analysis.
model_size
(program)¶ Get total value numbers of all parameters.
Parameters: program (fluid.Program) – The program used to calculate model size. Returns: The total count of all parameters. Return type: int
-
class
paddleslim.analysis.
LatencyEvaluator
¶ Bases:
object
Base class of latency evaluator.
-
class
paddleslim.analysis.
TableLatencyEvaluator
(table_file, delimiter=', ')¶ Bases:
paddleslim.analysis.latency.LatencyEvaluator
The evaluator used to get graph’s latency on some devices and infer engines.
Parameters: - table_file (str) – The path of file that records the devices latency of operators.
- delimiter (str) – The delimiter used in table_file.
-
latency
(graph, only_conv=True)¶ Get latency of target graph.
Parameters: - graph (GrapWrapper | Program) – The graph to be evaluated.
- only_conv (bool) – only evaluated convolution layer if only_conv is true. Default: True.
Returns: The latency of given graph on current evaluator.
Return type: latency(float)
Submodules¶
paddleslim.analysis.flops module¶
-
paddleslim.analysis.flops.
flops
(program, only_conv=True, detail=False)¶ Get FLOPs of target graph.
Parameters: - program (Program) – The program used to calculate FLOPS.
- only_conv (bool) – Just return number of mul-adds in convolution and FC layer if only_conv is true. default: True.
- detail (bool) – Whether to return detail of each convolution layer.
Returns: If detail is true, then return a tuple in format (FLOPs, details), otherwise it will just return FlOPs. The details is a dict whose key is the parameter name of convlution layer and value is the FLOPs of each convolution layer.
Return type: int|tuple
paddleslim.analysis.latency module¶
Define latency evaluators that evaluate the performance of mode on devices.
-
class
paddleslim.analysis.latency.
LatencyEvaluator
¶ Bases:
object
Base class of latency evaluator.
-
class
paddleslim.analysis.latency.
TableLatencyEvaluator
(table_file, delimiter=', ')¶ Bases:
paddleslim.analysis.latency.LatencyEvaluator
The evaluator used to get graph’s latency on some devices and infer engines.
Parameters: - table_file (str) – The path of file that records the devices latency of operators.
- delimiter (str) – The delimiter used in table_file.
-
latency
(graph, only_conv=True)¶ Get latency of target graph.
Parameters: - graph (GrapWrapper | Program) – The graph to be evaluated.
- only_conv (bool) – only evaluated convolution layer if only_conv is true. Default: True.
Returns: The latency of given graph on current evaluator.
Return type: latency(float)