|
|
|
@ -58,9 +58,6 @@ int Pad::UnPackToFlatBuilder(const schema::Primitive *primitive, flatbuffers::Fl
|
|
|
|
|
return RET_OK;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
namespace {
|
|
|
|
|
const size_t kInputRank = 4;
|
|
|
|
|
} // namespace
|
|
|
|
|
int Pad::InferShape(std::vector<Tensor *> inputs, std::vector<Tensor *> outputs) {
|
|
|
|
|
MS_ASSERT(this->primitive_ != nullptr);
|
|
|
|
|
if (this->primitive_ == nullptr) {
|
|
|
|
@ -84,9 +81,9 @@ int Pad::InferShape(std::vector<Tensor *> inputs, std::vector<Tensor *> outputs)
|
|
|
|
|
}
|
|
|
|
|
auto input_shape = input->shape();
|
|
|
|
|
std::vector<int> output_shape;
|
|
|
|
|
MS_ASSERT(input->shape().size() <= kInputRank);
|
|
|
|
|
MS_ASSERT(input->shape().size() <= 4);
|
|
|
|
|
for (size_t i = 0; i < input_shape.size(); i++) {
|
|
|
|
|
auto paddings_index = i + kInputRank - input_shape.size();
|
|
|
|
|
auto paddings_index = i;
|
|
|
|
|
auto shape = input_shape[i] + paddings[2 * paddings_index] + paddings[2 * paddings_index + 1];
|
|
|
|
|
output_shape.push_back(shape);
|
|
|
|
|
}
|
|
|
|
|