serialize_persistables

paddle.static. serialize_persistables ( feed_vars: Tensor | list[Tensor], fetch_vars: Tensor | list[Tensor], executor: Executor, **kwargs: Unpack[_SerializePersistablesKwargs] ) → bytes [source]

Serialize parameters using given executor and default main program according to feed_vars and fetch_vars.

Parameters
  • feed_vars (Tensor | list[Tensor]) – Tensor needed by inference.

  • fetch_vars (Tensor | list[Tensor]) – Tensor returned by inference.

  • kwargs –

    Supported keys including program. Attention please, kwargs is used for backward compatibility mainly.

    • program(Program): specify a program if you don’t want to use default main program.

Returns

serialized program.

Return type

bytes

Examples

>>> import paddle
>>> paddle.enable_static()
>>> with paddle.pir_utils.OldIrGuard():
...     path_prefix = "./infer_model"
...
...     # User defined network, here a softmax regression example
...     image = paddle.static.data(name='img', shape=[None, 28, 28], dtype='float32')
...     label = paddle.static.data(name='label', shape=[None, 1], dtype='int64')
...     predict = paddle.static.nn.fc(image, 10, activation='softmax')
...
...     loss = paddle.nn.functional.cross_entropy(predict, label)
...
...     exe = paddle.static.Executor(paddle.CPUPlace())
...     exe.run(paddle.static.default_startup_program())
...
...     # serialize parameters to bytes.
...     serialized_params = paddle.static.serialize_persistables([image], [predict], exe)
...
...     # deserialize bytes to parameters.
...     main_program = paddle.static.default_main_program()
...     deserialized_params = paddle.static.deserialize_persistables(main_program, serialized_params, exe)