【问题标题】:How to use darknet in my own project?如何在我自己的项目中使用暗网?
【发布时间】:2017-12-23 02:33:46
【问题描述】:

我已经安装了Darknet,我可以从命令行运行它来执行各种任务,例如:

./darknet classifier train cfg/cifar.data cfg/cifar_small.cfg

这将使用cfg/cifar_small.cfg 中指定的网络架构训练分类器 CIFAR 数据。

好的,但是如何在我自己的 C 项目中使用 Darknet?例如,我想在我自己的代码中调用darknet.h 中声明的load_network()train_network()save_weights()network_predict()

我可以将暗网用作静态库或共享库吗?我在网站上没有看到有关如何执行此操作的任何说明。

到目前为止,我唯一的方法是以示例文件夹中示例的样式创建自己的源文件,并修改 darknet.hdarknet.cMakefile 给自己一个可以从命令行类似于我上面发布的分类器示例。但这感觉不太理想,因为我想拥有自己的项目结构。

【问题讨论】:

    标签: c deep-learning darknet


    【解决方案1】:

    对于那些对细节感兴趣并使用 CMakeLists.txt 的人,这里是亮点,假设 Darkned 已经编译:

    # Path to Darknet project folder.
    set(DARKNET_PATH /home/<custom_path_to>/darknet)
    
    # Give a custom name to shared library which is provided by Darkned when 
    # the one compiled.
    set(DARKNET_LIB_NAME libdarknet)
    
    # Link Darknet library' include folder.
    include_directories(${DARKNET_PATH}/include)
    
    # Define Darknet library' shared library.
    add_library(${DARKNET_LIB_NAME} SHARED IMPORTED)
    
    # Set a path to Darknet library' shared library
    set_property(
            TARGET ${DARKNET_LIB_NAME}
            PROPERTY IMPORTED_LOCATION 
            "${DARKNET_PATH}/libdarknet.so"
    )
    
    # Link all libraries together.
    target_link_libraries(${PROJ_NAME} ${DARKNET_LIB_NAME})
    

    下一个链接提供了使用 Darknet 库的项目:

    DarknetApp

    【讨论】:

      【解决方案2】:

      好的,Makefile 似乎支持生成共享库和静态库,这些都是在运行安装时默认生成的:

      git clone https://github.com/pjreddie/darknet.git
      cd darknet
      make
      

      随后libdarknet.alibdarknet.so 出现在我的暗网目录中。

      所以我可以在我自己的项目中#include darknet.h,然后编译通过:

      gcc -Wall -o myprog main.c -ldarknet
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2015-03-29
        • 1970-01-01
        • 2012-04-26
        • 1970-01-01
        相关资源
        最近更新 更多