forked from huawei/mindspore2022
!19531 workaround for bprop specialize before fprop is specialized
Merge pull request !19531 from xychow/workaround-for-bprop-specialize
This commit is contained in:
commit
b4ed7172dc
|
|
@ -573,6 +573,21 @@ std::pair<AbstractBasePtrList, AbstractBasePtr> FuncGraphSpecializer::BuildFromB
|
|||
real->SetValue(joined_argvals, joined_eval_result);
|
||||
evalcaches_[eval] = real;
|
||||
return std::make_pair(joined_argvals, joined_eval_result->abstract());
|
||||
} else {
|
||||
bool all_args_tensor = std::all_of(broaded_argvals.cbegin(), broaded_argvals.cend(),
|
||||
[](const AbstractBasePtr &v) { return v->isa<AbstractTensor>(); });
|
||||
if (all_args_tensor) {
|
||||
ConfigPtrList args_conf_list;
|
||||
(void)std::transform(broaded_argvals.cbegin(), broaded_argvals.cend(), std ::back_inserter(args_conf_list),
|
||||
[](const AbstractBasePtr &v) -> ConfigPtr { return std::make_shared<VirtualConfig>(v); });
|
||||
MS_LOG(WARNING) << "Cannot find joined argvals in cache, run with broaded argsvals: " << broaded_argvals.size()
|
||||
<< ", " << ::mindspore::ToString(broaded_argvals);
|
||||
ret = eval->SingleRun(engine_, args_conf_list, nullptr);
|
||||
MS_EXCEPTION_IF_NULL(ret);
|
||||
real->SetValue(broaded_argvals, ret);
|
||||
evalcaches_[eval] = real;
|
||||
return std::make_pair(broaded_argvals, ret->abstract());
|
||||
}
|
||||
}
|
||||
}
|
||||
MS_LOG(DEBUG) << "Choices.size: " << choices.size();
|
||||
|
|
|
|||
Loading…
Reference in New Issue