【tensorrt】——error: invalid new-expression of abstract class type ‘torch2trt::InterpolatePlugin’

本文主要是介绍【tensorrt】——error: invalid new-expression of abstract class type ‘torch2trt::InterpolatePlugin’,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tensorrt

给tensorrt写插件的时候,报错:

interpolate.cpp:63:93: error: invalid new-expression of abstract class type ‘torch2trt::InterpolatePlugin’

因为还有父类的虚函数没有实现。

可以通过一个简单的类实现进行测试,所有的函数不需要实现,这样看有哪些虚函数。比如:

class InterpolatePlugin : public IPluginV2 
{
public:InterpolatePlugin(std::vector<int64_t> size, std::string mode, bool align_corners) {};InterpolatePlugin(const char *data, size_t length){};// create from serialized dataInterpolatePlugin(const std::string &data) {  };int getNbOutputs() const override {};Dims getOutputDimensions(int index, const Dims* inputs, int nbInputDims) override{    };int initialize() override{};void terminate() override{};size_t getWorkspaceSize(int maxBatchSize) const override{};int enqueue(int batchSize, const void* const* inputs, void** outputs, void* workspace, cudaStream_t stream) override{        };size_t getSerializationSize() const override{};void serialize(void* buffer) const override{};void configureWithFormat(const Dims* inputDims, int nbInputs, const Dims* outputDims, int nbOutputs, DataType type,PluginFormat format, int maxBatchSize) override{};bool supportsFormat(DataType type, PluginFormat format) const override{};const char* getPluginType() const override{};const char* getPluginVersion() const override{};void destroy() override{};IPluginV2* clone() const override{};void setPluginNamespace(const char* libNamespace) override{}const char* getPluginNamespace() const override{}private:// float mNegSlope;// int mBatchDim;// configured by userstd::vector<int64_t> size;std::string mode;bool align_corners;
};

上面是IPluginV2, 下面是IPluginV2DynamicExt类的最简单,包含了所有虚函数。


class InterpolatePlugin : public IPluginV2DynamicExt
{
public:InterpolatePlugin(std::vector<int64_t> size, std::string mode, bool align_corners) {};InterpolatePlugin(const char *data, size_t length){};// create from serialized dataInterpolatePlugin(const std::string &data) {  };// ~InterpolatePlugin() override = default;// IPluginV2 methodsconst char* getPluginType() const override{};const char* getPluginVersion() const override{};int getNbOutputs() const override{};int initialize() override{};void terminate() override{};size_t getSerializationSize() const override{};void serialize(void* buffer) const override{};void destroy() override{};void setPluginNamespace(const char* libNamespace) override{};const char* getPluginNamespace() const override{};// void setClipParam(bool clip){};// IPluginV2Ext methodsnvinfer1::DataType getOutputDataType(int index, const nvinfer1::DataType* inputType, int nbInputs) const override{};// IPluginV2DynamicExt methodsIPluginV2DynamicExt* clone() const override{return new InterpolatePlugin(size, mode, align_corners);};DimsExprs getOutputDimensions(int outputIndex, const DimsExprs* inputs, int nbInputs, IExprBuilder& exprBuilder) override{};bool supportsFormatCombination(int pos, const PluginTensorDesc* inOut, int nbInputs, int nbOutputs) override{};void configurePlugin(const DynamicPluginTensorDesc* in, int nbInputs, const DynamicPluginTensorDesc* out, int nbOutputs) override{};size_t getWorkspaceSize(const PluginTensorDesc* inputs, int nbInputs, const PluginTensorDesc* outputs, int nbOutputs) const override{};int enqueue(const PluginTensorDesc* inputDesc, const PluginTensorDesc* outputDesc, const void* const* inputs,void* const* outputs, void* workspace, cudaStream_t stream) override{};private:std::vector<int64_t> size;std::string mode;bool align_corners;
};

这篇关于【tensorrt】——error: invalid new-expression of abstract class type ‘torch2trt::InterpolatePlugin’的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056760

相关文章

#error用法

/* *检查编译此源文件的编译器是不是C++编译器 *如果使用的是C语言编译器则执行#error命令 *如果使用的是 C++ 编译器则跳过#error命令 */ #ifndef __cplusplus #error 亲,您当前使用的不是C++编译器噢! #endif #include <stdio.h> int main() {

brew install opencv@2 时报错 Error: Can't create update lock in /usr/local/var/homebrew/locks!

解决方案,报错里已经说明了: 我的解决方案: sudo chown -R "$USER":admin /usr/local   stackoverflow上的答案 I was able to solve the problem by using chown on the folder: sudo chown -R "$USER":admin /usr/local Also you'

BD错误集锦8——在集成Spring MVC + MyBtis编写mapper文件时需要注意格式 You have an error in your SQL syntax

报错的文件 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.yuan.dao.YuanUserDao"><!

BD错误集锦3——ERROR: Can't get master address from ZooKeeper; znode data == null

hbase集群没启动,傻子!   启动集群 [s233 s234 s235]启动zk集群 $>zkServer.sh start $>zkServer.sh status   [s233] 启动dfs系统 $>start-dfs.sh 如果s237 namenode启动失败,则 [s237] $>hadoop-daemon.sh start namenode [s233]启动yarn集群

BD错误集锦1——[Hive]ERROR StatusLogger No log4j2 configuration file found. Using default configuration:

错误描述:在使用IDEA进行jdbc方式连接到hive数据仓库时,出现以下错误:                ERROR StatusLogger No log4j2 configuration file found. 问题原因:缺少log4j2.xml文件   <?xml version="1.0" encoding="UTF-8"?><Configuration><Appender

【鸿蒙】ERROR_GET_BUNDLE_INSTALLER_FAILED

错误信息 [ERROR_GET_BUNDLE_INSTALLER_FAILED] Troubleshooting guide $ hdc file send D:\Huawei\devEcoProjects\entry\build\default\outputs\default\entry-default-unsigned.hap /sdcard/e8a215ea7be1444197e6a58e

Class 对象在执行引擎中的初始化过程

一个 class 文件被加载到内存中需要经过 3 大步:装载、链接、初始化。 装载 装载是指 Java 虚拟机查找 .class 文件并生成字节流,然后根据字节流创建 java.lang.Class 对象的过程。 链接 链接过程分为 3 步:验证、准备、解析。 验证: 初始化 这是 class 加载的最后一步,这一阶段是执行类构造器方法的过程,并真正初始化类变量。 1.文件格式检验:检

github 报错 git fatal: unable to write new index file

错误一:git fatal: unable to write new index file主要原因就是服务器磁盘空间不够导致的,增加服务器空间就OK了在百度上面搜索没得到什么有效信息,在gooogle上搜索得到很多有效信息 Finding large directories with something like the following helped clean up some log fi

Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接

在进行参数化读取时发现一个问题: 发现问题: requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=8081): Max retries exceeded with url: /jwshoplogin/user/update_information.do (Caused by NewConn

QT 5.8.0 msvc_2015 64bit版本编译错误:-1: error: LNK1158: 无法运行“rc.exe”

一开始安装的时候我出现了另一种错误,换着D盘E盘装了几遍之后,出现了:-1: error: LNK1158: 无法运行“rc.exe”这个错误。 首先,我的系统是Windows10 1903版 64bit QT版本是 5.8.0  msvc_2015 64版 解决方法是将 C:\Program Files (x86)\Windows Kits\8.1\bin\x86\rc.exe, C: