symforce.codegen.backends.pytorch.pytorch_config module#

class PyTorchConfig(doc_comment_line_prefix='', line_length=100, use_eigen_types=False, render_template_config=<factory>, cse_optimizations=None, zero_epsilon_behavior=<factory>, normalize_results=True)[source]#

Bases: CodegenConfig

Code generation config for the PyTorch backend.

Parameters:
  • doc_comment_line_prefix (str) – Prefix applied to each line in a docstring

  • line_length (int) – Maximum allowed line length in docstrings; used for formatting docstrings.

  • use_eigen_types (bool) – Use eigen_lcm types for vectors instead of lists

  • autoformat – Run a code formatter on the generated code

  • custom_preamble – An optional string to be prepended on the front of the rendered template

  • cse_optimizations (Literal['basic'] | ~typing.Sequence[~typing.Tuple[~typing.Callable, ~typing.Callable]] | None) – Optimizations argument to pass to sf.cse

  • zero_epsilon_behavior (ZeroEpsilonBehavior) – What should codegen do if a default epsilon is not set?

  • normalize_results (bool) – Should function outputs be explicitly projected onto the manifold before returning?

  • render_template_config (RenderTemplateConfig) –

doc_comment_line_prefix: str = ''#
line_length: int = 100#
use_eigen_types: bool = False#
classmethod backend_name()[source]#

String name for the backend. This should match the directory name in codegen/backends and will be used to namespace by backend in generated code.

Return type:

str

classmethod template_dir()[source]#

Directory for jinja templates.

Return type:

Path

templates_to_render(generated_file_name)[source]#

Given a single symbolic function’s filename, provide one or more Jinja templates to render and the relative output paths where they should go.

Parameters:

generated_file_name (str) –

Return type:

List[Tuple[str, str]]

printer()[source]#

Return an instance of the code printer to use for this language.

Return type:

CodePrinter

format_matrix_accessor(key, i, j, *, shape)[source]#

Format accessor for 2D matrices.

Raises an index exception if either of the following is false:

0 <= i < shape[0]
0 <= j < shape[1]
Parameters:
Return type:

str

static format_eigen_lcm_accessor(key, i)[source]#

Format accessor for eigen_lcm types.

Parameters:
Return type:

str