适用于Windows和Linux的Yolo-v3和Yolo-v2(上)
适用于Windows和Linux的Yolo-v3和Yolo-v2(上)
https://github.com/eric-erki/darknetAB
(用于对象检测的神经网络)-Tensor Cores可以在Linux和Windows上使用
更多详细信息:http : //pjreddie.com/darknet/yolo/
1. 此存储库中的改进
2. 如何使用
3. 如何在Linux上编译
o 使用cmake
o 使用make
4. 如何在Windows上编译
o 使用vcpkg
o 传统方式
9. 什么时候应该停止训练
11. 如何改善物体检测
13. 如何将Yolo用作DLL和SO库
mAP@0.5(AP50)-FPS(GeForce 1080 Ti)https://arxiv.org/abs/1911.11929https://github.com/WongKinYiu/CrossStagePartialNetworks-更多型号
- MS COCO上的Yolo v3:速度/准确度(mAP@0.5)图表
- MS COCO上的Yolo v3(Yolo v3与RetinaNet)-图3:https ://arxiv.org/pdf/1804.02767v1.pdf
- 在Pascal VOC 2007上的Yolo v2:https : //hsto.org/files/a24/21e/068/a2421e0689fb43f08584de9d44c2215f.jpg
- 在Pascal VOC 2012(comp4)上的Yolo v2:https://hsto.org/files/3a6/fdf/b53/3a6fdfb533f34cee9b52bdd9bb0b19d9.jpg
预训练模型
不同的cfg文件有权重文件(针对MS COCO数据集进行了训练):
GeForce 1080Ti上的FPS:
- csresnext50-panet-SPP-原始optimal.cfg - 65.4%mAP@0.5(43.2%AP @ 0.5..0.95) - 35 FPS - 100.5 BFlops - 217 MB:csresnext50-panet-SPP-原始optimal_final.weights
- yolov3-spp.cfg - 60.6%mAP@0.5 - 30 FPS - 141.5 BFlops - 240 MB:yolov3-spp.weights
- yolov3-tiny-prn.cfg - 33.1%mAP@0.5 - 400 FPS - 3.5 BFlops - 18.8 MB:yolov3纤巧,prn.weights
- ENET-coco.cfg(EfficientNetB0-Yolov3) - 45.5%mAP@0.5 - 60 FPS - 3.7 BFlops - 18.3 MB:enetb0-coco_final.weights
- yolov3-openimages.cfg -247 MB-OpenImages数据集:yolov3-openimages.weights
单击 -Yolo v3型号
单击 -Yolo v2型号
放到附近编译:darknet.exe
可以通过以下路径获取cfg文件: darknet/cfg/
要求
- Windows或Linux
- CMake> = 3.8对于现代CUDA支持:https : //cmake.org/download/
- CUDA 10.0:https : //developer.nvidia.com/cuda-toolkit-archive(在Linux上执行安装后操作)
- OpenCV> = 2.4:使用首选的软件包管理器(棕色,apt),使用vcpkg从源代码构建或从OpenCV官方网站下载(在Windows上,设置系统变量OpenCV_DIR= C:\opencv\build- include和x64文件夹图像)
- CUD 10.0的cuDNN> = 7.0 https://developer.nvidia.com/rdp/cudnn-archive(在Linux副本上cudnn.h,libcudnn.so...如此处所述https://docs.nvidia.com/deeplearning/sdk/cudnn-install /index.html#installlinux-tar上的Windows拷贝cudnn.h,cudnn64_7.dll,cudnn64_7.lib这里desribed https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows)
- CC> = 3.0的GPU:https : //en.wikipedia.org/wiki/CUDA#GPUs_supported
- 在Linux GCC或Clang上,在Windows MSVC 2015/2017/2019 https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community
在其框架中的Yolo v3
- TensorFlow:转换yolov3.weights/ cfg文件yolov3.ckpt/ pb/meta:使用mystic123或jinyu121项目,TensorFlow -精简版
- 英特尔OpenVINO 2019 R1:(Myriad X / USB神经计算棒/ Arria FPGA):阅读本手册
- OpenCV-dnn是CPU(x86 / ARM-Android)最快的实现,OpenCV可以使用OpenVINO后端进行编译以在(Myriad X / USB Neural Compute Stick / Arria FPGA)上运行,与yolov3.weights/ cfg配合使用:C ++示例或Python示例
- PyTorch> ONNX> CoreML> iOS如何将cfg / weights-files转换为pt-file:ultralytics / yolov3和iOS App
- 适用于YOLOv3的TensorRT(推理速度提高-70%):Deep Stream 4.0本身就支持Yolo
- TVM -深度学习模型(Keras,MXNet,PyTorch,Tensorflow,CoreML,暗网)插入不同的硬件后端(的CPU,GPU,FPGA和专用加速器)最低部署模块的编译:https://tvm.ai/about
- Netron-神经网络可视化器:https : //github.com/lutzroeder/netron
数据集
- MS COCO:用于./scripts/get_coco_dataset.sh获取标记的MS COCO检测数据集
- OpenImages:python ./scripts/get_openimages_dataset.py用于标记训练检测数据集
- Pascal VOC:python ./scripts/voc_label.py用于标记Train / Test / Val检测数据集
- ILSVRC2012(ImageNet分类):使用./scripts/get_imagenet_train.sh(也imagenet_label.sh用于标记有效集)
- 用于检测的德语/比利时/俄罗斯/ LISA / MASTIF交通标志数据集-使用此解析器:https : //github.com/angeligareta/Datasets2Darknet#detection-task
- 其数据集列表:https : //github.com/AlexeyAB/darknet/tree/master/scripts#datasets
结果示例
Others: https://www.youtube.com/user/pjreddie/videos
此存储库中的改进
- 增加了对Windows的支持
- 添加了最新模型:CSP,PRN,EfficientNet
- 添加的层:[conv_lstm],[scale_channels] SE / ASFF / BiFPN,[local_avgpool],[sam],[Gaussian_yolo],[reorg3d](固定的[reorg]),固定的[batchnorm]
- 新增了训练循环模型(具有conv-lstm [conv_lstm]/ conv-rnn层[crnn])以精确检测视频的功能
- 添加了数据扩充:[net] mixup=1 cutmix=1 mosaic=1 blur=1。添加的激活:SWISH,MISH,NORM_CHAN,NORM_CHAN_SOFTMAX
- 增加了使用CPU-RAM进行GPU处理训练的能力,以增加mini_batch_size和准确性(而非批处理规范同步)
- 如果使用此XNOR-net模型训练自己的权重(位1推断),则在CPU和GPU上的二进制神经网络性能将提高2到4倍的检测速度:https : //github.com/AlexeyAB/darknet/blob/master /cfg/yolov3-tiny_xnor.cfg
- 通过将2层融合到1个卷积+批量范数中,将神经网络性能提高了约7%
- 改进的性能:如果在或中定义了Tensor Core,则在GPU Volta / Turing(Tesla V100,GeForce RTX等)上检测2倍,CUDNN_HALFMakefiledarknet.sln
- 改进了FullHD的性能约1.2倍,4K的性能约2倍,使用darknet detector demo... 可以检测视频(文件/流)
- 性能提高了3.5倍的数据增强进行训练(使用OpenCV SSE / AVX功能而不是手写功能)-消除了在多GPU或GPU Volta上进行训练的瓶颈
- 使用AVX在Intel CPU上提高了检测和训练的性能(Yolo v3〜85 %)
- 在调整网络大小时优化内存分配 random=1
- 优化的GPU初始化以进行检测-最初使用batch = 1,而不是使用batch = 1重新初始化
- 使用命令添加了正确的mAP,F1,IoU,Precision-Recall计算darknet detector map...
- -map在训练过程中添加了平均损耗和精度mAP(标志)图表
- ./darknet detector demo ... -json_port 8070 -mjpeg_port 8090作为JSON和MJPEG服务器运行,以使用软件或Web浏览器通过网络在线获取结果
- 增加了训练锚的计算
- 添加了检测和跟踪对象的示例:https : //github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp
- 如果使用了不正确的cfg文件或数据集,则为运行时提示和警告
- 许多其代码修复...
并添加了手册- 如何训练Yolo v3 / v2(以检测自定义对象)
另外,可能对使用简化的存储库感兴趣,该存储库中已实现INT8量化(+ 30%的加速和-1%的mAP降低): https://github.com/AlexeyAB/yolo2_light
如何在命令行上使用
在Linux上,请使用./darknet代替darknet.exe,例如:./darknet detector test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights
在Linux上./darknet,在根目录中找到可执行文件,而在Windows上,在目录中找到可执行文件。\build\darknet\x64
- Yolo v3 COCO- 图片:darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -thresh 0.25
- 输出对象的坐标:darknet.exe detector test cfg/coco.data yolov3.cfg yolov3.weights -ext_output dog.jpg
- Yolo v3 COCO- 视频:darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output test.mp4
- Yolo v3 COCO- WebCam 0:darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0
- 用于网络摄像机的 Yolo v3 COCO-智能网络摄像头:darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights http://192.168.0.80:8080/video?dummy=param.mjpg
- Yolo v3-保存结果视频文件res.avi:darknet.exe detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights test.mp4 -out_filename res.avi
- Yolo v3 Tiny COCO-视频:darknet.exe detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights test.mp4
- 允许来自软件浏览器或Web浏览器ip-address:8070和8090的多个连接的JSON和MJPEG服务器:./darknet detector demo ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights test50.mp4 -json_port 8070 -mjpeg_port 8090 -ext_output
- GPU#1上的 Yolo v3 Tiny :darknet.exe detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -i 1 test.mp4
- 替代方法Yolo v3 COCO-图片: darknet.exe detect cfg/yolov3.cfg yolov3.weights -i 0 -thresh 0.25
- 在Amazon EC2上进行训练,以使用URL来查看mAP和损失图,例如:http://ec2-35-160-228-91.us-west-2.compute.amazonaws.com:8090在Chrome / Firefox中(Darknet应该使用OpenCV进行编译): ./darknet detector train cfg/coco.data yolov3.cfg darknet53.conv.74 -dont_show -mjpeg_port 8090 -map
- 186 MB Yolo9000-图片: darknet.exe detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights
- 如果使用cpp api构建应用程序,请记住将data / 9k.tree和data / coco9k.map放在应用程序的同一文件夹下
- 要处理图像列表data/train.txt并将检测结果保存到result.json文件中,请使用: darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output -dont_show -out result.json < data/train.txt
- 处理图像列表data/train.txt并保存检测结果以result.txt供使用:
darknet.exe detector test cfg/coco.data
cfg/yolov3.cfg yolov3.weights -dont_show -ext_output < data/train.txt
> result.txt - 伪标记-处理图像列表data/new_train.txt并将检测结果以Yolo训练格式保存为每个图像作为标签<image_name>.txt(通过这种方式,可以增加训练数据量)使用: darknet.exe detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
-thresh 0.25 -dont_show -save_labels < data/new_train.txt - 要计算锚点: darknet.exe detector calc_anchors data/obj.data -num_of_clusters 9
-width 416 -height 416 - 要检查准确性mAP @ IoU = 50: darknet.exe detector map data/obj.data
yolo-obj.cfg backup\yolo-obj_7000.weights - 要检查准确性mAP @ IoU = 75: darknet.exe detector map data/obj.data
yolo-obj.cfg backup\yolo-obj_7000.weights -iou_thresh 0.75
用于在任何Android智能手机上使用网络摄像机mjpeg-stream
1. 下载Android手机mjpeg-stream
soft:IP网络摄像头/ Smart WebCam
o
智能网络摄像头-最好:https : //play.google.com/store/apps/details? id =com.acontech.android.SmartWebCam2
o
IP网络摄像头:https : //play.google.com/store/apps/details?id=com.pas.webcam
2. 通过WiFi(通过WiFi路由器)或USB将Android手机连接到计算机
3. 在手机上启动Smart WebCam
4. 替换下面的地址,在电话应用程序(Smart WebCam)中显示并启动:
- Yolo v3 COCO模型: darknet.exe detector demo data/coco.data yolov3.cfg yolov3.weights
http://192.168.0.80:8080/video?dummy=param.mjpg -i 0
如何在Linux上编译(使用cmake)
该CMakeLists.txt将尝试查找已安装的可选依赖像CUDA,cudnn,ZED与编译构建。还将创建一个共享对象库文件以darknet用于代码开发。
在克隆的存储库中执行以下操作:
mkdir build-release
cd build-release
cmake ..
make
make install
如何在Linux上编译(使用make)
只需make在darknet目录中进行即可。在制作之前,可以在Makefile:链接中设置此类选项
- GPU=1使用CUDA进行构建以通过使用GPU加速(CUDA应该在中/usr/local/cuda)
- CUDNN=1使用cuDNN v5-v7进行构建,以通过使用GPU加速训练(cuDNN应该在中/usr/local/cudnn)
- CUDNN_HALF=1 为Tensor Core构建(在Titan V / Tesla V100 /
DGX-2及更高版本上)加速检测3倍,训练2倍 - OPENCV=1 使用OpenCV 4.x / 3.x / 2.4.x构建-允许检测来自网络摄像机或网络摄像机的视频文件和视频流
- DEBUG=1 调试Yolo版本
- OPENMP=1 使用OpenMP支持进行构建以通过使用多核CPU来加速Yolo
- LIBSO=1生成一个库darknet.so和uselib使用该库的二进制可运行文件。或者,可以尝试运行,以便LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
./uselib test.mp4如何使用自己的代码使用此SO库-可以查看C ++示例:https://github.com/AlexeyAB/darknet/blob/master/src/yolo_console_dll.cpp 或在这样的方式:LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH
./uselib data/coco.names cfg/yolov3.cfg yolov3.weights test.mp4 - ZED_CAMERA=1 构建具有ZED-3D摄像机支持的库(应安装ZED SDK),然后运行LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH ./uselib data/coco.names
cfg/yolov3.cfg yolov3.weights zed_camera
要在Linux上运行Darknet,请使用本文提供的示例,只需使用./darknet代替darknet.exe,即使用以下命令:./darknet detector
test ./cfg/coco.data ./cfg/yolov3.cfg ./yolov3.weights
如何在Windows上编译(使用CMake-GUI)
如果已经安装了Visual Studio
2015/2017/2019,CUDA> 10.0,cuDNN> 7.0和OpenCV> 2.4,则这是在Windows上构建Darknet的推荐方法。
使用CMake-GUI如下所示这个IMAGE:
1.
配置
2.
发电机的可选平台(设置:x64)
3.
完成
4.
生成
5.
打开工程
6.
设置:x64和发行版
7.
建立
8.
建立解决方案
如何在Windows上编译(使用vcpkg)
如果已经安装了Visual Studio
2015/2017/2019,CUDA> 10.0,cuDNN> 7.0,OpenCV> 2.4,则要编译Darknet,建议使用 CMake-GUI。
否则,请按照下列步骤操作:
1. 将Visual Studio安装或更新到至少2017版,并确保已对其进行完全修补(如果不确定是否自动更新到最新版本,请再次运行安装程序)。如果需要从头开始安装,请从此处下载VS:Visual Studio社区
2. 安装CUDA和cuDNN
3. 安装git和cmake。确保至少在当前帐户的路径上
4. 安装vcpkg并尝试安装测试库以确保一切正常,例如vcpkg install opengl
5. 定义环境变量,VCPKG_ROOT指向的安装路径vcpkg
6. 用名称VCPKG_DEFAULT_TRIPLET和值定义另一个环境变量x64-windows
7. 打开Powershell并键入以下命令:
8. PS \> cd $env:VCPKG_ROOT
9. PS Code\vcpkg> .\vcpkg install pthreads opencv[ffmpeg] #replace with opencv[cuda,ffmpeg] in case you want to use cuda-accelerated openCV
8. 打开Powershell,转到darknet文件夹并使用命令进行构建.\build.ps1。如果要使用Visual Studio,将在构建后找到CMake为创建的两个自定义解决方案,一个在中build_win_debug,另一个在中build_win_release,其中包含适用于系统的所有配置标志。
如何在Windows上编译(旧版方式)
1. 如果具有CUDA 10.0,cuDNN 7.4和OpenCV 3.x(路径:C:\opencv_3.0\opencv\build\include&C:\opencv_3.0\opencv\build\x64\vc14\lib),则打开build\darknet\darknet.sln,设置x64并释放https://hsto.org/webt/uh/fk/-e/uhfk-eb0q-hwd9hsxhrikbokd6u。 jpeg并执行以下操作:构建->构建Darknet。还要添加Windows系统变量CUDNN以及CUDNN的路径:https ://user-images.githubusercontent.com/4096485/53249764-019ef880-36ca-11e9-8ffe-d9cf47e7e462.jpg
1.1. 查找文件opencv_world320.dll和opencv_ffmpeg320_64.dll(或opencv_world340.dll和opencv_ffmpeg340_64.dll)C:\opencv_3.0\opencv\build\x64\vc14\bin并放在附近darknet.exe
1.2. 检查是否存在bin和include文件夹C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0,然后从安装CUDA的路径将复制到此文件夹
1.3. 要安装CUDNN(加速神经网络),请执行以下操作:
o 下载并安装CUD 10.0的cuDNN v7.4.1:https://developer.nvidia.com/rdp/cudnn-archive
o 添加CUDNN具有CUDNN路径的Windows系统变量:https ://user-images.githubusercontent.com/4096485/53249764-019ef880-36ca-11e9-8ffe-d9cf47e7e462.jpg
o 将文件复制cudnn64_7.dll到\build\darknet\x64附近的文件夹darknet.exe
1.4. 如果要在没有CUDNN的情况下进行构建,请:打开\darknet.sln->(右键单击项目)->属性-> C / C ++->预处理程序->预处理程序定义,然后删除:CUDNN;
2. 如果有其版本的CUDA(不是10.0)build\darknet\darknet.vcxproj,请使用记事本打开,用“ CUDA 10.0”找到2个位置,并将其更改为CUDA版本。然后打开\darknet.sln->(右键单击项目)->属性-> CUDA C / C ++->设备,然后将其删除;compute_75,sm_75。然后执行步骤1
3. 如果没有GPU,但是拥有OpenCV 3.0(路径:C:\opencv_3.0\opencv\build\include&C:\opencv_3.0\opencv\build\x64\vc14\lib),则打开build\darknet\darknet_no_gpu.sln,设置x64和Release,然后执行以下操作:Build-> Build darknet_no_gpu
4. 如果使用的是OpenCV 2.4.13而不是3.0,则应在\darknet.sln打开后更改路径
4.1(右键单击项目)->属性-> C / C ++->常规->其包含目录: C:\opencv_2.4.13\opencv\build\include
4.2(右键单击项目)->属性->链接器->常规->其库目录: C:\opencv_2.4.13\opencv\build\x64\vc14\lib
5. 如果带有Tensor内核的GPU(nVidia Titan V / Tesla V100 / DGX-2及更高版本)加速检测3倍,训练2倍:\darknet.sln->(右键单击项目)->属性-> C / C ++->预处理程序->预处理程序定义,并在此处添加:CUDNN_HALF;
注意:仅在安装Visual Studio之后,才必须安装CUDA。
如何编译(自定义):
另外,可以为CUDA 9.1和OpenCV 3.0 创建自己的darknet.sln&darknet.vcxproj例子
然后添加到创建的项目中:
- (右键单击项目)->属性-> C / C ++->常规->其包含目录,放在这里:
C:\opencv_3.0\opencv\build\include;..\..\3rdparty\include;
%(AdditionalIncludeDirectories);
$(CudaToolkitIncludeDir);$(CUDNN)\include
- (右键单击项目)->构建依赖关系->构建自定义->设置CUDA 9.1或拥有的版本的设置-例如,如下所示:http : //devblogs.nvidia.com/parallelforall/wp-content/uploads/
2015/01 / VS2013-R-5.jpg - 添加到项目:
- 所有.c文件
- 所有.cu文件
- 文件http_stream.cpp从\src目录
- 文件darknet.h从\include目录
- (右键单击项目)->属性->链接器->常规->其库目录,放在这里:
C:\opencv_3.0\opencv\build\x64\vc14\lib;
$(CUDA_PATH)\lib\$(PlatformName);
$(CUDNN)\lib\x64;%(AdditionalLibraryDirectories)
- (右键单击项目)->属性->链接器->输入->其依赖项,放在这里:
..\..\3rdparty\lib\x64\pthreadVC2.lib;cublas.lib;curand.lib;cudart.lib;cudnn.lib;%(AdditionalDependencies)
- (右键单击项目)->属性-> C / C ++->预处理程序->预处理程序定义
OPENCV;_TIMESPEC_DEFINED;_CRT_SECURE_NO_WARNINGS;_CRT_RAND_S;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)
- 编译为.exe(X64和Release)并使用.exe将.dll-s放在附近:https : //hsto.org/webt/uh/fk/-e/uhfk-eb0q-hwd9hsxhrikbokd6u.jpeg
- pthreadVC2.dll, pthreadGC2.dll 来自\ 3rdparty \ dll \ x64
- cusolver64_91.dll, curand64_91.dll, cudart64_91.dll, cublas64_91.dll -91(对于CUDA 9.1或版本),来自C:\ Program Files \ NVIDIA GPU Computing Toolkit \
CUDA \ v9.1 \ bin - 对于OpenCV的3.2:opencv_world320.dll与opencv_ffmpeg320_64.dll从C:\opencv_3.0\opencv\build\x64\vc14\bin
- 对于OpenCV的2.4.13: opencv_core2413.dll,opencv_highgui2413.dll并opencv_ffmpeg2413_64.dll从C:\opencv_2.4.13\opencv\build\x64\vc14\bin
训练方法(Pascal VOC资料):
1. 下载卷积层的预训练权重(154 MB):http : //pjreddie.com/media/files/darknet53.conv.74并放入目录build\darknet\x64
2. 下载Pascal VOC数据并将其解压缩到目录中,build\darknet\x64\data\voc将创建dir build\darknet\x64\data\voc\VOCdevkit\:
o
http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
o
http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
o
http://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
2.1将文件下载voc_label.py到dir build\darknet\x64\data\voc:http : //pjreddie.com/media/files/voc_label.py
3. 下载并安装适用于Windows的Python:https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe
4. 运行命令:(python
build\darknet\x64\data\voc\voc_label.py生成文件:2007_test.txt,2007_train.txt,2007_val.txt,2012_train.txt,2012_val.txt)
5. 运行命令: type 2007_train.txt
2007_val.txt 2012_*.txt > train.txt
6. 设置batch=64并subdivisions=8在文件中yolov3-voc.cfg:链接
7. 使用train_voc.cmd或使用命令行开始训练:
darknet.exe detector train cfg/voc.data cfg/yolov3-voc.cfg
darknet53.conv.74
(注意:要禁用Loss-Window use标志-dont_show。如果使用的是CPU,请尝试使用darknet_no_gpu.exe代替darknet.exe。)
如果需要,请更改文件中的路径 build\darknet\cfg\voc.data
有关链接的训练的更多信息:http : //pjreddie.com/darknet/yolo/#train-voc
注意:如果在训练过程中看到(损失)字段的nan值avg-则训练有误,但如果出现nan在其行中-则训练进行得很好。
如何使用多GPU进行训练:
1. 首先在1个GPU上进行1000次迭代训练: darknet.exe
detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
2. 然后停止并通过使用部分训练的模型/backup/yolov3-voc_1000.weights运行训练来进行multigpu(最多4个GPU):darknet.exe detector train cfg/voc.data cfg/yolov3-voc.cfg /backup/yolov3-voc_1000.weights
-gpus 0,1,2,3
仅对于小型数据集,有时对于4个GPU集learning_rate =
0.00025(例如,learning_rate = 0.001 / GPU)而言,降低学习率会更好。在这种情况下burn_in =
and max_batches
在cfg文件中增加4倍的时间。即使用burn_in = 4000代替1000。 Same
=
goes for steps=
if policy=steps
is set.。
https://groups.google.com/d/msg/darknet/NbJqonJBTSY/Te5PfIpuCAAJ
适用于Windows和Linux的Yolo-v3和Yolo-v2(上)的更多相关文章
- 适用于Windows和Linux的Yolo-v3和Yolo-v2(下)
适用于Windows和Linux的Yolo-v3和Yolo-v2(下) 如何训练(检测自定义对象): (培养老YOLO V2 yolov2-voc.cfg,yolov2-tiny-voc.cfg,yo ...
- 记录libreoffice实现office转pdf(适用于windows、linux)
由于目前的工作跟office打交道比较多,所以才有了此篇blog,需求是实现word转换pdf方便页面展示.之前lz采用的是jacob(仅支持windows)进行转换的,但是现在服务器改成linux显 ...
- Python编程软件的安装与使用——Windows、Linux和Mac
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 最近,有读者透露:Python软件如何安装?为什么自己安装的软件会有各种"奇怪"的问题?据此,本 ...
- 在eclipse里配置Android ndk环境 适用于windows mac 和linux(转)
在eclipse里配置Android ndk环境 适用于windows mac 和linux(转) 2012-02-27 13:02:16| 分类: android | 标签:java prog ...
- 在windows下用python调用darknet的yolo接口
0,目标 本人计算机环境:windows7 64位,安装了vs2015专业版,python3.5.2,cygwin,opencv3.3,无gpu 希望实现用python调用yolo函数,实现物体检测. ...
- YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
YOLOv4:目标检测(windows和Linux下Darknet 版本)实施 YOLOv4 - Neural Networks for Object Detection (Windows and L ...
- 如何在CentOS 5.x 中安装Windows Azure Linux Agent (WALA)
Qing Liu Tue, Mar 10 2015 3:06 AM 在今天的这一个章节中,我们主要讨论在CentOs 5.x 中如何安装Windows Azure Linux Agent 2.11 ...
- 开发问题(一)在windows和linux端口占用问题
前言 今天在MyEclipse中使用tomcat发现tomcat端口8080竟然被占用了,所以就找了一下解决办法共参考! 在网络程序的调试过程中,经常发生一些出乎意料的事情,比如创建一个TCP服务失败 ...
- 适用于 Windows 的虚拟机扩展和功能
Azure 虚拟机扩展是小型应用程序,可在Azure 虚拟机上提供部署后配置和自动化任务. 例如,如果虚拟机要求安装软件.防病毒保护或进行 Docker 配置,便可以使用 VM 扩展来完成这些任务. ...
随机推荐
- 技术面试问题汇总第003篇:猎豹移动反病毒工程师part3
从现在开始,面试的问题渐渐深入.这次的三个问题,都是对PE格式的不断深入的提问.从最初的概念,到病毒对PE格式的利用,再到最后的壳的问题.这里需要说明的是,由于壳是一个比较复杂的概念,面试中也仅仅只能 ...
- ACM JAVA大数
有的水题自己模拟下大数就过了,有的各种坑,天知道曾经因为大数wa了多少次....自己最近学者用JAVA,下面是自己总结的JAVA常用知识.. 框架 import java.util.Scanner; ...
- Android Studio导入Android 4.4.4r1的源码
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70339471 一.环境配置 1.ubuntu 14.04.5 x64bit 2.j ...
- POJ2431贪心(最少加油次数)
题意: 给一个终点,然后给你一个卡车距离终点的距离,还有其他个加油站距离终点的距离,然后每走一个单位距离要花费一个单位油,卡车的邮箱是无限大的,而每个加油站的油量是有限的,整个路径是一个 ...
- maven打war包
测试/本地 mvn clean package -Dmaven.test.skip=true 生产服务器打包命令 mvn clean package -P prod -Dmaven.test.skip ...
- Java安全之Fastjson反序列化漏洞分析
Java安全之Fastjson反序列化漏洞分析 首发:先知论坛 0x00 前言 在前面的RMI和JNDI注入学习里面为本次的Fastjson打了一个比较好的基础.利于后面的漏洞分析. 0x01 Fas ...
- [源码解析] 并行分布式框架 Celery 之 容错机制
[源码解析] 并行分布式框架 Celery 之 容错机制 目录 [源码解析] 并行分布式框架 Celery 之 容错机制 0x00 摘要 0x01 概述 1.1 错误种类 1.2 失败维度 1.3 应 ...
- [论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximati
[论文阅读笔记] Fast Network Embedding Enhancement via High Order Proximity Approximation 本文结构 解决问题 主要贡献 主要 ...
- 1Spring注入小结
Spring注入小结 (在Application.xml中) Spring学习笔记 周芋杉2021/5/14 1.基本注入类型注入 注入前的准备 <bean id="#配置文件的唯一标 ...
- ES6中的展开运算符和解构对象
let obj = { a:1 b:2 } let obj2 = { ...obj c:3 d:4 } console.log(obj2)//1,2,3,4,对象展开 //常考题目 let a = 1 ...