Skip to content

Commit 46dd5a7

Browse files
committed
add LayerType
1 parent b1c8f56 commit 46dd5a7

File tree

3 files changed

+52
-13
lines changed

3 files changed

+52
-13
lines changed

app/Graph/graph_build.cpp

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,43 +43,52 @@ void build_graph(Tensor input, Tensor output) {
4343
Tensor tmp_values = tensor;
4444
Tensor tmp_bias = make_tensor(tensor.get_bias());
4545

46-
47-
layers.push_back(
48-
std::make_shared<ConvolutionalLayer>(1, 0, 0, tmp_values, tmp_bias));
46+
auto conv_layer =
47+
std::make_shared<ConvolutionalLayer>(1, 0, 0, tmp_values, tmp_bias);
48+
conv_layer->setName(kConvolution);
49+
layers.push_back(conv_layer);
4950
std::cout << "ConvLayer added to layers." << std::endl;
5051
}
5152

5253
if (layer_type.find("Dense") != std::string::npos) {
5354
Tensor tmp_values = tensor;
5455
Tensor tmp_bias = make_tensor(tensor.get_bias());
5556

56-
layers.push_back(std::make_shared<FCLayer>(tmp_values, tmp_bias));
57+
auto fc_layer = std::make_shared<FCLayer>(tmp_values, tmp_bias);
58+
fc_layer->setName(kFullyConnected);
59+
layers.push_back(fc_layer);
5760
std::cout << "DenseLayer added to layers." << std::endl;
5861
}
5962

6063
if (layer_type.find("Pool") != std::string::npos) {
6164
Shape shape = {2, 2};
6265
std::cout << "PoolingLayer shape: " << shape[0] << "x" << shape[1]
6366
<< std::endl;
64-
65-
layers.push_back(std::make_shared<PoolingLayer>(shape));
67+
auto pool_layer = std::make_shared<PoolingLayer>(shape);
68+
pool_layer->setName(kPooling);
69+
layers.push_back(pool_layer);
6670
std::cout << "PoolingLayer added to layers." << std::endl;
6771
}
6872

6973
if (layer_type.find("Flatten") != std::string::npos) {
70-
layers.emplace_back(std::make_shared<FlattenLayer>());
74+
auto flatten_layer = std::make_shared<FlattenLayer>();
75+
flatten_layer->setName(kFlatten);
76+
layers.push_back(flatten_layer);
7177
std::cout << "FlattenLayer added to layers." << std::endl;
7278
}
7379

7480
if (layer_type.find("Dropout") != std::string::npos) {
75-
layers.emplace_back(std::make_shared<DropOutLayer>(0.5));
81+
auto dropout_layer = std::make_shared<DropOutLayer>(0.5);
82+
dropout_layer->setName(kDropout);
83+
layers.push_back(dropout_layer);
7684
std::cout << "DropOutLayer added to layers with probability 0.5."
7785
<< std::endl;
7886
}
7987
}
80-
88+
std::cout << "number of layers - " << layers.size() + 1<< std::endl;
8189
Graph graph(static_cast<int>(layers.size()));
8290
InputLayer a1(kNhwc, kNchw, 1, 2);
91+
8392
std::cout << "InputLayer created." << std::endl;
8493

8594
graph.setInput(a1, input);
@@ -91,10 +100,15 @@ void build_graph(Tensor input, Tensor output) {
91100

92101
for (size_t i = 0; i < layers.size() - 1; ++i) {
93102
graph.makeConnection(*layers[i], *layers[i + 1]);
94-
std::cout << "Connection made between layer " << i << " and layer " << i + 1
103+
std::cout << "Connection made between layer " << i << " ("
104+
<< layerTypeToString(layers[i]->getName()) << ")"
105+
<< " and layer " << i + 1 << " ("
106+
<< layerTypeToString(layers[i + 1]->getName()) << ")"
95107
<< std::endl;
96108
}
97109

110+
111+
98112
graph.setOutput(*layers.back(), output);
99113
std::cout << "Output set in graph." << std::endl;
100114

include/graph/graph.hpp

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,30 @@
1010
#include "layers/Layer.hpp"
1111

1212
namespace itlab_2023 {
13-
13+
std::string layerTypeToString(LayerType type) {
14+
switch (type) {
15+
case kInput:
16+
return "Input";
17+
case kPooling:
18+
return "Pooling";
19+
case kNormalization:
20+
return "Normalization";
21+
case kDropout:
22+
return "Dropout";
23+
case kElementWise:
24+
return "ElementWise";
25+
case kConvolution:
26+
return "Convolution";
27+
case kFullyConnected:
28+
return "FullyConnected";
29+
case kFlatten:
30+
return "Flatten";
31+
case kOutput:
32+
return "Output";
33+
default:
34+
return "Unknown";
35+
}
36+
}
1437
class Graph {
1538
int BiggestSize_;
1639
int V_;
@@ -108,8 +131,9 @@ class Graph {
108131
#ifdef ENABLE_STATISTIC_TIME
109132
auto start = std::chrono::high_resolution_clock::now();
110133
#endif
111-
std::cout << "Running layer " << i
112-
<< " with input shape: " << inten_.get_shape()
134+
std::cout << "Running layer " << i << " ("
135+
<< layerTypeToString(layers_[i]->getName()) << ") "
136+
<< "with input shape: " << inten_.get_shape()
113137
<< ", output shape: " << outten_->get_shape() << std::endl;
114138

115139
layers_[i]->run(inten_, *outten_);

include/layers/Layer.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ enum LayerType {
1818
kElementWise,
1919
kConvolution,
2020
kFullyConnected,
21+
kFlatten,
2122
kOutput,
2223
};
2324

0 commit comments

Comments
 (0)