Files
nvidia--tensorrt/samples/python/stream_writer/README.md
T
wehub-resource-sync c8a779b1bb
Docker Image CI / build-ubuntu2004 (push) Waiting to run
chore: import upstream snapshot with attribution
2026-07-13 13:36:55 +08:00

73 lines
2.5 KiB
Markdown

# TensorRT Python Sample: Stream Writer
This sample demonstrates how to use the TensorRT Python API to serialize an engine directly to a custom stream using the `IStreamWriter` interface, rather than to a file or in-memory buffer. This is useful for advanced scenarios where you want to control how and where the engine bytes are written (e.g., to a network socket, custom buffer, or in-memory stream).
## What does this sample do?
- Builds a simple TensorRT network with two convolutional layers and ReLU activations.
- Implements a custom `StreamWriter` class inheriting from `trt.IStreamWriter` to collect serialized engine bytes.
- Serializes the engine using `builder.build_serialized_network_to_stream()` and writes the bytes to the custom stream.
- Deserializes the engine from the collected bytes to verify correctness.
## File Structure
- `build.py`: Main script containing the sample code.
- `README.md`: This document.
## How to Run
1. **Install Requirements**
Make sure you have the following Python packages installed:
- `tensorrt`
- `numpy`
- `polygraphy`
You can install Polygraphy via pip:
```
pip install polygraphy
```
The `tensorrt` Python package is typically provided by NVIDIA as a wheel file.
2. **Run the Sample**
```
python3 build.py
```
You should see output indicating the network is constructed, the engine is built and serialized to the stream, and then deserialized successfully.
## Key Concepts
- **IStreamWriter**: An interface in TensorRT that allows you to define custom logic for writing serialized engine bytes. You must implement the `write(self, data)` method.
- **build_serialized_network_to_stream**: A method that serializes the network and writes the bytes to the provided `IStreamWriter` instance.
## Example Output
```
Constructing network...
[I] TF32 is disabled by default. Turn on TF32 for better performance with minor accuracy differences.
[I] Configuring with profiles:[
Profile 0:
{input [min=[1, 3, 224, 224], opt=[1, 3, 224, 224], max=[1, 3, 224, 224]]}
]
Building engine and serializing to stream...
The total bytes written to stream is 267836
Deserializing engine from stream...
Engine deserialized successfully
```
# License
For terms and conditions for use, reproduction, and distribution, see the [TensorRT Software License Agreement](https://docs.nvidia.com/deeplearning/sdk/tensorrt-sla/index.html) documentation.
# Changelog
September 2025
Initial release of this sample.
# Known issues
There are no known issues in this sample.