| @@ -63,7 +63,8 @@ int DeConvolutionFp16CPUKernel::InitWeightBias() { | |||||
| return RET_ERROR; | return RET_ERROR; | ||||
| } | } | ||||
| memset(bias_data_, 0, UP_ROUND(output_channel, C4NUM) * sizeof(float16_t)); | memset(bias_data_, 0, UP_ROUND(output_channel, C4NUM) * sizeof(float16_t)); | ||||
| if (in_tensors_.size() == 3) { | |||||
| if (in_tensors_.size() == 3 && in_tensors_.at(kBiasIndex)->shape().size() == 1 && | |||||
| in_tensors_.at(kBiasIndex)->DimensionSize(0) == output_channel) { | |||||
| Float32ToFloat16(reinterpret_cast<float *>(in_tensors_.at(2)->MutableData()), | Float32ToFloat16(reinterpret_cast<float *>(in_tensors_.at(2)->MutableData()), | ||||
| reinterpret_cast<float16_t *>(bias_data_), output_channel); | reinterpret_cast<float16_t *>(bias_data_), output_channel); | ||||
| } | } | ||||
| @@ -340,7 +340,8 @@ int DeConvWinogradFp16CPUKernel::InitDataParam() { | |||||
| } | } | ||||
| memset(bias_data_, 0, deconv_param_->oc_up4_ * sizeof(float16_t)); | memset(bias_data_, 0, deconv_param_->oc_up4_ * sizeof(float16_t)); | ||||
| auto fp16_bias_data = reinterpret_cast<float16_t *>(bias_data_); | auto fp16_bias_data = reinterpret_cast<float16_t *>(bias_data_); | ||||
| if (in_tensors_.size() == kInputSize2) { | |||||
| if (in_tensors_.size() == 3 && in_tensors_.at(kBiasIndex)->shape().size() == 1 && | |||||
| in_tensors_.at(kBiasIndex)->DimensionSize(0) == conv_param_->output_channel_) { | |||||
| auto src_bias = reinterpret_cast<float *>(in_tensors_.at(kBiasIndex)->MutableData()); | auto src_bias = reinterpret_cast<float *>(in_tensors_.at(kBiasIndex)->MutableData()); | ||||
| MS_ASSERT(src_bias); | MS_ASSERT(src_bias); | ||||
| for (int i = 0; i < conv_param_->output_channel_; ++i) { | for (int i = 0; i < conv_param_->output_channel_; ++i) { | ||||
| @@ -62,7 +62,8 @@ int DeConvolutionCPUKernel::InitWeightBias() { | |||||
| return RET_ERROR; | return RET_ERROR; | ||||
| } | } | ||||
| memset(bias_data_, 0, UP_ROUND(output_channel, C4NUM) * sizeof(float)); | memset(bias_data_, 0, UP_ROUND(output_channel, C4NUM) * sizeof(float)); | ||||
| if (in_tensors_.size() == 3) { | |||||
| if (in_tensors_.size() == 3 && in_tensors_.at(kBiasIndex)->shape().size() == 1 && | |||||
| in_tensors_.at(kBiasIndex)->DimensionSize(0) == output_channel) { | |||||
| memcpy(bias_data_, in_tensors_.at(2)->MutableData(), output_channel * sizeof(float)); | memcpy(bias_data_, in_tensors_.at(2)->MutableData(), output_channel * sizeof(float)); | ||||
| } | } | ||||
| @@ -286,7 +286,8 @@ int DeConvolutionWinogradCPUKernel::InitDataParam() { | |||||
| return RET_NULL_PTR; | return RET_NULL_PTR; | ||||
| } | } | ||||
| memset(bias_data_, 0, deconv_param_->oc_up4_ * sizeof(float)); | memset(bias_data_, 0, deconv_param_->oc_up4_ * sizeof(float)); | ||||
| if (in_tensors_.size() == 3) { | |||||
| if (in_tensors_.size() == 3 && in_tensors_.at(kBiasIndex)->shape().size() == 1 && | |||||
| in_tensors_.at(kBiasIndex)->DimensionSize(0) == conv_param_->output_channel_) { | |||||
| auto bias_tensor = in_tensors_.at(kBiasIndex); | auto bias_tensor = in_tensors_.at(kBiasIndex); | ||||
| memcpy(bias_data_, bias_tensor->data_c(), conv_param_->output_channel_ * sizeof(float)); | memcpy(bias_data_, bias_tensor->data_c(), conv_param_->output_channel_ * sizeof(float)); | ||||
| } | } | ||||
| @@ -1,6 +1,6 @@ | |||||
| ssd.mindir 1.5 | ssd.mindir 1.5 | ||||
| mobilenetv2_438.mindir 1.5 | mobilenetv2_438.mindir 1.5 | ||||
| #gate_u_net_small-1_110.mindir 1.5 | |||||
| gate_u_net_small-1_110.mindir 1.5 | |||||
| shufflenetv2.mindir 1.5 | shufflenetv2.mindir 1.5 | ||||
| #inceptionv3.mindir 1.5 | #inceptionv3.mindir 1.5 | ||||
| googlenet.mindir 1.5 | googlenet.mindir 1.5 | ||||