问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何用caffe解决回归问题

发布网友 发布时间:2022-03-27 13:50

我来回答

2个回答

热心网友 时间:2022-03-27 15:19

如何在Caffe中配置每一个层的结构最近刚在电脑上装好Caffe,由于神经网络中有不同的层结构,不同类型的层又有不同的参数,所有就根据Caffe官网的说明文档做了一个简单的总结。1.VisionLayers1.1卷积层(Convolution)类型:CONVOLUTION例子layers{name:"conv1"type:CONVOLUTIONbottom:"data"top:"conv1"blobs_lr:1#learningratemultiplierforthefiltersblobs_lr:2#learningratemultiplierforthebiasesweight_decay:1#weightdecaymultiplierforthefiltersweight_decay:0#weightdecaymultiplierforthebiasesconvolution_param{num_output:96#learn96filterskernel_size:11#eachfilteris11x11stride:4#step4pixelsbetweeneachfilterapplicationweight_filler{type:"gaussian"#initializethefiltersfromaGaussianstd:0.01#distributionwithstdev0.01(defaultmean:0)}bias_filler{type:"constant"#initializethebiasestozero(0)value:0}}}blobs_lr:学习率调整的参数,在上面的例子中设置权重学习率和运行中求解器给出的学习率一样,同时是偏置学习率为权重的两倍。weight_decay:卷积层的重要参数必须参数:num_output(c_o):过滤器的个数kernel_size(orkernel_handkernel_w):过滤器的大小可选参数:weight_filler[defaulttype:'constant'value:0]:参数的初始化方法bias_filler:偏置的初始化方法bias_term[defaulttrue]:指定是否是否开启偏置项pad(orpad_handpad_w)[default0]:指定在输入的每一边加上多少个像素stride(orstride_handstride_w)[default1]:指定过滤器的步长group(g)[default1]:Ifg>1,werestricttheconnectivityofeachfiltertoasubsetoftheinput.Specifically,theinputandoutputchannelsareseparatedintoggroups,andtheithoutputgroupchannelswillbeonlyconnectedtotheithinputgroupchannels.通过卷积后的大小变化:输入:n*c_i*h_i*w_i输出:n*c_o*h_o*w_o,其中h_o=(h_i+2*pad_h-kernel_h)/stride_h+1,w_o通过同样的方法计算。1.2池化层(Pooling)类型:POOLING例子layers{name:"pool1"type:POOLINGbottom:"conv1"top:"pool1"pooling_param{pool:MAXkernel_size:3#poolovera3x3regionstride:2#steptwopixels(inthebottomblob)betweenpoolingregions}}卷积层的重要参数必需参数:kernel_size(orkernel_handkernel_w):过滤器的大小可选参数:pool[defaultMAX]:pooling的方法,目前有MAX,AVE,和STOCHASTIC三种方法pad(orpad_handpad_w)[default0]:指定在输入的每一遍加上多少个像素stride(orstride_handstride_w)[default1]:指定过滤器的步长通过池化后的大小变化:输入:n*c_i*h_i*w_i输出:n*c_o*h_o*w_o,其中h_o=(h_i+2*pad_h-kernel_h)/stride_h+1,w_o通过同样的方法计算。1.3LocalResponseNormalization(LRN)类型:LRNLocalResponseNormalization是对一个局部的输入区域进行的归一化(激活a被加一个归一化权重(分母部分)生成了新的激活b),有两种不同的形式,一种的输入区域为相邻的channels(crosschannelLRN),另一种是为同一个channel内的空间区域(withinchannelLRN)计算公式:对每一个输入除以可选参数:local_size[default5]:对于crosschannelLRN为需要求和的邻近channel的数量;对于withinchannelLRN为需要求和的空间区域的边长alpha[default1]:scaling参数beta[default5]:指数norm_region[defaultACROSS_CHANNELS]:选择哪种LRN的方法ACROSS_CHANNELS或者WITHIN_CHANNEL2.LossLayers深度学习是通过最小化输出和目标的Loss来驱动学习。2.1Softmax类型:SOFTMAX_LOSS2.2Sum-of-Squares/Euclidean类型:EUCLIDEAN_LOSS2.3Hinge/Margin类型:HINGE_LOSS例子:#L1Normlayers{name:"loss"type:HINGE_LOSSbottom:"pred"bottom:"label"}#L2Normlayers{name:"loss"type:HINGE_LOSSbottom:"pred"bottom:"label"top:"loss"hinge_loss_param{norm:L2}}可选参数:norm[defaultL1]:选择L1或者L2范数输入:n*c*h*wPredictionsn*1*1*1Labels输出1*1*1*1ComputedLoss2.4SigmoidCross-Entropy类型:SIGMOID_CROSS_ENTROPY_LOSS2.5Infogain类型:INFOGAIN_LOSS2.6AccuracyandTop-k类型:ACCURACY用来计算输出和目标的正确率,事实上这不是一个loss,而且没有backward这一步。3.激励层(Activation/NeuronLayers)一般来说,激励层是element-wise的操作,输入和输出的大小相同,一般情况下就是一个非线性函数。3.1ReLU/Rectified-LinearandLeaky-ReLU类型:RELU例子:layers{name:"relu1"type:RELUbottom:"conv1"top:"conv1"}可选参数:negative_slope[default0]:指定输入值小于零时的输出。ReLU是目前使用做多的激励函数,主要因为其收敛更快,并且能保持同样效果。标准的ReLU函数为max(x,0),而一般为当x>0时输出x,但x<=0时输出negative_slope。RELU层支持in-place计算,这意味着bottom的输出和输入相同以避免内存的消耗。3.2Sigmoid类型:SIGMOID例子:layers{name:"encode1neuron"bottom:"encode1"top:"encode1neuron"type:SIGMOID}SIGMOID层通过sigmoid(x)计算每一个输入x的输出,函数如下图。3.3TanH/HyperbolicTangent类型:TANH例子:layers{name:"encode1neuron"bottom:"encode1"top:"encode1neuron"type:SIGMOID}TANH层通过tanh(x)计算每一个输入x的输出,函数如下图。3.3AbsoluteValue类型:ABSVAL例子:layers{name:"layer"bottom:"in"top:"out"type:ABSVAL}ABSVAL层通过abs(x)计算每一个输入x的输出。3.4Power类型:POWER例子:layers{name:"layer"bottom:"in"top:"out"type:POWERpower_param{power:1scale:1shift:0}}可选参数:power[default1]scale[default1]shift[default0]POWER层通过(shift+scale*x)^power计算每一个输入x的输出。3.5BNLL类型:BNLL例子:layers{name:"layer"bottom:"in"top:"out"type:BNLL}BNLL(binomialnormalloglikelihood)层通过log(1+exp(x))计算每一个输入x的输出。4.数据层(DataLayers)数据通过数据层进入Caffe,数据层在整个网络的底部。数据可以来自高效的数据库(LevelDB或者LMDB),直接来自内存。如果不追求高效性,可以以HDF5或者一般图像的格式从硬盘读取数据。4.1Database类型:DATA必须参数:source:包含数据的目录名称batch_size:一次处理的输入的数量可选参数:rand_skip:在开始的时候从输入中跳过这个数值,这在异步随机梯度下降(SGD)的时候非常有用backend[defaultLEVELDB]:选择使用LEVELDB或者LMDB4.2In-Memory类型:MEMORY_DATA必需参数:batch_size,channels,height,width:指定从内存读取数据的大小Thememorydatalayerreadsdatadirectlyfrommemory,withoutcopyingit.Inordertouseit,onemustcallMemoryDataLayer::Reset(fromC++)orNet.set_input_arrays(fromPython)inordertospecifyasourceofcontiguousdata(as4Drowmajorarray),whichisreadonebatch-sizedchunkatatime.4.3HDF5Input类型:HDF5_DATA必要参数:source:需要读取的文件名batch_size:一次处理的输入的数量4.4HDF5Output类型:HDF5_OUTPUT必要参数:file_name:输出的文件名HDF5的作用和这节中的其他的层不一样,它是把输入的blobs写到硬盘4.5Images类型:IMAGE_DATA必要参数:source:text文件的名字,每一行给出一张图片的文件名和labelbatch_size:一个batch中图片的数量可选参数:rand_skip:在开始的时候从输入中跳过这个数值,这在异步随机梯度下降(SGD)的时候非常有用shuffle[defaultfalse]new_height,new_width:把所有的图像resize到这个大小4.6Windows类型:WINDOW_DATA4.7Dummy类型:DUMMY_DATADummy层用于development和debugging。具体参数DummyDataParameter。5.一般层(CommonLayers)5.1全连接层InnerProct类型:INNER_PRODUCT例子:layers{name:"fc8"type:INNER_PRODUCTblobs_lr:1#learningratemultiplierforthefiltersblobs_lr:2#learningratemultiplierforthebiasesweight_decay:1#weightdecaymultiplierforthefiltersweight_decay:0#weightdecaymultiplierforthebiasesinner_proct_param{num_output:1000weight_filler{type:"gaussian"std:0.01}bias_filler{type:"constant"value:0}}bottom:"fc7"top:"fc8"}必要参数:num_output(c_o):过滤器的个数可选参数:weight_filler[defaulttype:'constant'value:0]:参数的初始化方法bias_filler:偏置的初始化方法bias_term[defaulttrue]:指定是否是否开启偏置项通过全连接层后的大小变化:输入:n*c_i*h_i*w_i输出:n*c_o*1*15.2Splitting类型:SPLITSplitting层可以把一个输入blob分离成多个输出blobs。这个用在当需要把一个blob输入到多个输出层的时候。5.3Flattening类型:FLATTENFlattening是把一个输入的大小为n*c*h*w变成一个简单的向量,其大小为n*(c*h*w)*1*1。5.4Concatenation类型:CONCAT例子:layers{name:"concat"bottom:"in1"bottom:"in2"top:"out"type:CONCATconcat_param{concat_dim:1}}可选参数:concat_dim[default1]:0代表链接num,1代表链接channels通过全连接层后的大小变化:输入:从1到K的每一个blob的大小n_i*c_i*h*w输出:如果concat_dim=0:(n_1+n_2++n_K)*c_1*h*w,需要保证所有输入的c_i相同。如果concat_dim=1:n_1*(c_1+c_2++c_K)*h*w,需要保证所有输入的n_i相同。通过Concatenation层,可以把多个的blobs链接成一个blob。5.5SlicingTheSLICElayerisautilitylayerthatslicesaninputlayertomultipleoutputlayersalongagivendimension(currentlynumorchannelonly)withgivensliceindices.5.6ElementwiseOperations类型:ELTWISE5.7Argmax类型:ARGMAX5.8Softmax类型:SOFTMAX5.9Mean-VarianceNormalization类型:MVN6.参考Caffe

热心网友 时间:2022-03-27 16:37

基于caffe做目标检测的问题,需要利用caffe来训练一个回归网络,用来预测object在图像中的位置(x1,y1,width,height)。但是现有的caffe版本(happynear版本)只适用于二分类问题的数据集转换,所以需要修改caffe源码,使之也可以转换回归问题的数据集。
caffe做回归问题时loss曲线出现周期性震荡是怎么回事?如何解决

你可以试试适当调整一下batch_size的值;或者更换一下优化算法

15 个开源的顶级人工智能工具

开发者可以使用Orys 2创建新的应用程序,另外它还拥有一些预先构建的应用程序可以用于常见的大数据任务比如协同过滤、分类、回归和聚类。大数据工具供应商Cloudera创造了最初的Oryx 1项目并且一直积极参与持续发展。12.PredictionIO 今年的二月,Salesforce收购了PredictionIO,接着在七月,它将该平台和商标贡献...

普通人如何抓住AI这个风口?

4、人工智能基础知识:ID3、C4.5、逻辑回归、SVM、分类器等算法的特性、性质和其他算法对比的区别等内容; 5、工具基础知识:opencv、matlab、caffe等。 总之,我要说,如果您想赶得上这股浪潮,就要做好准备迎接挑战,因为人工智能将会越来越复杂,并且发展速度也会非常的快。所以,还是要做好充分的心理准备才行,加油吧~ ...

python 机器学习 用什么库

1、Scikit-Learn Scikit-Learn基于Numpy和Scipy,是专门为机器学习建造的一个Python模块,提供了大量用于数据挖掘和分析的工具,包括数据预处理、交叉验证、算法与可视化算法等一系列接口。Scikit-Learn基本功能可分为六个部分:分类、回归、聚类、数据降维、模型选择、数据预处理。其中集成了大量分类、回归、聚...

成为Python全栈工程师要多久

随机森林、回归以及神经网络、测试集以及评价标准Python机器学习常用库scikit-learn、数据预处理、Tensorflow学习、基于Tensorflow的CNN与RNN模型、Caffe两种常用数据源制作、OpenCV库详解、人脸识别技术、车牌自动提取和遮蔽、无人机开发、Keras深度学习、贝叶斯模型、无人驾驶模拟器使用和开发、特斯拉远程控制API和自动化驾驶...

python需要学习什么内容?

建立Python开发环境,并使用print输出 使用Python完成字符串的各种操作 使用Python re模块进行程序设计 使用Python创建文件、访问、删除文件 掌握import 语句、From…import 语句、From…import* 语句、方法的引用、Python中的包 ②Python软件开发进阶 能够使用Python面向对象方法开发软件 能够自己建立数据库,表,...

黑马Python就业班多久?

随机森林、回归以及神经网络、测试集以及评价标准Python机器学习常用库scikit-learn、数据预处理、Tensorflow学习、基于Tensorflow的CNN与RNN模型、Caffe两种常用数据源制作、OpenCV库详解、人脸识别技术、车牌自动提取和遮蔽、无人机开发、Keras深度学习、贝叶斯模型、无人驾驶模拟器使用和开发、特斯拉远程控制API和自动化驾驶...

审计学python需要多久(财务审计一般多久)

使用unique函数查看唯一值,使用Values函数用来查看数据表中的数值。 二、数据表清洗 Python中处理空值的方法比较灵活,可以使用Dropna函数用来删除数据表中包含空值的数据,也可以使用fillna函数对空值进行填充。Python中dtype是查看数据格式的函数,与之对应的是astype函数,用来更改数据格式,Rename是更改列名称的函数,drop_...

初学者怎么学习Python

人工智能课程内容包括:机器学习要素、常见流派、自然语言识别、分析原理词向量模型word2vec、剖析分类、聚类、决策树、随机森林、回归以及神经网络、测试集以及评价标准Python机器学习常用库scikit-learn、数据预处理、Tensorflow学习、基于Tensorflow的CNN与RNN模型、Caffe两种常用数据源制作、OpenCV库详解、人脸识别...

初学者python怎么学

人工智能课程内容包括:机器学习要素、常见流派、自然语言识别、分析原理词向量模型word2vec、剖析分类、聚类、决策树、随机森林、回归以及神经网络、测试集以及评价标准Python机器学习常用库scikit-learn、数据预处理、Tensorflow学习、基于Tensorflow的CNN与RNN模型、Caffe两种常用数据源制作、OpenCV库详解、人脸识别...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
几何e值得买吗 我英语80分左右总是上不去(100分满分)怎么办... 刚绣好的十字绣怎么洗?画过格的 台州温岭第一人民医院有儿科吗 北山职业技术学校有哪些专业? 在温岭市找一份夜里兼职的驶机工作我现白天在厂里开车,想多收入,找... ...网线连接了客厅的路由器再连接到电脑上,卧室用的是和客厅路由器分... ...器放在客厅看电视用,卧室里面我还得再牵一根网线怎么办? ...台式 路由器在客厅距离太远拉网线不方便 卧室里有网线插口 卧室的网 ... 在临海社保缴费了一年后离开没办转移,去宁波参加社保 后又回临海参加社... 如何通过Python进行深度学习? ps中的图层链接有什么作用 如何在Caffe中配置每一个层的结构 如何评价ILSVRC 2015 结果 前馈神经网络、BP神经网络、卷积神经网络的区别与联系 外企 fcn 是什么职位 如何更好的理解分析深度卷积神经网络 画出一个典型chn网络结构图,并描述各部分的作用 什么是全连接神经网络?怎么理解“全连接”? 深度学习之卷积神经网络经典模型 卷积神经网络用全连接层的参数是怎么确定的? 神经网络最后一层怎么把特征变成一个值 为什么要两层全连接层 卷积神经网络为什么最后接一个全连接层 小米8麦克风进了一点水有没有问题? 想问下1加6和小米8买哪个好 揭秘,小米手机为什么不防水 小米8青春版可以把摄像头伸到水里吗 小米8 为什么没有介绍防水,电池和无线充电 小米手机防水吗 简述数据链路层和网络层的作用? 网络的七层各自的作用是什么?要简单的解释,有例子最好 怎么在Caffe中配置每一个层的结构 数据链路层的主要功能 微信视频通话时为什么是倒着的 为什么微信发视频是倒着的? 华为手机微信视频怎么是反的 为什么手机微信视频聊天人会倒过来? 为什么微信和别人视频聊天时自己是上下颠倒的(就像倒立着)? 平板电脑上微信视频聊天前摄像头人怎么是倒过来的怎么办_问一问 微信的视频影像是倒着的 为什么在平板手机上微信的视频聊天图像是倒着的 苹果13promax镜头是什么牌子 iphone4的摄像头是哪家厂商生产的 苹果12摄像头是索尼什么型号 苹果se2的摄像头有那些厂家的 我听说苹果手机用的是索尼的摄像头,真的吗 苹果8p的相机是什么厂家 苹果手机的镜头是什麽品牌 苹果14摄像头是蔡司的吗
  • 焦点

最新推荐

猜你喜欢

热门推荐