caffe的一些经典网络的实现

原文链接:http://blog.csdn.net/Quincuntial/article/details/72832136


自2012年Alexnet赢得了ImageNet竞赛以来,深度学习(神经网络)得到了飞速发展,产生了许多的神经网络结构,本文主要总结Caffe中使用的神经网络(分类的神经网络),本文的神经网络作者都使用Caffe训练过,并在Kaggle的Intel癌症预测比赛中进行了测试与使用(top 8%)。

1. Alexnet

Alexnet,2012年ImageNet竞赛冠军,深度学习的里程碑。

网络结构地址:https://github.com/BVLC/caffe/tree/master/models/bvlc_alexnet

预训练模型地址:http://dl.caffe.berkeleyvision.org/bvlc_alexnet.caffemodel

2. Squeezenet

Squeezenet设计目标不是为了提高识别的准确率,而是希望简化网络复杂度。squeezenet的模型结构确实很小,没压缩的情况下才5M左右,而且识别的精度还可以。

网络结构地址:https://github.com/DeepScale/SqueezeNet

预训练模型地址:https://github.com/DeepScale/SqueezeNet

3. VGG系列

VGG和GoogLenet是2014年imagenet竞赛的双雄,VGG主要分为VGG16和VGG19。其网络结构与预训练模型的地址如下:

VGG16的网络结构:https://gist.github.com/ksimonyan/211839e770f7b538e2d8#file-readme-md

VGG16的预训练模型: http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_16_layers.caffemodel

VGG19的网络结构:https://gist.github.com/ksimonyan/3785162f95cd2d5fee77#file-readme-md

VGG19的预训练模型:http://www.robots.ox.ac.uk/~vgg/software/very_deep/caffe/VGG_ILSVRC_19_layers.caffemodel

备注:上面的网络结构需要进行细微调整才能在Caffe中直接训练,主要是网络结构中的Type类型。

4. Resnet系列

Resnet网络,2015年ImageNet竞赛冠军,网络结构主要分为Resnet-50、Resnet-101、Resnet-152三种,当然也有一些其它的结构,例如Resnet-18,Resnet-14。

Github地址:https://github.com/KaimingHe/deep-residual-networks

Resnet-50、Resnet-101、Resnet-152的网络结构及预训练模型的下载地址:https://onedrive.live.com/?authkey=%21AAFW2-FVoxeVRck&id=4006CBB8476FF777%2117887&cid=4006CBB8476FF777

5. Inception系列

Inception系列是Google发明的一系列神经网络结构。

Inception-v1:

Inception-v1,即大名鼎鼎的GoogLenet,2014年ImageNet竞赛冠军。

网络结构地址:https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet

预训练模型地址:http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel

Inception-v2:

即Inception V1 + Batch Normalization。

网络结构地址:https://github.com/pertusa/InceptionBN-21K-for-Caffe

预训练模型地址:http://www.dlsi.ua.es/~pertusa/deep/Inception21k.caffemodel

Inception-v3:

网络结构地址:https://pan.baidu.com/s/1boC0HEf#list/path=%2F

预训练模型地址:https://pan.baidu.com/s/1boC0HEf#list/path=%2F

Inception-v4:

网络结构地址:https://pan.baidu.com/s/1c6D150#list/path=%2F

预训练模型地址:https://pan.baidu.com/s/1c6D150#list/path=%2F

Inception-resnet-v2:

网络结构地址:https://pan.baidu.com/s/1jHPJCX4#list/path=%2F

预训练模型地址:https://pan.baidu.com/s/1jHPJCX4#list/path=%2F

6. Densenet系列

网络结构及预训练模型地址:
https://github.com/liuzhuang13/DenseNetCaffe
https://github.com/shicai/DenseNet-Caffe

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Caffe是一个深度学习框架,它主要用于卷积神经网络。然而,由于LSTM网络也是深度学习的一种形式,因此Caffe也可以用于实现LSTM网络。 在Caffe中,实现LSTM网络的步骤与实现卷积神经网络的步骤类似。主要的区别在于LSTM网络中的神经元类型和连接方式。 以下是一个简单的LSTM网络的示例代码: ```python # 定义LSTM网络结构 net = caffe.NetSpec() net.data = caffe.layers.Input(shape=dict(dim=[1, 1, 10, 1])) # 定义LSTM层 net.lstm1 = caffe.layers.LSTM(num_output=10, weight_filler=dict(type='xavier')) net.lstm2 = caffe.layers.LSTM(num_output=10, weight_filler=dict(type='xavier')) # 定义全连接层 net.fc = caffe.layers.InnerProduct(num_output=1, weight_filler=dict(type='xavier')) # 定义网络结构 net.lstm1_top, net.lstm1_memory = net.lstm1(net.data, None) net.lstm2_top, net.lstm2_memory = net.lstm2(net.lstm1_top, net.lstm1_memory) net.fc_top = net.fc(net.lstm2_top) # 生成网络 with open('lstm.prototxt', 'w') as f: f.write(str(net.to_proto())) ``` 在这个示例中,我们定义了一个包含两个LSTM层和一个全连接层的网络。我们使用`LSTM`层来定义LSTM神经元,并使用`InnerProduct`层定义全连接层。我们还使用`Input`层来定义输入数据的形状。 在定义完网络结构之后,我们可以使用`to_proto()`方法将网络结构以字符串的形式写入文件中。这个文件可以被Caffe加载并用于训练和测试LSTM网络。 需要注意的是,与卷积神经网络不同,LSTM网络需要定义内部记忆状态。在这个示例中,我们使用`net.lstm1_memory`和`net.lstm2_memory`来存储LSTM层的内部状态,以便在下一次前向传递中使用。 此外,还需要注意LSTM网络的训练过程中需要使用BPTT(Back-Propagation Through Time)算法。这个算法是用于处理时间序列数据的反向传播算法。在Caffe中,我们可以使用`LSTMUnitLayer`层来实现BPTT算法。 总之,Caffe可以用于实现LSTM网络,只需要将LSTM层和全连接层添加到网络中,并定义好内部状态和BPTT算法即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值