| 85 | return result; |
| 86 | } |
| 87 | bool Module::loadParameters(const std::vector<Express::VARP>& parameters) { |
| 88 | std::vector<Express::VARP> result; |
| 89 | _collectParameters(result); |
| 90 | if (parameters.empty() || parameters.size() != result.size()) { |
| 91 | MNN_ERROR("Error parameters, empty or parameter size not match \n"); |
| 92 | return false; |
| 93 | } |
| 94 | for (int i=0; i<parameters.size(); ++i) { |
| 95 | if (nullptr != result[i].get()) { |
| 96 | // Check Origin parameter's size |
| 97 | auto dstInfo = result[i]->getInfo(); |
| 98 | auto srcInfo = parameters[i]->getInfo(); |
| 99 | if (dstInfo->dim.size() != srcInfo->dim.size() || dstInfo->order != srcInfo->order) { |
| 100 | MNN_ERROR("Error parameters %d, dim size or order not match \n", i); |
| 101 | return false; |
| 102 | } |
| 103 | if (dstInfo->size != srcInfo->size || dstInfo->type != srcInfo->type) { |
| 104 | MNN_ERROR("Error parameters %d, size or type not match \n", i); |
| 105 | return false; |
| 106 | } |
| 107 | } |
| 108 | Variable::replace(result[i], parameters[i]); |
| 109 | } |
| 110 | return true; |
| 111 | } |
| 112 | void Module::setIsTraining(const bool isTraining) { |
| 113 | mIsTraining = isTraining; |
| 114 | for (auto c : mChildren) { |