- //!
- //! \brief Builds an engine for preprocessing (mPreprocessorEngine).
- //!
- void SampleDynamicReshape::buildPreprocessorEngine(const SampleUniquePtr<nvinfer1::IBuilder>& builder)
- {
- // Create the preprocessor engine using a network that supports full dimensions (createNetworkV2).
- auto preprocessorNetwork = makeUnique(
- builder->createNetworkV2(1U << static_cast<uint32_t>(NetworkDefinitionCreationFlag::kEXPLICIT_BATCH)));
-
- // Reshape a dynamically shaped input to the size expected by the model, (1, 1, 28, 28).
- auto input = preprocessorNetwork->addInput("input", nvinfer1::DataType::kFLOAT, Dims4{1, 1, -1, -1});
- auto resizeLayer = preprocessorNetwork->addResize(*input);
- resizeLayer->setOutputDimensions(mPredictionInputDims);
- preprocessorNetwork->markOutput(*resizeLayer->getOutput(0));
-
- // Finally, configure and build the preprocessor engine.
- auto preprocessorConfig = makeUnique(builder->createBuilderConfig());
-
- // Create an optimization profile so that we can specify a range of input dimensions.
- auto profile = builder->createOptimizationProfile();
-