如何在自己的项目中使用暗网?
How to use darknet in my own project?
我已经安装了 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 用作静态库或共享库吗?我在网站上没有看到任何关于如何执行此操作的说明。
到目前为止,我唯一的方法是按照示例文件夹中示例的样式创建自己的源文件,并修改 darknet.h
、darknet.c
和 Makefile
以提供我自己是一个入口点,我可以从命令行调用类似于我上面发布的分类器示例。但这感觉不太理想,因为我想有自己的项目结构。
好的,看起来 Makefile 支持生成共享库和静态库,这些是 运行 安装时默认生成的:
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
后来 libdarknet.a
和 libdarknet.so
出现在我的暗网目录中。
所以我可以#include darknet.h
在我自己的项目中,然后编译通过:
gcc -Wall -o myprog main.c -ldarknet
对于那些对细节感兴趣并使用 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库的项目link:
我已经安装了 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 用作静态库或共享库吗?我在网站上没有看到任何关于如何执行此操作的说明。
到目前为止,我唯一的方法是按照示例文件夹中示例的样式创建自己的源文件,并修改 darknet.h
、darknet.c
和 Makefile
以提供我自己是一个入口点,我可以从命令行调用类似于我上面发布的分类器示例。但这感觉不太理想,因为我想有自己的项目结构。
好的,看起来 Makefile 支持生成共享库和静态库,这些是 运行 安装时默认生成的:
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
后来 libdarknet.a
和 libdarknet.so
出现在我的暗网目录中。
所以我可以#include darknet.h
在我自己的项目中,然后编译通过:
gcc -Wall -o myprog main.c -ldarknet
对于那些对细节感兴趣并使用 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库的项目link: