在计算机视觉领域,卷积神经网络(CNN)已经成为最主流的方法,比如GoogLenet、VGG-19、Incepetion等模型。CNN史上的一个里程碑事件是ResNet模型的出现,ResNet可以训练出更深的CNN模型,从而实现更高的准确度。ResNet模型的核心是通过建立前面层与后面层之间的“短路连接”(shortcuts,skip connection),这有助于训练过程中梯度的反向传播,从而能训练出更深的CNN网络。
DenseNet模型的基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(dense connection),它的名称也是由此而来。DenseNet的另一大特色是通过特征在channel上的连接来实现特征重用(feature reuse)。这些特点让DenseNet在参数和计算成本更少的情形下实现比ResNet更优的性能,DenseNet也因此斩获CVPR 2017的最佳论文奖。
1 集成DenseNet的报错信息
最近要把DenseNet集成到现有的运行平台,结果发现加载模型时caffe报如下错误信息:
[TL] 2019/03/21 19:52:17.688357 [8 12 34642][libprotobuf ERROR google/protobuf/text_format.cc:245] Error parsing text-format caffe.NetParameter: 54:15: Message type "caffe.PoolingParameter" has no field named "round_mode".
[TL] 2019/03/21 19:52:17.688714 [8 12 34642]F0321 19:52:17.688385 34642 upgrade_proto.cpp:90] Check failed: ReadProtoFromTextFile(param_file, param) Failed to parse NetParameter file: /workspace/AI/expression_v2/expression.prototxt
[TL] 2019/03/21 19:52:17.688827 [8 12 34642]*** Check failure stack trace: ***
[TL] 2019/03/21 19:52:17.689052 [8 12 34642] @ 0x7fc916efc84d google::LogMessage::Fail()
[TL] 2019/03/21 19:52:17.689222 [8 12 34642] @ 0x7fc916efe61c google::LogMessage::SendToLog()
[TL] 2019/03/21 19:52:17.689387 [8 12 34642] @ 0x7fc916efc43c google::LogMessage::Flush()
[TL] 2019/03/21 19:52:17.689550 [8 12 34642] @ 0x7fc916efef2e google::LogMessageFatal::~LogMessageFatal()
[TL] 2019/03/21 19:52:17.690197 [8 12 34642] @ 0x7fc91639a17e c