blob: b09c0951968faeab05178352ac2f0d48be3c8500 [file] [log] [blame]
Mike Kellya0766c32019-02-19 17:22:07 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include <boost/test/unit_test.hpp>
7#include "ParserFlatbuffersSerializeFixture.hpp"
Finn Williams85d36712021-01-26 22:30:06 +00008#include <armnnDeserializer/IDeserializer.hpp>
Mike Kellya0766c32019-02-19 17:22:07 +00009
10#include <string>
Mike Kellya0766c32019-02-19 17:22:07 +000011
Derek Lamberti0028d1b2019-02-20 13:57:42 +000012BOOST_AUTO_TEST_SUITE(Deserializer)
Mike Kellya0766c32019-02-19 17:22:07 +000013
14struct Convolution2dFixture : public ParserFlatbuffersSerializeFixture
15{
16 explicit Convolution2dFixture(const std::string & inputShape1,
17 const std::string & outputShape,
18 const std::string & weightsShape,
19 const std::string & dataType)
20 {
21 m_JsonString = R"(
22 {
23 inputIds: [0],
24 outputIds: [2],
25 layers: [{
26 layer_type: "InputLayer",
27 layer: {
28 base: {
29 layerBindingId: 0,
30 base: {
31 index: 0,
32 layerName: "InputLayer",
33 layerType: "Input",
34 inputSlots: [{
35 index: 0,
36 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
37 }],
38 outputSlots: [{
39 index: 0,
40 tensorInfo: {
41 dimensions: )" + inputShape1 + R"(,
42 dataType: )" + dataType + R"(,
43 quantizationScale: 0.5,
44 quantizationOffset: 0
45 },
46 }]
47 },
48 }
49 },
50 },
51 {
52 layer_type: "Convolution2dLayer",
53 layer : {
54 base: {
55 index:1,
56 layerName: "Convolution2dLayer",
57 layerType: "Convolution2d",
58 inputSlots: [{
59 index: 0,
60 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
61 }],
62 outputSlots: [{
63 index: 0,
64 tensorInfo: {
65 dimensions: )" + outputShape + R"(,
66 dataType: )" + dataType + R"(
67 },
68 }],
69 },
70 descriptor: {
71 padLeft: 1,
72 padRight: 1,
73 padTop: 1,
74 padBottom: 1,
75 strideX: 2,
76 strideY: 2,
77 biasEnabled: false,
78 dataLayout: NHWC
79 },
80 weights: {
81 info: {
82 dimensions: )" + weightsShape + R"(,
83 dataType: )" + dataType + R"(
84 },
85 data_type: IntData,
86 data: {
87 data: [
88 1082130432, 1084227584, 1086324736,
89 0 ,0 ,0 ,
90 1077936128, 1073741824, 1065353216
91 ],
92 }
93 }
94 },
95 },
96 {
97 layer_type: "OutputLayer",
98 layer: {
99 base:{
100 layerBindingId: 0,
101 base: {
102 index: 2,
103 layerName: "OutputLayer",
104 layerType: "Output",
105 inputSlots: [{
106 index: 0,
107 connection: {sourceLayerIndex:1, outputSlotIndex:0 },
108 }],
109 outputSlots: [ {
110 index: 0,
111 tensorInfo: {
112 dimensions: )" + outputShape + R"(,
113 dataType: )" + dataType + R"(
114 },
115 }],
116 }
117 }},
118 }]
119 }
120 )";
121 Setup();
122 }
123};
124
125struct SimpleConvolution2dFixture : Convolution2dFixture
126{
127 SimpleConvolution2dFixture() : Convolution2dFixture("[ 1, 5, 5, 1 ]",
128 "[ 1, 3, 3, 1 ]",
129 "[ 1, 3, 3, 1 ]",
130 "Float32") {}
131};
132
133BOOST_FIXTURE_TEST_CASE(Convolution2dFloat32, SimpleConvolution2dFixture)
134{
135 RunTest<4, armnn::DataType::Float32>(
136 0,
137 {{"InputLayer", {1, 5, 2, 3, 5, 8, 7, 3, 6, 3, 3, 3, 9, 1, 9, 4, 1, 8, 1, 3, 6, 8, 1, 9, 2}}},
138 {{"OutputLayer", {23, 33, 24, 91, 99, 48, 26, 50, 19}}});
139}
140
141BOOST_AUTO_TEST_SUITE_END()