本文部分内容来源于CDA深度学习实战课堂,由唐宇迪老师授课 如果你企图用CPU来训练模型,那么你就疯了- 训练模型中,最耗时的因素是图像大小size,一般227*227用CPU来训练的话,训练1万次可能要超过1周的时间. 不同的网络结构,可能会有不同图片尺寸的需求,所以训练之前需要了解一下,在生成LMDB环节就直接符合上模型的数据要求. 如果你自己DIY了框架,那么不知道如何检验框架与通用框架比较,是否优质,可以去benchmarks网站,跟别人的PK一下:http://human-pose.m…
版权声明:博主原创文章,微信公众号:素质云笔记,转载请注明来源“素质云博客”,谢谢合作!! https://blog.csdn.net/sinat_26917383/article/details/54141697 本文部分内容来源于CDA深度学习实战课堂,由唐宇迪老师授课 如果你企图用CPU来训练模型,那么你就疯了… 训练模型中,最耗时的因素是图像大小size,一般227*227用CPU来训练的话,训练1万次可能要超过1周的时间. 不同的网络结构,可能会有不同图片尺寸的需求,所以训练之前需要了…
Caffe应该是目前深度学习领域应用最广泛的几大框架之一了,尤其是视觉领域.绝大多数用Caffe的人,应该用的都是基于分类的网络,但有的时候也许会有基于回归的视觉应用的需要,查了一下Caffe官网,还真没有很现成的例子.这篇举个简单的小例子说明一下如何用Caffe和卷积神经网络(CNN: Convolutional Neural Networks)做基于回归的应用. 原理 最经典的CNN结构一般都是几个卷积层,后面接全连接(FC: Fully Connected)层,最后接一个Softmax层输…
利用caffe生成 lmdb 格式的文件,并对网络进行FineTuning 数据的组织格式为: 首先,所需要的脚本指令路径为: /home/wangxiao/Downloads/caffe-master/examples/imagenet/ 其中,生成lmdb的文件为: create_imagenet.sh 接下来的主要任务就是修改自己的data的存放路径了. #!/usr/bin/env sh # Create the imagenet lmdb inputs # N.B. set the p…
https://www.cnblogs.com/denny402/p/5074049.html solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover.prototxt 在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解.solver的主要作用就是交替调用前向(forward)算法和后向(ba…
你可以从系统 /tmp 文件夹获取,名字是什么 caffe.ubuntu.username.log.INFO.....之类 =============================================================================================================== caffe在训练的时候不仅会保存当前模型的参数(也就是caffemodel)文件,也会把训练到当前状态信息全部保存下来,这个文件就是solverstat…
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 # caffe train --solver=*_slover.prototxt 在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解.solver的主要作用就是交替调用前向(forward)算法和后向(backward)算法来更新参数,从而最小化loss,实际上就是一种迭代的优化算法. 到目前的版本,…
Caffe Python特征抽取 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ Caffe大家一般用到的深度学习平台都是这个,关于Caffe的训练通常一般都可以通过一些命令来执行,但是在deploy阶段,如果是做实际的工程,那么C++接口用得会相对比较多.但是Caffe是支持Python和Matlab接口的,所以用Python来做一些相关的特征的处理以及额外的任务比较方便 这里我主要是结合了Caffe官网的…
官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inference optimizer and runtime that delivers low latency, high-throughput inference for deep learning applications. TensorRT can be used to rapidly opti…
原文: http://blog.csdn.net/czp0322/article/details/52161759 今天在做FCN实验的时候,发现solver.prototxt文件一直用的都是model里自带的,一直都对里面的参数不是很了解,所以今天认真学习了一下里面各个参数的意义. DL的任务中,几乎找不到解析解,所以将其转化为数学中的优化问题.sovler的主要作用就是交替调用前向传导和反向传导 (forward & backward) 来更新神经网络的连接权值,从而达到最小化loss,实际…
在人工手动进行一些数据库写操作的时候(比方说数据订正),尤其是一些不可控的批量更新或删除,通常都建议备份后操作.不过不怕万一,就怕一万,有备无患总是好的.在线上或者测试环境误操作导致数据被删除或者更新后,想要恢复,一般有两种方法. 方法一.利用最近的全量备份+增量binlog备份,恢复到误操作之前的状态,但是随着数据量的增大,binlog的增多,恢复起来很费时.方法二.如果binlog的格式为row,那么就可以将binlog解析出来生成反向的原始SQL 以下是利用方法二写的一个python脚本b…
http://blog.csdn.net/czp0322/article/details/52161759 solver.prototxt 今天在做FCN实验的时候,发现solver.prototxt文件一直用的都是model里自带的,一直都对里面的参数不是很了解,所以今天认真学习了一下里面各个参数的意义. DL的任务中,几乎找不到解析解,所以将其转化为数学中的优化问题.sovler的主要作用就是交替调用前向传导和反向传导 (forward & backward) 来更新神经网络的连接权值,从而…
背景:一玩具厂可以生产两种浴盆玩具,分别是橡皮鸭和橡皮鱼,并且原材料和生产时间都有所限制,求如何才分配生产两种玩具的数量才可以让厂商达到最大利润. 假设条件如下: 产品名称 数量   duck a   fish b   产品名称 单位所需材料数量   duck 100   fish 125   总需材料数量 100a+125*b   库存材料数量 50000   产品名称 单位利润   duck 5$   fish 4$   总利润 a*5+b*4   图1 表格数据解析:假设生产一只橡皮鸭需要…
Caffe的solver参数设置 http://caffe.berkeleyvision.org/tutorial/solver.html solver是通过协调前向-反向传播的参数更新来控制参数优化的.一个模型的学习是通过Solver来监督优化和参数更新,以及通过Net来产生loss和梯度完成的. Caffe提供的优化方法有: Stochastic Gradient Descent (type: "SGD"), AdaDelta (type: "AdaDelta"…
引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/en/latest/  官方文档:https://keras.io/  文档主要是以keras2.0. . . Keras系列: 1.keras系列︱Sequential与Model模型.keras基本结构功能(一) 2.keras系列︱Application中五款已训练模型.VGG16框架(Seq…
Application的五款已训练模型 + H5py简述 Keras的应用模块Application提供了带有预训练权重的Keras模型,这些模型可以用来进行预测.特征提取和finetune. 后续还有对以下几个模型的参数介绍: Xception VGG16 VGG19 ResNet50 InceptionV3 所有的这些模型(除了Xception)都兼容Theano和Tensorflow,并会自动基于~/.keras/keras.json的Keras的图像维度进行自动设置.例如,如果你设置da…
python转换已转义的字符串 有时我们可能会获取得以下这样的字符串: >>> a = '{\\"name\\":\\"michael\\"}' >>> print a {\"name\":\"michael\"} 那么该如何将其转换为一个字典呢? 可以用以下的方法: >>> type(json.loads('“' + a + '”')) <type 'unicode…
1. 背景 1.1 Gradient Boosting Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次建立模型是在之前建立模型损失函数的梯度下降方向.损失函数是评价模型性能(一般为拟合程度+正则项),认为损失函数越小,性能越好.而让损失函数持续下降,就能使得模型不断改性提升性能,其最好的方法就是使损失函数沿着梯度方向下降(讲道理梯度方向上下降最快). Gradient Boost是一个框架,里面可以套入很多不同的算法. 1.2 Gradient Boost…
1.加载相关模块 1.1 加载numpy import numpy as np 1.2 加载caffe 有两种方法. 方法一(静态导入): 找到当前环境使用的python的site-packages目录,寻找方法: >>> import os >>> os.path.dirname(os.__file__) '/usr/lib64/python2.7' 如例则site-packages目录为/usr/lib64/python2.7/site-packages,在该目录下…
  版权声明:转载请注明出处,谢谢! https://blog.csdn.net/Quincuntial/article/details/59109447 1. Parameters solver.prototxt文件是用来告诉caffe如何训练网络的.solver.prototxt的各个参数的解释如下: base_lr 这个参数是用来表示网络的初始学习率的.这个值是一个浮点型实数. lr_policy 这个参数是用来表示学习率随着时间是如何变化的.值是字符串,需要加"".学习率变化的…
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较强大的东西:ipython notebook, 现在的最新版本改名叫jupyter notebook,它能将python代码搬到浏览器上去执行,以富文本方式显示,使得整个工作可以以笔记的形式展现.存储,对于交互编程.学习非常方便. python环境不能单独配置,必须要先编译好caffe,才能编译py…
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照:2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置 详情:先下载好cudnn-7.5-linux-x64-v5.1-rc.tgz安装包(貌似需要官网申请) 解压: tar -zxvf cudnn-7.5-linux-x64-v5.1-rc.tgz cd cuda s…
1.文件目录结构 caffe-root |--include |--example |--modules |--test.h |--test.cpp |--python |--src |--tools modules为我们添加的目录和文件 2.修改Makefile文件 (1)添加生成动态链接库文件名称 DYNAMIC_NAME_MODULES:=$(LIB_BUILD_DIR)/libmodules.so (2)获取所有源文件 # CXX_SRCS are the source files ex…
由于Python的灵活性,我们在caffe中添加自己定义的层时使用python层会更加方便,开发速速也会比C++更快,现在我就在这儿简单说一下如何在caffe中添加自定义的python层(使用的原网络结构时Lenet结构): 首先在caffe->python文件夹中添加自己定义的层函数.py文件,比如我这里命名为MyPythonLayer.py,该层实现的功能是对输入数据加上一个数字,如下: 然后在/home/zf/caffe/examples/mnist/lenet_train_test.pr…
caffe solver参数意义与设置 batchsize:每迭代一次,网络训练图片的数量,例如:如果你的batchsize=256,则你的网络每迭代一次,训练256张图片:则,如果你的总图片张数为1280000张,则要想将你所有的图片通过网络训练一次,则需要1280000/256=5000次迭代. epoch:表示将所有图片在你的网络中训练一次所需要的迭代次数,如上面的例子:5000次:我们称之为  一代.所以如果你想要你的网络训练100代时,则你的总的迭代次数为max_iteration=5…
Profile:PyCharm提供了性能分析工具Run->Profile,如下图所示.利用Profile工具可以对代码进行性能分析,找出瓶颈所在. 测试:下面以一段测试代码来说明如何使用pycharm的Profile功能. 测试代码见下文,文件命名为Test.py, 一共有5个函数,每个函数都调用了time.sleep进行延时,其中fun5函数调用了fun4函数: import time def fun1(a, b): print('fun1') print(a, b) time.sleep(1…
from __future__ import print_function import cPickle import gzip import os.path import random import numpy as np print("Expanding the MNIST training set") if os.path.exists("../data/mnist_expanded.pkl.gz"): print("The expanded tra…
关于cifar-10和mnist的weight_decay和momentum也是相当的重要:就是出现一次把cifar-10的两个值直接用在mnist上,发现错误很大.…
train loss 不断下降,test loss不断下降,说明网络仍在学习; train loss 不断下降,test loss趋于不变,说明网络过拟合; train loss 趋于不变,test loss不断下降,说明数据集100%有问题; train loss 趋于不变,test loss趋于不变,说明学习遇到瓶颈,需要减小学习率或批量数目; train loss 不断上升,test loss不断上升,说明网络结构设计不当,训练超参数设置不当,数据集经过清洗等问题.…