深度学习模型迁移到VisualC++ demo

深度学习模型迁移到VisualC++ demo

    • 1:demo例子
      • 1:运行上面的python程序,我在本地的jupyter上运行失败了,转到colab,模型下载速度超级快。运行完成之后就可以将保存的restnet.pt模型下载到本地。
      • 2:下载libtorch,这个就不多说了。
    • 2:在本地使用CMake利用CMakeList.txt创建工程
      • 1:创建一个文件夹,将demo中的CMakeList.txt放在下面,使用CMake生成工程。
      • 2:VisualC++工程里面的问题
        • (1)我打开之后出现了下面三个工程,把另外两个从解决方案里面右键选择排除即可。
        • (2)此时,如果使用demo中提供的main函数,会出现错误如下问题,点击连接,改了就行。记得把里面的pt文件路径和图片加载的路径改成自己的。
        • (3)生成时没有问题了,但执行的时候还会报错误。缺少dll文件,首先是缺libtorch的dll文件,然后是系统缺文件。

1:demo例子

链接: 利用LibTorch部署PyTorch模型.
大体是按照教程来做的,但由于作者没有详细说明,初学者也会踩了不少坑。

1:运行上面的python程序,我在本地的jupyter上运行失败了,转到colab,模型下载速度超级快。运行完成之后就可以将保存的restnet.pt模型下载到本地。

2:下载libtorch,这个就不多说了。

如果不准备使用cmake,可以参考链接: Win10+VS2017配置LibTorch开发环境,不过麻烦的是需要自己去导入各种需要的包,opencv,torch这些

2:在本地使用CMake利用CMakeList.txt创建工程

大体上步骤和利用 cmake 工具生成 Visual Studio 工程文件类似。

1:创建一个文件夹,将demo中的CMakeList.txt放在下面,使用CMake生成工程。

比如,我在此处创建了一个PytorchC的文件夹,在Cmake之前还需要在其下创建一个文件夹,不如build(对于编译源码是这样,此处只是为了创建一个工程,就按照下面的vsprojects创建了)
深度学习模型迁移到VisualC++ demo_第1张图片
在Configure之前,需要更改CMakefile如下,同时需要在vsprojects文件夹下创建main.cpp文件。不然按照demo中提供的程序无法找到opencv库。,当然此处的路径是自己的opencv和libtorch的路径了。

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)

project(example_torch)
set(CMAKE_PREFIX_PATH "G:/libtorch") 
set(OpenCV_DIR "E:/opencv/opencv/build")

find_package(Torch REQUIRED)
find_package(OpenCV  QUIET)
if(NOT OpenCV_FOUND)
    find_package(OpenCV 2.4.3 QUIET)
    if(NOT OpenCV_FOUND)
        message(FATAL_ERROR "OpenCV > 2.4.3 not found.")
    endif()
endif()
add_executable(${PROJECT_NAME} "main.cpp")
target_link_libraries(${PROJECT_NAME} ${TORCH_LIBRARIES} ${OpenCV_LIBS})
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)

Configure之后可以点击Generate,然后再文件夹里面双击.sin文件就可以打开工程。

2:VisualC++工程里面的问题

(1)我打开之后出现了下面三个工程,把另外两个从解决方案里面右键选择排除即可。

深度学习模型迁移到VisualC++ demo_第2张图片

(2)此时,如果使用demo中提供的main函数,会出现错误如下问题,点击连接,改了就行。记得把里面的pt文件路径和图片加载的路径改成自己的。

libtorch error C2440: “初始化”: 无法从“torch::jit::script::Module”转换…的问题

(3)生成时没有问题了,但执行的时候还会报错误。缺少dll文件,首先是缺libtorch的dll文件,然后是系统缺文件。

C++部署Pytorch(Libtorch)出现问题、错误汇总

至此,应该是可以正确运行了。

你可能感兴趣的:(C++,深度学习,计算机视觉)