int32_t input_elements = input_tensor.float_val_size();
- if (input_elements == 1)
- {
- for (int32_t i = 0; i < num_elements; i++)
- {
- const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(0);
- }
- }
- else if (input_elements == num_elements)
- {
- for (int32_t i = 0; i < input_elements; i++)
- {
- const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(i);
- }
- }
- else if (input_tensor.tensor_content().size() == num_elements * sizeof(float))
+ if (input_tensor.tensor_content().size() == num_elements * sizeof(float))
{
const std::string &str_content = input_tensor.tensor_content();
const float *float_ptr = reinterpret_cast<const float *>(str_content.c_str());
const_node->at<loco::DataType::FLOAT32>(i) = *(float_ptr + i);
}
}
- else if (0 < input_elements && input_elements < num_elements)
+ else if (0 < input_elements && input_elements <= num_elements)
{
for (int32_t i = 0; i < input_elements; i++)
{
const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(i);
}
- float lastfill = input_tensor.float_val(input_elements - 1);
+
for (int32_t i = input_elements; i < num_elements; i++)
{
- const_node->at<loco::DataType::FLOAT32>(i) = lastfill;
+ const_node->at<loco::DataType::FLOAT32>(i) = input_tensor.float_val(input_elements - 1);
}
}
else