前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RoomNet - 一个轻量级的ConvNet(700 KB)

RoomNet - 一个轻量级的ConvNet(700 KB)

作者头像
代码医生工作室
发布2019-07-22 10:20:17
7610
发布2019-07-22 10:20:17
举报
文章被收录于专栏:相约机器人相约机器人

卷积神经网络对房屋/公寓的不同房间的图片进行分类,在1839幅图像上具有88.9%的验证准确度。

GitHub链接

https://github.com/ironhide23586/RoomNet

完整演示文稿

https://github.com/ironhide23586/RoomNet/raw/master/documentation/RoomNet%20Presentation.pptx

这是一个自定义神经网络,我将输入图像分类为以下6个类之一(按其类ID的顺序) -

  • 后院
  • 浴室
  • 卧室
  • 前院
  • 厨房
  • 客厅

建筑

建筑模块

完整的网络架构

开箱即用的推论

infer.py中的优化推理代码。请参阅main方法中调用classify_im_dir方法的短代码。

训练

  • 输入图像尺寸= 224 x 224(试用300 x 300,600 x 600)
  • Softmax交叉熵损失与L2权重标准化一起使用
  • 学习率从0(最初)到0.3(间歇性地接近训练结束)变化。每个块后放置辍学图层。
  • 批量标准化移动装置和变量在受到辍学训练时被冻结
  • Adam Optimizer使用指数学习率衰减。
  • 最初使用BatchNorm移动装置/ vars的批量计算进行训练。通过训练网,通过禁用此计算并在训练期间使用冻结手段/变量来跟随此。导致验证准确率立即上升10%。
  • 批量大小从8(从开始)到45(向训练结束)变化为-8-> 32-> 40-> 45
  • 异步数据读取器采用基于队列的架构设计,即使批量较大,也可在训练期间实现快速数据I / O.

转换为推理优化版本

  • 从Tensorflow图中丢弃所有反向传播/训练相关的计算节点。
  • 模型大小从~2 MB减少到~800 KB。
  • network.py包含定义名为“RoomNet”的模型的类
  • 输出是一个excel文件,将每个图像路径映射到其标签。还可以将输入目录拆分为与类名对应的目录,并自动填充相应目录中的相关图像。

训练环境

  • 在拥有8GB GPU内存的NVIDIA GTX 1070笔记本级GPU上使用Tensorlfow + CUDA 10.0 + cuDNN进行的训练
  • 使用的计算系统是Alienware m17 r4。
  • 使用的CPU是Intel Core i7 - 6700HQ,具有8个逻辑内核,基本速率为2.6 GHz(turbo boost至~3.3 GHz)
  • 从头开始到达最佳模型的训练步骤数量为157,700。
  • 花在训练上的时间 - 约48小时

以前的方法尝试过

  • 尝试训练最终密集的NASnet移动,但准确度从未超过60%。
  • 尝试与InceptionV3一样,但收敛太长了。

表现图

验证准确性

验证分类F-Score

验证分类精度

验证分类回忆

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档