摘要:近日,该论文的一作终于在上公开了该论文中的代码。该项目上线天便获得了个,并被了次。
当前的深度学习理论是由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
欢迎加入本站公开兴趣群商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/4739.html
摘要:本文试图揭开让人迷惘的云雾,领悟背后的原理和魅力,品尝这一顿盛宴。当然,激活函数本身很简单,比如一个激活的全连接层,用写起来就是可是,如果我想用的反函数来激活呢也就是说,你得给我解出,然后再用它来做激活函数。 由深度学习先驱 Hinton 开源的 Capsule 论文 Dynamic Routing Between Capsules,无疑是去年深度学习界最热点的消息之一。得益于各种媒体的各种...
摘要:近日,科大讯飞与华为在深圳签署了战略合作协议,科大讯飞董事长刘庆峰华为轮值董事长徐直军均出席签约仪式,足以看出双方对此次合作的重视程度。华为云需要科大讯飞,特别是科大讯飞的智能语音技术。在云计算智能语音领域,BAT由于多年的互联网基因,都有非常深厚的智能语音功底,百度有百度度秘,阿里有阿里小蜜,腾讯有腾讯小微。而华为云作为一家传统ICT转型做云的企业,似乎并没有经受太多互联网智能语音训练。但...
摘要:而加快推动这一趋势的,正是卷积神经网络得以雄起的大功臣。卷积神经网络面临的挑战对的深深的质疑是有原因的。据此,也断言卷积神经网络注定是没有前途的神经胶囊的提出在批判不足的同时,已然备好了解决方案,这就是我们即将讨论的胶囊神经网络,简称。 本文作者 张玉宏2012年于电子科技大学获计算机专业博士学位,2009~2011年美国西北大学联合培养博士,现执教于河南工业大学,电子科技大学博士后。中国计...
摘要:在底层的胶囊之后连接了层和层。胶囊效果的讨论在论文最后,作者们对胶囊的表现进行了讨论。他们认为,由于胶囊具有分别处理不同属性的能力,相比于可以提高对图像变换的健壮性,在图像分割中也会有出色的表现。 背景目前的神经网络中,每一层的神经元都做的是类似的事情,比如一个卷积层内的每个神经元都做的是一样的卷积操作。而Hinton坚信,不同的神经元完全可以关注不同的实体或者属性,比如在一开始就有不同的神...
摘要:等人最近关于胶囊网络的论文在机器学习领域造成相当震撼的影响。它提出了理论上能更好地替代卷积神经网络的方案,是当前计算机视觉领域的技术。而这就是这些胶囊网络运行方式的本质。为了简化,我们将假设一个两层的胶囊网络。产生的结果值将被称为。 Geoff Hinton等人最近关于胶囊网络(Capsule networks)的论文在机器学习领域造成相当震撼的影响。它提出了理论上能更好地替代卷积神经网络的...
阅读 804·2023-04-25 19:40
阅读 3405·2023-04-25 17:41
阅读 2993·2021-11-11 11:01
阅读 2587·2019-08-30 15:55
阅读 3217·2019-08-30 15:44
阅读 1347·2019-08-29 14:07
阅读 478·2019-08-29 11:23
阅读 1314·2019-08-27 10:54