DarkNet(1)--添加新层教程(slice层为例)_darknet 如何使用sam层-程序员宅基地

技术标签: slice  添加新层  darknet  Deep Learning  

slice layer:作用是将bottom按照参数切分成多个top,可参考Caffe源码中的实现

1、源码src文件夹下:
新建slice_layer.cslice_layer.h
ps:稍后我会更新到我的GitHub上
ps:已更新,https://github.com/lwplw/re-id_mgn

2、makefile文件中:
OBJ添加slice_layer.o

3、include/darknet.h文件中:
(1)LAYER_TYPE添加SLICE

typedef enum {
    CONVOLUTIONAL,
    DECONVOLUTIONAL,
    CONNECTED,
    MAXPOOL,
    SOFTMAX,
    DETECTION,
    DROPOUT,
    CROP,
    ROUTE,
    COST,
    NORMALIZATION,
    AVGPOOL,
    LOCAL,
    SHORTCUT,
    SLICE, // 2018.11.22-lwp
    ACTIVE,
    RNN,
    GRU,
    LSTM,
    CRNN,
    BATCHNORM,
    NETWORK,
    XNOR,
    REGION,
    YOLO,
    ISEG,
    REORG,
    UPSAMPLE,
    LOGXENT,
    L2NORM,
    BLANK
} LAYER_TYPE;

(2)因为新层中定义了新的参数,所以添加:

...
int extra;
int slice_axis; // 2018.11.22-lwp
int slice_num;
int slice_pos;
int truths;
...

4、parser.c文件中:
(1)添加头文件:

#include "slice_layer.h"

(2)string_to_layer_type函数中添加:

if (strcmp(type, "[slice]")==0) return SLICE;

(3)添加parse_slice函数:

layer parse_slice(list *options, size_params params)
{
    int slice_axis = option_find_int(options, "slice_axis", 2);
    int slice_num = option_find_int(options, "slice_num", 1);
    int slice_pos = option_find_int(options, "slice_pos", 0);

    int batch,h,w,c;
    h = params.h;
    w = params.w;
    c = params.c;
    batch=params.batch;

    layer l = make_slice_layer(batch, w, h, c, slice_axis, slice_num, slice_pos);
    return l;
}

(4)parse_network_cfg中加入:

