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.

latency(graph)

Get latency of graph. It is an abstract method.

Parameters:graph (GrapWrapper | Program) – The graph to be evaluated.
Returns:The latency of given graph on current evaluator.
Return type:latency(float)
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.

latency(graph)

Get latency of graph. It is an abstract method.

Parameters:graph (GrapWrapper | Program) – The graph to be evaluated.
Returns:The latency of given graph on current evaluator.
Return type:latency(float)
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)

paddleslim.analysis.model_size module

paddleslim.analysis.model_size.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