static constexpr size_t SINGLE_INOUT_IDX = 0;
-int MaeLossLayer::setProperty(std::vector<std::string> values) {
- /// this implementation makes to pass the test, this will change soon.
- return values.size();
-}
-
-void MaeLossLayer::forwarding(nntrainer::RunLayerContext &context, bool training) {
+void MaeLossLayer::forwarding(nntrainer::RunLayerContext &context,
+ bool training) {
nntrainer::Tensor &predicted = context.getInput(SINGLE_INOUT_IDX);
nntrainer::Tensor &output = context.getOutput(SINGLE_INOUT_IDX);
}
}
-void MaeLossLayer::calcDerivative(RunLayerContext &context) {
+void MaeLossLayer::calcDerivative(nntrainer::RunLayerContext &context) {
nntrainer::Tensor &predicted = context.getInput(SINGLE_INOUT_IDX);
nntrainer::Tensor &label = context.getLabel(SINGLE_INOUT_IDX);
});
}
-
#ifdef PLUGGABLE
nntrainer::Layer *create_mae_loss_layer() {
/**
* @copydoc Layer::forwarding(RunLayerContext &context, bool training)
*/
- void forwarding(nntrainer::RunLayerContext &context, bool training) override
+ void forwarding(nntrainer::RunLayerContext &context, bool training) override;
/**
* @copydoc Layer::calcDerivative(RunLayerContext &context)
*/
- void calcDerivative(nntrainer::RunLayerContext &context) override
+ void calcDerivative(nntrainer::RunLayerContext &context) override;
/**
* @copydoc bool supportBackwarding() const
/**
* @copydoc Layer::requireLabel()
*/
- bool MaeLossLayer::requireLabel() const { return true; }
+ bool requireLabel() const { return true; }
inline static const std::string type = "mae_loss";
};
static TensorDim
calcIm2ColOutputDim(const TensorDim &in, const TensorDim &kdim,
- const std::array<unsigned int, CONV2D_DIM> &padding,
+ const std::array<unsigned int, CONV2D_DIM * 2> &padding,
const std::array<unsigned int, CONV2D_DIM> &mstride,
const std::array<unsigned int, CONV2D_DIM> &dilation) {
- unsigned int ph = padding[0];
- unsigned int pw = padding[1];
+ unsigned pt = padding[0];
+ unsigned pb = padding[1];
+ unsigned pl = padding[2];
+ unsigned pr = padding[3];
int in_height = in.height();
int in_width = in.width();
- unsigned int height = in_height + ph * 2;
- unsigned int width = in_width + pw * 2;
+ unsigned int height = in_height + pt + pb;
+ unsigned int width = in_width + pl + pr;
unsigned int k_height = kdim.height();
unsigned int k_width = kdim.width();
// }
*/
- const int pad_value = 0;
unsigned pt = padding[0];
unsigned pb = padding[1];
unsigned pl = padding[2];
Conv2DLayer(unsigned int filter_size_ = 0,
const std::array<unsigned int, CONV2D_DIM> &kernel_size_ = {0, 0},
const std::array<unsigned int, CONV2D_DIM> &stride_ = {1, 1},
- const std::array<unsigned int, CONV2D_DIM * 2> &padding_ = {0, 0, 0, 0}) :
+ const std::array<unsigned int, CONV2D_DIM * 2> &padding_ = {0, 0,
+ 0,
+ 0}) :
LayerImpl(),
filter_size(filter_size_),
kernel_size(kernel_size_),
* 33. split_dimension : string (type)
* 34. return_sequences : bool (type) - lstm
* 35. hidden_state_activation : string (type) - lstm
+ * 36. dropout : bool
*/
enum class PropertyType {
input_shape = 0,
split_dimension = 33,
return_sequences = 34,
hidden_state_activation = 35,
+ dropout = 36,
unknown
};
PoolingType pooling_type_ = PoolingType::average,
const std::array<unsigned int, POOLING2D_DIM> &pool_size_ = {0, 0},
const std::array<unsigned int, POOLING2D_DIM> &stride_ = {1, 1},
- const std::array<unsigned int, POOLING2D_DIM * 2> &padding_ = {0, 0, 0, 0}) :
+ const std::array<unsigned int, POOLING2D_DIM * 2> &padding_ = {0, 0, 0,
+ 0}) :
Layer(),
pool_size(pool_size_),
stride(stride_),
*/
float dropout_rate;
-
/**
* @brief setProperty by type and value separated
* @param[in] type property type to be passed
mkIniTc("unknown_layer_type2_n", {nw_base_cross, adam, input, out + "Type = asdf"+"input_layers=inputlayer", I(out, "outlayer", "")}, ALLFAIL),
/**< negative: little bit of tweeks to check determinancy (5 negative cases) */
- mkIniTc("wrong_nw_dataset_n", {nw_base_cross, adam, input, out+"input_layers=inputlayer", dataset + "-LabelData"}, ALLFAIL),
- mkIniTc("wrong_nw_dataset2_n", {nw_base_cross, adam, dataset + "-LabelData", input, out+"input_layers=inputlayer"}, ALLFAIL),
+ mkIniTc("wrong_nw_dataset_n", {nw_base_cross, adam, input, out+"input_layers=inputlayer", dataset + "-TrainData"}, ALLFAIL),
+ mkIniTc("wrong_nw_dataset2_n", {nw_base_cross, adam, dataset + "-TrainData", input, out+"input_layers=inputlayer"}, ALLFAIL),
/**< negative: dataset is not complete (5 negative cases) */
mkIniTc("no_trainingSet_n", {nw_base_cross, adam, dataset + "-TrainData", input, out+"input_layers=inputlayer"}, ALLFAIL),
- mkIniTc("backbone_filemissing_n", {nw_base_cross, adam, dataset + "-LabelData", input, out+"input_layers=inputlayer"}, ALLFAIL)
+ mkIniTc("backbone_filemissing_n", {nw_base_cross, adam, backbone_random, out+"input_layers=inputlayer"}, ALLFAIL)
), [](const testing::TestParamInfo<nntrainerIniTest::ParamType>& info){
return std::get<0>(info.param);
});