MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / do_setup

Method do_setup

examples/graph_vgg19.cpp:41–224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39 {
40 }
41 bool do_setup(int argc, char **argv) override
42 {
43 // Parse arguments
44 cmd_parser.parse(argc, argv);
45 cmd_parser.validate();
46
47 // Consume common parameters
48 common_params = consume_common_graph_parameters(common_opts);
49
50 // Return when help menu is requested
51 if (common_params.help)
52 {
53 cmd_parser.print_help(argv[0]);
54 return false;
55 }
56
57 // Print parameter values
58 std::cout << common_params << std::endl;
59
60 // Get trainable parameters data path
61 std::string data_path = common_params.data_path;
62
63 // Create a preprocessor object
64 const std::array<float, 3> mean_rgb{{123.68f, 116.779f, 103.939f}};
65 std::unique_ptr<IPreprocessor> preprocessor = std::make_unique<CaffePreproccessor>(mean_rgb);
66
67 // Create input descriptor
68 const auto operation_layout = common_params.data_layout;
69 const TensorShape tensor_shape =
70 permute_shape(TensorShape(224U, 224U, 3U, common_params.batches), DataLayout::NCHW, operation_layout);
71 TensorDescriptor input_descriptor =
72 TensorDescriptor(tensor_shape, common_params.data_type).set_layout(operation_layout);
73
74 // Set weights trained layout
75 const DataLayout weights_layout = DataLayout::NCHW;
76
77 graph
78 << common_params.target << common_params.fast_math_hint
79 << InputLayer(input_descriptor, get_input_accessor(common_params, std::move(preprocessor)))
80 // Layer 1
81 << ConvolutionLayer(
82 3U, 3U, 64U, get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv1_1_w.npy", weights_layout),
83 get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv1_1_b.npy"), PadStrideInfo(1, 1, 1, 1))
84 .set_name("conv1_1")
85 << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
86 .set_name("conv1_1/Relu")
87 << ConvolutionLayer(
88 3U, 3U, 64U, get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv1_2_w.npy", weights_layout),
89 get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv1_2_b.npy"), PadStrideInfo(1, 1, 1, 1))
90 .set_name("conv1_2")
91 << ActivationLayer(ActivationLayerInfo(ActivationLayerInfo::ActivationFunction::RELU))
92 .set_name("conv1_2/Relu")
93 << PoolingLayer(PoolingLayerInfo(PoolingType::MAX, 2, operation_layout, PadStrideInfo(2, 2, 0, 0)))
94 .set_name("pool1")
95 // Layer 2
96 << ConvolutionLayer(
97 3U, 3U, 128U, get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv2_1_w.npy", weights_layout),
98 get_weights_accessor(data_path, "/cnn_data/vgg19_model/conv2_1_b.npy"), PadStrideInfo(1, 1, 1, 1))

Callers

nothing calls this directly

Calls 15

permute_shapeFunction · 0.85
InputLayerClass · 0.85
get_input_accessorFunction · 0.85
ConvolutionLayerClass · 0.85
get_weights_accessorFunction · 0.85
PadStrideInfoClass · 0.85
ActivationLayerClass · 0.85
PoolingLayerClass · 0.85
FullyConnectedLayerClass · 0.85
SoftmaxLayerClass · 0.85
OutputLayerClass · 0.85
get_output_accessorFunction · 0.85

Tested by

no test coverage detected