...
}else if(lt == SHORTCUT){
       l = parse_shortcut(options, params, net);
}else if(lt == SLICE){
       l = parse_slice(options, params); // 2018.11.22-lwp
}else if(lt == DROPOUT){
       l = parse_dropout(options, params);
...

5、network.c文件中:
(1)添加头文件:

#include "slice_layer.h"

(2)get_layer_string函数中添加:

case SLICE:
    return "slice";

(3)resize_network函数中添加:

...
}else if(l.type == SHORTCUT){
    resize_shortcut_layer(&l, w, h);
}else if(l.type == SLICE){
    resize_slice_layer(&l, w, h); // 2018.11.22-lwp
}else if(l.type == UPSAMPLE){
    resize_upsample_layer(&l, w, h);
...

6、重新编译DarkNet

make clean
make all -j16
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lwplwf/article/details/84339881

智能推荐

soapui 测试soap_使用SoapUI调用不同的安全WCF SOAP服务-基本身份验证,第二部分-程序员宅基地

文章浏览阅读788次。soapui 测试soap 在本系列的第一篇文章中,我们创建了一个基本的身份验证服务,以使用SoapUI进行调用。 因此,在第二篇文章中,我们将逐步演示如何使用此工具成功调用这种服务。 使用SoapUI的1-Basic WCF SOAP –创建新的SOAP项目 首先,我们需要创建一个SoapUI项目,并在“初始WSDL”中添加在第一篇文章中创建的WSDL服务的URL。 另外,添加所需的项目..._soapui ws-a

workflow-ui 仿钉钉前端工作流UI_workflow模拟钉钉-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏14次。workflow-ui 前端工作流 UI基于vue前端工作流UI前端工作流生成器-Generator1、首先通过npm安装: npm install workflow-ui --save2、全局定义组件(否则会报循环引用):main.js中import Node from 'workflow-ui/src/components/Generator/node'Vue...._workflow模拟钉钉

stm32最小系统制作(原理图,PCB图,焊接等)-程序员宅基地

文章浏览阅读3.6k次,点赞6次,收藏34次。一直想自己做一个最小系统,这次终于把想法付诸实现。 原理图如下:PCB图如下:过了多日,板子终于邮到了,就是下面这个熊样。焊接了稳压电路,发现稳压电路原理图部分画错,没有接地,然后飞了根线,稳压电路才稳稳的好用。焊接stm32芯片的时候,其中VCC和GND引脚挂了锡,结果烧了一块稳压芯片,最后百般修改,终于基本好用。焊接..._stm32l051最小系统焊接

『技术分享』-- 使用极光 IM 构建聊天功能_vue 极光im即时聊天-程序员宅基地

文章浏览阅读5k次。前言距离上次极光征文不知不觉已经过了将近一年的时间,先感谢上次的征文比赛,通过 《我和 Android 推送的时间简史》 这篇文章获奖,这次又厚着脸皮再次参与,因为项目一直很忙,只得利用周末时间准备 demo 素材和写文章,不好之处,多多见谅。上一篇文章主要讲述了 我跟 极光推送 的关系,以及简单的描述了其集成和使用,作为三个项目都在使用极光推送的我,对其了解也是相当多的,当然坑也踩了不少,..._vue 极光im即时聊天

命令行 降低IE版本 IE11降到IE8_win7自带ie11降级ie8命令-程序员宅基地

文章浏览阅读2w次,点赞2次,收藏9次。将下面的命令复制,然后在命令行输入框中粘贴,最后按下回 车键。 FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /q_win7自带ie11降级ie8命令

Web前端与可视化有什么区别?_用python制作可视化面板和web前端制作有什么区别-程序员宅基地

文章浏览阅读1.1k次。首先是技术栈的不同。Web 开发主要以 HTML 来描述结构,以 CSS 来描述表现,以JavaScript 来描述行为。而可视化则较少涉及 HTML 和 CSS,它更多地要同浏览器的Canvas、SVG、WebGL 等其他图形 API 打交道。这是因为,Web 开发以呈现块状内容为主,所以 HTML 是更合适的技术。而可视化开发因为需要呈现各种各样的形状、结构,所以,形状更丰富的 SVG 以及更底层的 Canvas2D 和 WebGL 就是更合适的技术了。其次,Web 开发着重于处理普通的文..._用python制作可视化面板和web前端制作有什么区别

随便推点

过采样与欠采样&图像重采样(上采样&下采样)_欠采样和过采样原理-程序员宅基地

文章浏览阅读1.9w次,点赞16次,收藏88次。参考文章:https://blog.csdn.net/majinlei121/article/details/46742339https://blog.csdn.net/Chaolei3/article/details/80225756https://blog.csdn.net/h763247747/article/details/100135924https://blog.csdn.ne..._欠采样和过采样原理

苹果计算机的优势,苹果笔记本的优缺点详细分析-程序员宅基地

文章浏览阅读1.8w次。苹果笔记本可以说是目前最轻薄性能的电脑品牌了,虽然苹果笔记本的款式和型号有很多很多,但是苹果笔记本的优缺点基本上是大致一样的,想了解吗?下面随着小编一起来了解下吧!一、苹果笔记本的优点1、苹果笔记本外观精致漂亮华丽、设计外形简洁紧凑,美观大方、独特、清丽、高贵、经典。品牌响亮。2、硬件主板芯片采用intel芯片组,兼容windows系统,稳定性与兼容性保证。苹果笔记本可以选择MAC OS和WIND..._苹果笔记本电脑优缺点

FCKeditor 2.6.4.1配置--我是新手-程序员宅基地

文章浏览阅读95次。今天,接触zjblog系统看到一个编辑器,比较好,所以打算更改编辑器,它那里用到了FCKeditor编辑器,这是网上比较流行的编辑控件。查阅一些资料后其使用方法记录如下:1. 从官方网站http://www.fckeditor.net/download下载最新版的Fckeditor。我使用的是2.6.4.1版本2. 还需要下载Fckeditor.N..._fckeditor 2.6.4.1

xml文件基本格式与解析(一)_xml格式-程序员宅基地

文章浏览阅读5.8w次,点赞20次,收藏104次。什么是xml文件格式_xml格式

百度地图bd09II坐标转换天地图CGCS2000坐标_百度地图转天地图经纬度-程序员宅基地

文章浏览阅读1.6k次,点赞4次,收藏2次。【代码】百度地图bd09II坐标转换天地图CGCS2000坐标。_百度地图转天地图经纬度

Win10的Linux子系统Ubuntu安装图形界面-程序员宅基地

文章浏览阅读4.9k次,点赞9次,收藏43次。Win10的Linux子系统Ubuntu安装图形界面陈拓 2021/07/25-2021/07/261. 概述Win10的linux子系统Windows Subsystem for Linux(简称 WSL)之Ubuntu安装见文章:《Win10启用Linux子系统安装Ubuntu》https://zhuanlan.zhihu.com/p/341394468https://blog.csdn.net/chentuo2000/article/details/112131624W