caffe-openpose结构
一、openpose自己的网络层
1、数据层
layer {name: "data" 表示该层名字type: "CPMData" 层有多种类型,比如:Data、Convolution、Pooling,Data表示数据来源于Leveldb或者LMDBtop: "data" 每一层用top来输出数据,只有top没有bottom,则这一层只有输出没有输入,反之亦然top: "label" 如果有多个top和bottom,表示有多个blobs数据的输入输出data_param {source: "/mnt/sdb/xx/COCO_kpt/lmdb" 包含数据库的目录名称batch_size: 10 每次处理数据的个数backend: LMDB 选择采用Leveldb还是LMDB,默认采用leveldb}cpm_transform_param { 自定义层,之后会进行补充stride: 8max_rotate_degree: 40visualize: falsecrop_size_x: 368crop_size_y: 368scale_prob: 1scale_min: 0.5scale_max: 1.1target_dist: 0.6center_perterb_max: 40do_clahe: falsenum_parts: 56np_in_lmdb: 17}
}
2、Eltwise层
layer {name: "weight_stage1_L2" type: "Eltwise" 按元素操作层bottom: "conv5_5_CPM_L2"bottom: "heat_weight"top: "weight_stage1_L2"eltwise_param {operation: PROD 支持三种基本操作:1.PROD - 按元素乘积; 2.SUM - 按元素求和(默认,若实现相减,设置第一个coeff参数为1,第二个coeff参数为-1); 3.MAX - 保存元素大者}
}
将输入的数据进行点乘的操作, 将输入数据‘conv5_5_CPM_L2’与输入数据‘weight_stage1_L2’进行乘积操作
3、损失函数层的相关参数设置---EuclideanLoss层
layer {name: "loss_stage1_L1" 官方注释:http://caffe.berkeleyvision.org/tutorial/layers/euclideanloss.htmltype: "EuclideanLoss" 源码分析:https://blog.csdn.net/seashell_9/article/details/68064294bottom: "weight_stage1_L1"bottom: "label_vec"top: "loss_stage1_L1"loss_weight: 1 默认为1
}
caffe中的loss函数类型定义及确定要将哪两层的数据进行loss计算
4、slice层
layer {name: "vec_weight"type: "Slice"bottom: "label"top: "vec_weight"top: "heat_weight"top: "vec_temp"top: "heat_temp"slice_param {slice_point: 38slice_point: 57slice_point: 95axis: 1}
}具体参数解析参考博客https://blog.csdn.net/wfei101/article/details/78449265
Slice layer 的作用是将bottom按照需要分解成多个tops
5、silence2层
layer {name: "silence2"type: "Silence"bottom: "center_map"
}参考http://caffecn.cn/?/question/945
将上一层的输出接过来,防止caffe会将数据print出来
二、VGG19前十层(实际是12层)
1、卷积层
layer {name: "conv1_1" #表示该层的名称type: "Convolution" #层类型bottom: "image" #输入top: "conv1_1" #输出param { lr_mult: 1.0 #权值的学习率,最终的学习率是这个系数乘以solver.prototxt配置文件中的base_Irdecay_mult: 1 #权值衰减系数}param {lr_mult: 2.0 #如果有两个Ir_mult,则第二个代表偏置项的学习率,一般来说偏置项的学习率是权值学习率的两倍decay_mult: 0}convolution_param {num_output: 64 #卷积核的个数,convolution_param主要用于设定卷积层的特有参数pad: 1kernel_size: 3weight_filler { #权值初始化type: "gaussian" #默认为“constant”,值为0,“gaussian”使用高斯分布初始化权值std: 0.01 #std是参数初始化成是高斯分布的标准差,std越小,证明高斯曲线越平滑,各个权重值基本相同 详见https://blog.csdn.net/kenny_star/article/details/69949846}bias_filler { type: "constant" #偏置项的初始化,一般设置为“constant”,值全为0}}
}
2、激活层
layer {name: "relu1_1" 对输入数据进行激活操作(一种函数变换),从bottom得到一个blob数据输入,运算后,从top输出一个blob数据type: "ReLU" 在运算过程中,只对输入数据逐个元素进行函数变化,不改变数据维度大小bottom: "conv1_1" 输入:n*c*h*w 输出:n*c*h*wtop: "conv1_1" Relu层支持in-place计算,因此Relu层的输入输出可以相同,这意味着该层的输入输出可以共享同一块内存,减少内存消耗,其它层不支持
}
3、池化层
layer {name: "pool1_stage1"type: "Pooling" #层类型bottom: "conv1_2"top: "pool1_stage1"pooling_param {pool: MAX #池化方法,默认为MAX,其他还有AVE、STOCHASTIC(随机采样池化)kernel_size: 2stride: 2}
}
4、连接层
layer {name: "concat_stage2" #输入:n_i * c_i * h * w for each input blob i from 1 to K.type: "Concat"bottom: "conv5_5_CPM_L1"bottom: "conv5_5_CPM_L2"bottom: "conv4_4_CPM"top: "concat_stage2"concat_param { https://blog.csdn.net/u012426298/article/details/80743284axis: 1 if axis = 0: (n_1 + n_2 + ... + n_K) * c_1 * h * w, and all input c_i should be the sameif axis = 1: n_1 * (c_1 + c_2 + ... + c_K) * h * w, and all input n_i should be the same}
}
caffe-openpose结构相关推荐
- 可视化caffe模型结构及在线可视化
在线可视化caffe模型结构 http://ethereon.github.io/netscope/#/editor 假设Caffe的目录是$(CAFFE_ROOT) 1.编译caffe的python ...
- 深度学习caffe的代码怎么读?
知乎用户 ,Caffe / Torch7 / CNN 知乎用户.任逸风.陈文 等人赞同 我是从Torch7转移到Caffe的人,仅供参考,当你阅读前你应该具备一些有关DL的基础知识,本文集中写Caff ...
- caffe 框架梳理(待续)
本文更多资料来源于罗韵北京深度学习资料和Ian Goodfellow的书籍<Deep Learning> 链接: http://pan.baidu.com/s/1jIRJ6mU 提取密码: ...
- OpenCV3与深度学习实例-使用OpenPose进行人体姿态估算
为什么80%的码农都做不了架构师?>>> import cv2 import time import numpy as np import matplotlib.pyplot ...
- caffe 实例笔记 2 LeNet详细解读及实现
1 温习 1.1 关于caffe的名称: caffe = convolutional architecture for fast feature embedding 1.2 caffe.proto P ...
- 深度学习_21天实战Caffe.pdf
深度学习_21天实战Caffe.pdf 原 深度学习21天实战caffe学习笔记<1:深度学习的过往> 1. 深度学习DL: 1.1.有监督学习.无监督学习.过拟合.训练样本.泛化.训练集 ...
- ubuntu18完全安装Openpose指南
ubuntu18完全安装Openpose指南 可谓是历经千辛万苦,配了我整整两个星期才配好这个环境.有必要记录一下,不走弯路,也给后面的人一些启示,按下面指南大概总时间两小时就能配好. 环境列表:ub ...
- Caffe概览及mnist数据集训练
1. Caffe目录结构 data/用于存放下载的训练数据 docs/ 帮助文档 examples/ 代码样例 matlab/ MATLAB接口文件 python/ PYTHON接口文件 models ...
- 深度学习库 caffe使用 源码分析 依赖库分析 caffe glog gflags openBlas prototxt yolo_darknet 转 caffe
深度学习库 caffe使用 源码分析 依赖库分析 caffe glog gflags openBlas 本文github链接 yolo_darknet 转 caffe caffe 安装 Caffe代码 ...
- 彩信猫 发送彩信失败_在彩信上为人类摆姿势
彩信猫 发送彩信失败 Today, training and running ML models on a local or remote machine is not a big deal as t ...
最新文章
- Flutter 找不到 android sdk(图文详解)
- JWT令牌组成和安全校验讲解
- macOS下配置环境变量/查看环境变量
- django使用用户名或手机号码登录
- 使用 vue 一套功能 UI 全面 的 后台管理系统
- LightOJ 1353 - Paths in a Tree DFS
- ubuntu显卡驱动下载安装
- Ubuntu升级Ruby
- Vue----ele-admin1
- C. Garland dp
- 服务器appcrash的问题怎么修复,电脑appcrash的问题怎么修复?
- 价值几千行代码的一键安装开源啦,欢迎各位领导莅临指导(贡献代码)
- 微信小程序---显示与隐藏hidden
- 移动端切图内容包括什么_移动终端界面切图
- 计算机如何与机顶盒连接网络连接网络连接,如何将机顶盒连接到计算机
- 银行春招:六大行薪资待遇知多少?(上)
- FFmpeg使用sws_scale转换像素格式后,视频变为绿色条纹背景及部分图像丢失
- 在mini2440上移植使用ffmpeg录像
- [数据库基础篇]——数据库系统概述、数据模型、数据库系统的结构、数据库系统的组成
- GAL汉化界的一点实话。。。。。
热门文章
- 软考高级 真题 2015年下半年 信息系统项目管理师 案例分析
- JAVA毕设项目-网上订餐系统(附:源码 论文 Sql文件)
- 鸿蒙系统操作界面跟苹果很像,华为鸿蒙系统的操作界面可能长这样 和安卓全完不同而且图标也太酷了...
- wechat微信模板消息推送demo
- win7 64位专业版读不出来移动硬盘的解决办法
- 你在公司项目里面看过哪些操蛋的代码?
- php fseek函数,php fseek函数怎么用?
- python echarts教程_ECharts 入门教程
- C语言自学笔记(20)
- 一道有趣的OSPF配置实例——OSPF P2P接口妙用