第一:

可以选择在将数据转换成lmdb格式时进行打乱;

设置参数--shuffle=1;(表示打乱训练数据)

默认为0,表示忽略,不打乱。

打乱的目的有两个:防止出现过分有规律的数据,导致过拟合或者不收敛。

在caffe中可能会使得,在模型进行测试时,每一个测试样本都输出相同的预测概率值。

或者,直接打乱训练文件的标签文件:train.txt

方法如下:

1)将 train_160309-train.txt按行打乱,每行内容则保持不变,命令:

  1. cd 存放文件的路径
  2. awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}'

2)但这样处理后只是在屏幕上输出显示,如果需要将输出写入新的文本train.txt,则在末尾加上 | tee train.txt:

  1. sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' | tee train.txt

3)如果不需要在屏幕上输出显示,直接将输出写入新的文本train.txt,则在末尾将 | tee 换作 > 即可:

  1. sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' > train.txt

附:

1、awk命令详解

2、tee命令详解

参考:https://blog.csdn.net/u010555688/article/details/50475739

caffe 中如何打乱训练数据的更多相关文章

  1. 在caffe中使用hdf5的数据

    caffe默认使用的数据格式为lmdb文件格式,它提供了把图片转为lmdb文件格式的小程序,但是呢,我的数据为一维的数据,我也要分类啊,那我怎么办?肯定有办法可以转为lmdb文件格式的,我也看了一些源 ...

  2. python numpy 三行代码打乱训练数据

    今天发现一个用 numpy 随机化数组的技巧. 需求 我有两个数组( ndarray ):train_datasets 和 train_labels.其中,train_datasets 的每一行和 t ...

  3. caffe中python接口的使用

    下面是基于我自己的接口,我是用来分类一维数据的,可能不具通用性: (前提,你已经编译了caffe的python的接口) 添加 caffe塻块的搜索路径,当我们import caffe时,可以找到. 对 ...

  4. (原)caffe中通过图像生成lmdb格式的数据

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5909121.html 参考网址: http://www.cnblogs.com/wangxiaocvp ...

  5. CAFFE中训练与使用阶段网络设计的不同

    神经网络中,我们通过最小化神经网络来训练网络,所以在训练时最后一层是损失函数层(LOSS), 在测试时我们通过准确率来评价该网络的优劣,因此最后一层是准确率层(ACCURACY). 但是当我们真正要使 ...

  6. caffe中使用crop_size剪裁训练图片

    layer { name: "data" type: "Data" top: "data" top: "label" i ...

  7. caffe学习--使用caffe中的imagenet对自己的图片进行分类训练(超级详细版) -----linux

    http://blog.csdn.net/u011244794/article/details/51565786 标签: caffeimagenet 2016-06-02 12:57 9385人阅读  ...

  8. sql 中实现打乱数据的排序

    sql 中实现打乱数据的排序    order by NEWID()就实现了数据的打乱 

  9. caffe 中 python 数据层

    caffe中大多数层用C++写成. 但是对于自己数据的输入要写对应的输入层,比如你要去图像中的一部分,不能用LMDB,或者你的label 需要特殊的标记. 这时候就需要用python 写一个输入层. ...

随机推荐

  1. Codeforces 702A Maximum Increase(dp)

    题目链接:http://codeforces.com/problemset/problem/702/A 题意: 给你N个数,a[0], a[1], a[2], ....., a[n-1],让你找出最长 ...

  2. pyinstaller对多进程程序的打包

    在使用python的第三方库pyinstaller对多进程程序进行打包时,程序不能正常的运行,但是后台却有多个进程一直在使用资源. 解决方法很简单,在if __name__ == '__main__' ...

  3. XSS && CRLF && property&attribute

    XSS cross-site scripting 跨站点脚本,为了避免与css冲突,命名为XSS.它是将恶意代码作为一个网页内容,这些恶意代码会注入到用户的浏览器中并执行,从而使用户受到攻击,常见的有 ...

  4. Linux命令之last

    last [-num | -n num] [-f file] [-t YYYYMMDDHHMMSS] [-R] [-adioxFw] [username..] [tty..] last作用是显示近期用 ...

  5. 8、Flask实战第8天:add_url_rule和app.route原理

    之前我们使用@app.route这个装饰器来把视图函数和url绑定 @app.route('/') def hell_world(): return 'hello world' 而且我们可以通过url ...

  6. RPD Volume 172 Issue 1-3 December 2016 评论01

    Evaluation of Imaging Dose From Different Image Guided Systems During Head and Neck Radiotherapy: A ...

  7. 【拓扑排序】【堆】CH Round #57 - Story of the OI Class 查错

    拓扑排序,要让字典序最小,所以把栈改成堆. #include<cstdio> #include<queue> #include<algorithm> using n ...

  8. JNI之数组

    Array Operations -- 数组操作 1.GetArrayLength jsize GetArrayLength(JNIEnv *env, jarray array); Returns t ...

  9. Java使用POM一JAR包的形式管理JavaScript文件-WebJars

    说明:原来JS框架还可以使用POM进行管理的.WebJars是一个很神奇的东西,可以让大家以JAR包的形式来使用前端的各种框架.组件. 什么是WebJars 什么是WebJars?WebJars是将客 ...

  10. ThinkPHP模板中JS等带花括号处会被解析错误的解决办法

    如下图,当本人在ThinkPHP框架的模板中写jQuery代码的时候,写了一些注释,并且注重是斜线和换括号{是连着一起的,这层语法上来时是没问题的,但是在ThinkPHP 的模板引擎解析下,会被解析掉 ...