25 namespace perception {
30 SLICEPlugin(
const SliceParameter ¶m,
const nvinfer1::Dims &in_dims) {
31 CHECK_GT(param.slice_point_size(), 0);
32 for (
int i = 0; i < param.slice_point_size(); i++) {
33 slice_point_.push_back(param.slice_point(i));
35 axis_ = std::max(param.axis() - 1, 0);
36 input_dims_.nbDims = in_dims.nbDims;
37 CHECK_GT(input_dims_.nbDims, 0);
38 for (
int i = 0; i < in_dims.nbDims; i++) {
39 input_dims_.d[i] = in_dims.d[i];
40 input_dims_.type[i] = in_dims.type[i];
43 for (
size_t i = 0; i < slice_point_.size(); i++) {
45 out_slice_dims_.push_back(slice_point_[i]);
47 out_slice_dims_.push_back(slice_point_[i] - slice_point_[i - 1]);
50 out_slice_dims_.push_back(input_dims_.d[axis_] -
51 slice_point_[slice_point_.size() - 1]);
58 return static_cast<int>(slice_point_.size()) + 1;
61 int nbInputDims)
override {
62 nvinfer1::Dims out_dims = inputs[0];
63 out_dims.d[axis_] = out_slice_dims_[index];
67 void configure(
const nvinfer1::Dims *inputDims,
int nbInputs,
68 const nvinfer1::Dims *outputDims,
int nbOutputs,
69 int maxBatchSize)
override {
70 input_dims_ = inputDims[0];
75 virtual int enqueue(
int batchSize,
const void *
const *inputs,
void **outputs,
76 void *workspace, cudaStream_t stream);
81 char *d =
reinterpret_cast<char *
>(buffer), *a = d;
83 CHECK_EQ(d, a + size);
87 std::vector<int> slice_point_;
88 std::vector<int> out_slice_dims_;
90 nvinfer1::Dims input_dims_;
nvinfer1::Dims getOutputDimensions(int index, const nvinfer1::Dims *inputs, int nbInputDims) override
Definition: slice_plugin.h:60
virtual int enqueue(int batchSize, const void *const *inputs, void **outputs, void *workspace, cudaStream_t stream)
~SLICEPlugin()
Definition: slice_plugin.h:54
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
virtual void terminate()
Definition: slice_plugin.h:56
Definition: slice_plugin.h:28
void serialize(void *buffer) override
Definition: slice_plugin.h:80
void configure(const nvinfer1::Dims *inputDims, int nbInputs, const nvinfer1::Dims *outputDims, int nbOutputs, int maxBatchSize) override
Definition: slice_plugin.h:67
size_t getSerializationSize() override
Definition: slice_plugin.h:78
int getNbOutputs() const override
Definition: slice_plugin.h:57
virtual int initialize()
Definition: slice_plugin.h:55
SLICEPlugin(const SliceParameter ¶m, const nvinfer1::Dims &in_dims)
Definition: slice_plugin.h:30
size_t getWorkspaceSize(int maxBatchSize) const override
Definition: slice_plugin.h:73
SLICEPlugin()
Definition: slice_plugin.h:53