2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
12 #include "caffe/proto/caffe.pb.h"
14 #include "CaffeParser.hpp"
18 namespace armnnCaffeParser
21 class NetParameterInfo;
22 class LayerParameterInfo;
25 class RecordByRecordCaffeParser : public CaffeParserBase
29 /// Create the network from a protobuf binary file on disk
30 virtual armnn::INetworkPtr CreateNetworkFromBinaryFile(
31 const char* graphFile,
32 const std::map<std::string, armnn::TensorShape>& inputShapes,
33 const std::vector<std::string>& requestedOutputs) override;
35 RecordByRecordCaffeParser();
38 void ProcessLayers(const NetParameterInfo& netParameterInfo,
39 std::vector<LayerParameterInfo>& layerInfo,
40 const std::vector<std::string>& m_RequestedOutputs,
41 std::vector<const LayerParameterInfo*>& sortedNodes);
42 armnn::INetworkPtr LoadLayers(std::ifstream& ifs,
43 std::vector<const LayerParameterInfo *>& sortedNodes,
44 const NetParameterInfo& netParameterInfo);
45 std::vector<const LayerParameterInfo*> GetInputs(
46 const LayerParameterInfo& layerParam);
48 std::map<std::string, const LayerParameterInfo*> m_CaffeLayersByTopName;
49 std::vector<std::string> m_RequestedOutputs;
52 } // namespace armnnCaffeParser