热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

caffe入门学习:从我们的数据转化成为caffe可以使用的数据格式

caffe入门学习:从我们的数据转化成为caffe可以使用的数据格式大部分情况下我们都会从网络上下载部分图片,来进行训练网络,但是caffe使用

               caffe入门学习:从我们的数据转化成为caffe可以使用的数据格式


      大部分情况下我们都会从网络上下载部分图片,来进行训练网络,但是caffe使用的数据格式却和我们下载得到的却有所不同,需要把我们使用的数据格式来进行转化。caffe提供了caffe-master/build/tools/convert_imageset这个命令来对数据进行转化。

     首先看看这个命令的使用方法:

     具体信息convert_imageset如下:

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

     

            flags:存储一系列的图片集合

      rootfolder:必须是从根目录下的绝对路径指向图片的存储位置:

      listfile:图片文件的清单列表, 每行存数的是图片的名称个图片的路径:

      db_name:最终存储的文件的名称:

      这里我们需要对原来的数图片数据集合进行处理,得到可用的rootfloder:

      rootfloder的产生:切换路径到examples/images下,会看到两张图片,输入以下命令

find . -name *cat.jpg | cut -d '/' -f2 | sed "s/$/ 1/">>$DATA/train.txt
find . -name *bike.jpg | cut -d '/' -f2 | sed "s/$/ 2/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt
     稍微解释一下:find . -name * cat.jpg用于查找文件,得到./cat.jpg格式的数据

     之后用cut -d 和-f来得到后面的cat.jpg的字符串。-d后面加上切分标志,得到一个(.)和一个(cat.jpg),-f2 表示取cat.jpg。sed主要是用于处理文件的一行用的,“s/$/ 1”表示把每行文件的后面替换成为空格+1的模式。"s/a/b/"g用于把a换成b。cat A>>B用于把A文件的内容添加到B的后面。最终得到的文件如下:

cat.jpg 1
fish-bike.jpg 1

     下面使用convert_imageset函数:切换到build/tools下面:

./convert_imageset --shuffle \  //使用shuffle
--resize_height=256 --resize_width=256 \ //图片的大小都会调用opencv来获得固定的大小
/opt/modules/caffe-master/examples/images/ \ // 图片的绝对存储路径
/opt/modules/caffe-master/examples/images/train.txt \ // 文件的列表信息
/opt/modules/caffe-master/examples/images/img_train_lmdb \ //最终生成的数据库保存的路径
    就会在最终的目录下得到索要文件:

data.mdb  lock.mdb

   


推荐阅读
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 创建第一个 MUI 移动应用项目
    本文将详细介绍如何使用 HBuilder 创建并运行一个基于 MUI 框架的移动应用项目。我们将逐步引导您完成项目的搭建、代码编写以及真机调试,帮助您快速入门移动应用开发。 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ... [详细]
author-avatar
超_级如新公司
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有