42 std::pair<float_t, float_t>
out_value_range()
const override {
return h_.scale(); }
49 vec_t& out = a_tensor[sample];
50 vec_t& a = out_tensor[sample];
53 h_.itef(out, a, out_dim);
57 void backward_activation(
const tensor_t& prev_delta,
const tensor_t& this_out, tensor_t& curr_delta) {
60 for_i(this_out.size(), [&](serial_size_t sample) {
61 const vec_t& out_vec = this_out[sample];
62 const vec_t& prev_delta_vec = prev_delta[sample];
63 vec_t& curr_delta_vec = curr_delta[sample];
65 const serial_size_t len = static_cast<serial_size_t>(prev_delta_vec.size());
68 for (serial_size_t c = 0; c < len; c++) {
69 curr_delta_vec[c] = prev_delta_vec[c] * h_.df(out_vec[c]);
73 for (serial_size_t c = 0; c < len; c++) {
74 vec_t df = h_.df(out_vec, c);
75 curr_delta_vec[c] = vectorize::dot(&prev_delta_vec[0], &df[0], len);
std::pair< float_t, float_t > out_value_range() const override
return output value range used only for calculating target value from label-id in final(output) layer...
Definition feedforward_layer.h:42