当前的深度学习理论是由Geoffrey Hinton大神在2007年确立起来的,但是如今他却认为,“CNN的特征提取层与次抽样层交叉存取,将相同类型的相邻特征检测器的输出汇集到一起”是大有问题的。

去年9月,在多伦多接受媒体采访时,Hinton大神断然宣称要放弃反向传播,让整个人工智能从头再造。10月,人们关注已久的Hinton大神那篇Capsule论文”Dynamic Routing between Capsules”终于揭开面纱。

在论文中,Capsule被Hinton大神定义为这样一组神经元:其活动向量所表示的是特定实体类型的实例化参数。他的实验表明,鉴别式训练的多层Capsule系统,在MNIST手写数据集上表现出目前最先进的性能,并且在识别高度重叠数字的效果要远好于CNN。

近日,该论文的一作Sara Sabour终于在GitHub上公开了该论文中的代码。该项目上线5天便获得了217个Star,并被fork了14218次。下面让我们一起来看看Sara Sabour开源的代码吧。

胶囊模型的代码在以下论文中使用:

“Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton.

要求

  • TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级)
  • NumPy (详见http://www.numpy.org/)
  • GPU

运行测试代码验证设置是否正确,比如:

python layers_test.py

快速MNIST测试结果:

从以下网址下载并提取MNIST记录到$DATA_DIR/:

https://storage.googleapis.com/capsule_toronto/mnist_data.tar.gz

从以下网址下载并提取MNIST模型检测点(checkpoint)到$CKPT_DIR:

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --train=false \
--summary_dir=/tmp/ --
checkpoint=$CKPT_DIR/mnist_checkpoint/model.ckpt-1

快速CIFAR10 ensemble测试结果:

  • 从以下网址下载并提取cifar10二进制版本到$DATA_DIR/:
    https://www.cs.toronto.edu/~kriz/cifar.html
  • 从以下网址下载并提取cifar10模型检测点(checkpoint)到$CKPT_DIR:
    https://storage.googleapis.com/capsule_toronto/cifar_checkpoints.tar.gz
  • 将提取的二进制文件目录作为data_dir传递给($DATA_DIR)
python experiment.py --data_dir=$DATA_DIR --train=false --dataset=cifar10 \
--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false \
--summary_dir=/tmp/ --checkpoint=$CKPT_DIR/cifar/cifar{}/model.ckpt-600000 \
--num_trials=7

Sample CIFAR10训练命令:

python experiment.py --data_dir=$DATA_DIR --dataset=cifar10 --max_steps=600000\
--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false \
--summary_dir=/tmp/

Sample MNIST完整训练命令:

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000\
--summary_dir=/tmp/attempt0/

Sample MNIST 基线训练命令:

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000\
--summary_dir=/tmp/attempt1/ --model=baseline

上述模型的训练期间在验证集上进行测试

训练中连续运行的注意事项:

  • 在训练中 –validate = true
  • 总共需要总共2块GPU:一个用于训练,一个用于验证
  • 如果训练和验证工作位于同一台机器上,则需要限制每个任务的RAM占用量,因为TensorFlow会默认为第一个任务分配所有的RAM,而第二个任务将无法进行。

在MultiMNIST上测试/训练:

--num_targets = 2
--data_dir = $ DATA_DIR / multitest_6shifted_mnist.tfrecords@10

生成multiMNIST / MNIST记录的代码位于input_data / mnist / mnist_shift.py

生成multiMNIST测试分割的示例代码:

python mnist_shift.py --data_dir=$DATA_DIR/mnist_data/ --split=test --shift=6
--pad=4 --num_pairs=1000 --max_shard=100000 --multi_targets=true

为affNIST泛化能力建立expanded_mnist: –shift = 6;–pad = 6。

Github地址:
https://github.com/Sarasra/models/tree/master/research/capsules
论文地址:
https://arxiv.org/abs/1710.09829

Hinton胶囊理论代码开源,上线即受热捧相关推荐

  1. 安卓9与10的系统要求_代码开源!支持RISC-V架构的安卓系统终于来了!

    文章来源:芯片开放社区,作者:OCC编辑 万里征途迈出第一步,基于RISC-V的安卓10系统来了. 点击链接查案演示视频: 平头哥芯片开放社区(OCC)​occ.t-head.cn 今天,平头哥完成了 ...

  2. 语音合成论文与韩国小哥“撞车”后续:英伟达“赶紧”把代码开源了

    乾明 编辑整理 量子位 出品 | 公众号 QbitAI 前两天,量子位报道了韩国小哥语音合成论文与英伟达撞车一事. 在得知自己的论文与英伟达的论文"撞车"之后,韩国小哥赶紧在arX ...

  3. 2020华为软挑热身赛代码开源-思路大起底(华为软件精英挑战赛编程闯关)

    本文首发于个人公众号[两猿社],后台回复[华为],获取完整开源代码链接. 昵称:lou_shang_shi_bian_tai 成绩:0.032 社长没有针对硬件做任何优化,热身赛成绩也一般.但有些比赛 ...

  4. 太牛了!华为天才少年稚晖君又自制硬萌机器人,代码开源了

    文末送书福利,记得看完~ 作者|新智元 编辑|桃子 拉燕 还记得上次那个「全栈自研」的给葡萄缝针的钢铁侠机械臂Dummy吗? 近3个月没更的华为「天才少年」稚晖君带着他的最新视频来了! 虽然跳票了一段 ...

  5. GIt+jenkins代码自动上线

    代码自动上线功能 企业部署代码上线是件比较麻烦的事情,还好我们有jenkins这个持续集成的软件可以帮助我们做很多的事情,现在我们就 来测试用jenkins推送代码上线. 我们这里测试的是一个html ...

  6. 【通知】《生成对抗网络GAN原理与实践》代码开源,勘误汇总!

    有三上个月出版了新书<生成对抗网络GAN:原理与实践>,Generative Adversarial Networks(中文名生成对抗网络,简称GAN)自从被提出来后,其发展就非常迅猛,几 ...

  7. 最新发布!SMOKE 单目3D目标检测,代码开源!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者| 黎国溥 编辑| 3D视觉开发者社区 SMOKE是一个one-stage的单目视觉障碍物检测模型 ...

  8. 天津椭圆曲线科技(原木姜子科技)市集商城代码开源

    一. 市集简介 市集是由天津木姜子科技知鱼定制技术团队开发的一款商城类 SAAS 平台应用,用户可以在 15 分钟内就可以开通自己的商城,目前客户端应用包含 APP,微信小程序,支付宝小程序, H5 ...

  9. 单目纯视觉避障方案——2020中国机器人大赛FIRA避障仿真组决赛代码开源

    单目纯视觉避障方案--2020中国机器人大赛FIRA避障仿真组决赛代码开源 目录 单目纯视觉避障方案--2020中国机器人大赛FIRA避障仿真组决赛代码开源 比赛环境介绍 赛题要求 比赛思路 该方案的 ...

最新文章

  1. python 检测exe是否未响应_第002篇:Python的安装
  2. jvm_虚拟机参数讲解(三)
  3. 20145225 《信息安全系统设计基础》第14周学习总结
  4. 剑桥大学的下午茶,为何能喝出六十位诺贝尔奖获得者?
  5. 数字图像处理王伟强_深度学习主导下,还有必要学数字图像处理?
  6. linux 网卡驱动安装
  7. vue中怎么点击修改文字_杭州展馆设计中说明牌和说明文字怎么样才能使用最大化?...
  8. Android:复杂listview条目
  9. 追踪电子邮件行踪的“眼”
  10. 如何在桌面添加计算机日历工具,如何在电脑桌面上添加日历小工具?
  11. 常见的DoS攻击防御方式
  12. Java实现163邮箱发送邮件到QQ邮箱
  13. “欢迎来到智能城市,我是小武”
  14. 自己动手编写CSDN博客备份工具-blogspider之源码分析(1)
  15. 神经网络架构搜索——可微分搜索(DARTS)
  16. 仿 手机QQ 登录、注册、找回密码、好友列表、QQ状态等功能的实现
  17. Go语言案例(一)音乐播放器
  18. 项目质量管理全部精华看这篇就够了
  19. Java-设计模式之单例模式
  20. 计算机网络 第二讲:HTTP

热门文章

  1. com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 1024)
  2. 电子工程师必须掌握的20个模拟电路
  3. Java的Clone
  4. 精通JavaScript--07设计模式:行为型
  5. Mac环境下svn的使用
  6. What Are Words(一诺千金)
  7. ArcObjects编程方法(七):.NET中继承ArcGIS COM类
  8. jQuery选择器的工作原理和优化
  9. 中国电子学会scratch等级考试四级编程题:找出出现次数最多的数字
  10. 刻意练习:LeetCode实战 -- Task20. 对称二叉树