Lines Matching +full:- +full:oc

6 // This source code is licensed under the BSD-style license found in the
37 this->input_channels_ = input_channels; in input_channels()
42 return this->input_channels_; in input_channels()
47 this->output_channels_ = output_channels; in output_channels()
52 return this->output_channels_; in output_channels()
57 this->batch_size_ = batch_size; in batch_size()
62 return this->batch_size_; in batch_size()
67 this->input_stride_ = input_stride; in input_stride()
72 if (this->input_stride_ == 0) { in input_stride()
75 assert(this->input_stride_ >= input_channels()); in input_stride()
76 return this->input_stride_; in input_stride()
82 this->output_stride_ = output_stride; in output_stride()
87 if (this->output_stride_ == 0) { in output_stride()
90 assert(this->output_stride_ >= output_channels()); in output_stride()
91 return this->output_stride_; in output_stride()
96 this->qmin_ = qmin; in qmin()
101 return this->qmin_; in qmin()
105 this->qmax_ = qmax; in qmax()
110 return this->qmax_; in qmax()
114 this->transpose_weights_ = transpose_weights; in transpose_weights()
119 return this->transpose_weights_; in transpose_weights()
123 this->has_bias_ = has_bias; in has_bias()
128 return this->has_bias_; in has_bias()
132 this->weights_type_ = weights_type; in weights_type()
137 return this->weights_type_; in weights_type()
141 this->use_weights_cache_ = use_weights_cache; in use_weights_cache()
146 return this->use_weights_cache_; in use_weights_cache()
150 this->iterations_ = iterations; in iterations()
155 return this->iterations_; in iterations()
163 std::uniform_int_distribution<int32_t> i32dist(-10000, 10000); in TestQS8()
167 -std::numeric_limits<int8_t>::max(), std::numeric_limits<int8_t>::max()); in TestQS8()
170 (batch_size() - 1) * input_stride() + input_channels()); in TestQS8()
173 std::vector<int8_t> output((batch_size() - 1) * output_stride() + output_channels()); in TestQS8()
188 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQS8() local
189 accumulators[i * output_channels() + oc] = bias[oc]; in TestQS8()
197 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQS8() local
199 accumulators[i * output_channels() + oc] += in TestQS8()
200 (int32_t(input[i * input_stride() + ic]) - int32_t(input_zero_point)) * in TestQS8()
201 int32_t(kernel[ic * output_channels() + oc]); in TestQS8()
207 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQS8() local
209 accumulators[i * output_channels() + oc] += in TestQS8()
210 (int32_t(input[i * input_stride() + ic]) - int32_t(input_zero_point)) * in TestQS8()
211 int32_t(kernel[oc * input_channels() + ic]); in TestQS8()
221 const double output_scale = double(uint32_t(accumulated_max - accumulated_min)) / 255.0; in TestQS8()
223 lrint(-0.5 - 0.5 * double(accumulated_min + accumulated_max) / output_scale), in TestQS8()
228 [this, output_scale, output_zero_point](int32_t x) -> double { in TestQS8()
229 …n<double>(double(x) / output_scale, double(qmax() - 0x80) - output_zero_point), double(qmin() - 0x… in TestQS8()
252 output_zero_point, output_scale, int8_t(qmin() - 0x80), int8_t(qmax() - 0x80), in TestQS8()
293 output_scale, int8_t(qmin() - 0x80), in TestQS8()
294 int8_t(qmax() - 0x80), in TestQS8()
328 ASSERT_LE(int32_t(output[i * output_stride() + c]), int32_t(qmax() - 0x80)) in VerifyQS8()
330 ASSERT_GE(int32_t(output[i * output_stride() + c]), int32_t(qmin() - 0x80)) in VerifyQS8()
333 double(output[i * output_stride() + c]) - output_zero_point, in VerifyQS8()
345 std::uniform_int_distribution<int32_t> i32dist(-10000, 10000); in TestQU8()
350 (batch_size() - 1) * input_stride() + input_channels()); in TestQU8()
353 std::vector<uint8_t> output((batch_size() - 1) * output_stride() + output_channels()); in TestQU8()
369 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQU8() local
370 accumulators[i * output_channels() + oc] = bias[oc]; in TestQU8()
378 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQU8() local
380 accumulators[i * output_channels() + oc] += in TestQU8()
381 (int32_t(input[i * input_stride() + ic]) - int32_t(input_zero_point)) * in TestQU8()
382 (int32_t(kernel[ic * output_channels() + oc]) - int32_t(kernel_zero_point)); in TestQU8()
388 for (size_t oc = 0; oc < output_channels(); oc++) { in TestQU8() local
390 accumulators[i * output_channels() + oc] += in TestQU8()
391 (int32_t(input[i * input_stride() + ic]) - int32_t(input_zero_point)) * in TestQU8()
392 (int32_t(kernel[oc * input_channels() + ic]) - int32_t(kernel_zero_point)); in TestQU8()
402 const double output_scale = double(uint32_t(accumulated_max - accumulated_min)) / 255.0; in TestQU8()
404 lrint(127.5 - 0.5 * double(accumulated_min + accumulated_max) / output_scale), in TestQU8()
409 [this, output_scale, output_zero_point](int32_t x) -> double { in TestQU8()
410 …td::min<double>(double(x) / output_scale, double(qmax()) - output_zero_point), double(qmin()) - ou… in TestQU8()
511 double(output[i * output_stride() + c]) - output_zero_point, in VerifyQU8()
526 (batch_size() - 1) * input_stride() + input_channels()); in TestF32()
529 std::vector<float> output((batch_size() - 1) * output_stride() + output_channels()); in TestF32()
541 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF32() local
542 output_ref[i * output_channels() + oc] = bias[oc]; in TestF32()
550 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF32() local
552 output_ref[i * output_channels() + oc] += in TestF32()
553 input[i * input_stride() + ic] * kernel[ic * output_channels() + oc]; in TestF32()
559 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF32() local
561 output_ref[i * output_channels() + oc] += in TestF32()
562 input[i * input_stride() + ic] * kernel[oc * input_channels() + ic]; in TestF32()
572 const float output_min = qmin() == 0 ? -std::numeric_limits<float>::infinity() : in TestF32()
573 accumulated_min + (accumulated_max - accumulated_min) / 255.0f * float(qmin()); in TestF32()
575 accumulated_max - (accumulated_max - accumulated_min) / 255.0f * float(255 - qmax()); in TestF32()
676 1.0e-4 * std::abs(output_ref[i * output_channels() + c])) in VerifyF32()
697 (batch_size() - 1) * input_stride() + input_channels()); in TestF16()
702 std::vector<uint16_t> output((batch_size() - 1) * output_stride() + output_channels()); in TestF16()
716 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF16() local
717 output_ref[i * output_channels() + oc] = fp16_ieee_to_fp32_value(bias[oc]); in TestF16()
725 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF16() local
727 output_ref[i * output_channels() + oc] += in TestF16()
728 …lue(input[i * input_stride() + ic]) * fp16_ieee_to_fp32_value(kernel[ic * output_channels() + oc]); in TestF16()
734 for (size_t oc = 0; oc < output_channels(); oc++) { in TestF16() local
736 output_ref[i * output_channels() + oc] += in TestF16()
737 …p32_value(input[i * input_stride() + ic]) * fp16_ieee_to_fp32_value(kernel[oc * input_channels() +… in TestF16()
746 const float accumulated_range = accumulated_max - accumulated_min; in TestF16()
748 …o_fp32_value(fp16_ieee_from_fp32_value(accumulated_max - accumulated_range / 255.0f * float(255 - in TestF16()
749 …const float output_min = scaled_min == scaled_max ? -std::numeric_limits<float>::infinity() : scal… in TestF16()
868 1.0e-2f * std::abs(output_ref[i * output_channels() + c])) in VerifyF16()