| 244 | return dirty; |
| 245 | } |
| 246 | static bool _resizeTensor(Tensor* tensor, const Tensor* dims, Session* session, Schedule::TENSORCACHE* cacheTensor) { |
| 247 | MNN_ASSERT(nullptr != tensor); |
| 248 | bool dirty = _reshapeTensor(tensor, dims); |
| 249 | |
| 250 | if (!dirty) { |
| 251 | return false; |
| 252 | } |
| 253 | |
| 254 | tensor->buffer().dimensions = (int)dims->dimensions(); |
| 255 | for (int i = 0; i < dims->dimensions(); ++i) { |
| 256 | tensor->buffer().dim[i].extent = dims->length(i); |
| 257 | tensor->buffer().dim[i].stride = dims->stride(i); |
| 258 | } |
| 259 | if (nullptr != cacheTensor) { |
| 260 | auto t = std::get<1>(*cacheTensor).get(); |
| 261 | if (nullptr != t) { |
| 262 | t->buffer().dimensions = (int)dims->dimensions(); |
| 263 | for (int i = 0; i < dims->dimensions(); ++i) { |
| 264 | t->buffer().dim[i].extent = dims->length(i); |
| 265 | t->buffer().dim[i].stride = dims->stride(i); |
| 266 | } |
| 267 | std::get<2>(*cacheTensor) = true; |
| 268 | } |
| 269 | } |
| 270 | return true; |
| 271 | } |
| 272 | void StaticModule::resetInputOutputs() { |
| 273 | mPrevInputTensor.resize(mResource->mInputs.size()); |
| 274 | mInputTensors.resize(mResource->mInputs.size()); |
no test coverage detected