serialize_program

paddle.static. serialize_program ( feed_vars, fetch_vars, **kwargs ) [source]

Serialize 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.

    • legacy_format(bool): whether to save inference program in legacy format. Defaults to False.

Returns

serialized program.

Return type

bytes

Examples

>>> import paddle
>>> paddle.enable_static()

>>> 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 the default main program to bytes.
>>> serialized_program = paddle.static.serialize_program([image], [predict])

# deserialize bytes to program
>>> deserialized_program = paddle.static.deserialize_program(serialized_program)