forked from mindspore-Ecosystem/mindspore
!22153 Convert some ops bprops to mindir
Merge pull request !22153 from YuJianfeng/bprop_mindir
This commit is contained in:
commit
822cedec0a
|
@ -143,6 +143,10 @@ class KPrim {
|
|||
}
|
||||
FuncGraphPtr GetPossibleBprop(const PrimitivePtr &prim);
|
||||
|
||||
#ifndef _WIN32
|
||||
static void ExportBpropMindir(const py::object &obj);
|
||||
#endif
|
||||
|
||||
private:
|
||||
FuncGraphPtr GetBprop(const PrimitivePtr &prim, const pipeline::ResourceBasePtr &resources = nullptr);
|
||||
FuncGraphPtr GetFprop(const PrimitivePtr &prim);
|
||||
|
|
|
@ -48,16 +48,38 @@ KPrim g_k_prims;
|
|||
namespace {
|
||||
constexpr char kBpropMindIRSuffix[] = "_bprop.mindir";
|
||||
constexpr char kBpropMindIRDir[] = "/../bprop_mindir/";
|
||||
constexpr char kGenerateMindirEnv[] = "GENERATE_MINDIR";
|
||||
constexpr char serializable_bprop_ops[] = "serializable_bprop_ops";
|
||||
constexpr char bprop_mindir_module[] = "mindspore.ops.bprop_mindir";
|
||||
|
||||
#ifndef _WIN32
|
||||
bool IsSerializableBprop(const PrimitivePtr &prim) {
|
||||
static std::unordered_set<PrimitivePtr> serializable_bprop_list{prim::kPrimRelu, prim::kPrimIdentity};
|
||||
// Get the serializable bprop list from the module mindspore.ops.bprop_mindir in python.
|
||||
std::unordered_set<std::string> GetSerializableBpropList() {
|
||||
std::unordered_set<std::string> serializable_bprop_list;
|
||||
py::module mod = py::module::import(bprop_mindir_module);
|
||||
py::object serializable_bprop_ops_attr = mod.attr(serializable_bprop_ops);
|
||||
if (!py::isinstance<py::list>(serializable_bprop_ops_attr)) {
|
||||
MS_LOG(WARNING) << "Can not get the the serializable bprop ops list from python, it is not a python list.";
|
||||
return serializable_bprop_list;
|
||||
}
|
||||
|
||||
auto ops_list = serializable_bprop_ops_attr.cast<py::list>();
|
||||
for (size_t i = 0; i < ops_list.size(); ++i) {
|
||||
auto prim_adapter = ops_list[i].cast<PrimitivePyAdapterPtr>();
|
||||
if (prim_adapter == nullptr) {
|
||||
MS_LOG(EXCEPTION) << "The python obj in serializable bprop list should be a Primitive, but it is "
|
||||
<< py::str(ops_list[i]);
|
||||
}
|
||||
serializable_bprop_list.insert(prim_adapter->name());
|
||||
}
|
||||
return serializable_bprop_list;
|
||||
}
|
||||
|
||||
bool IsSerializableBprop(const std::string &prim_name) {
|
||||
static std::unordered_set<std::string> serializable_bprop_list = GetSerializableBpropList();
|
||||
return std::any_of(serializable_bprop_list.begin(), serializable_bprop_list.end(),
|
||||
[&prim](const PrimitivePtr &serializable_bprop_prim) {
|
||||
auto str1 = prim->name();
|
||||
auto str2 = serializable_bprop_prim->name();
|
||||
[&prim_name](const std::string &serializable_bprop_prim_name) {
|
||||
auto str1 = prim_name;
|
||||
auto str2 = serializable_bprop_prim_name;
|
||||
(void)transform(str1.begin(), str1.end(), str1.begin(), ::tolower);
|
||||
(void)transform(str2.begin(), str2.end(), str2.begin(), ::tolower);
|
||||
return str1 == str2;
|
||||
|
@ -128,9 +150,92 @@ void ExportBpropToMindIR(const PrimitivePtr &prim, const FuncGraphPtr &func_grap
|
|||
fout.close();
|
||||
ChangeFileMode(bprop_mindir_realpath.value(), S_IRUSR | S_IWUSR);
|
||||
}
|
||||
|
||||
AnfNodePtr GetPythonOps(const FuncGraphPtr &fg, const AnfNodePtr &origin_node, const PrimitivePtr &prim) {
|
||||
MS_EXCEPTION_IF_NULL(fg);
|
||||
MS_EXCEPTION_IF_NULL(origin_node);
|
||||
MS_EXCEPTION_IF_NULL(prim);
|
||||
// DoSignaturePrimitive to the pair of primitive name and module name.
|
||||
static std::unordered_map<std::string, std::pair<std::string, std::string>> python_ops{
|
||||
{"S-Prim-zeros_like_leaf", {"zeros_like", ""}},
|
||||
{"S-Prim-getitem", {"getitem", "mindspore.ops.composite.multitype_ops.getitem_impl"}}};
|
||||
auto iter = python_ops.find(prim->name());
|
||||
if (iter == python_ops.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
ValuePtr python_ops_value;
|
||||
if (!iter->second.second.empty()) {
|
||||
python_ops_value = prim::GetPythonOps(iter->second.first, iter->second.second);
|
||||
} else {
|
||||
python_ops_value = prim::GetPythonOps(iter->second.first);
|
||||
}
|
||||
auto origin_cnode = origin_node->cast<CNodePtr>();
|
||||
MS_EXCEPTION_IF_NULL(origin_cnode);
|
||||
auto &origin_inputs = origin_cnode->inputs();
|
||||
std::vector<AnfNodePtr> new_inputs{NewValueNode(python_ops_value)};
|
||||
(void)std::copy(origin_inputs.begin() + 1, origin_inputs.end(), std::back_inserter(new_inputs));
|
||||
return fg->NewCNode(new_inputs);
|
||||
}
|
||||
|
||||
// Replace the nodes whose python obj of primitive is needed in the renormalize process,
|
||||
// with the new created python ops, such as zeros_like.
|
||||
void ReplacePythonOps(const FuncGraphPtr &fg) {
|
||||
MS_EXCEPTION_IF_NULL(fg);
|
||||
std::vector<AnfNodePtr> all_nodes = DeepScopedGraphSearch(fg->get_return());
|
||||
for (const auto &node : all_nodes) {
|
||||
MS_EXCEPTION_IF_NULL(node);
|
||||
if (!node->isa<CNode>()) {
|
||||
continue;
|
||||
}
|
||||
auto cnode = node->cast<CNodePtr>();
|
||||
for (size_t i = 0; i < cnode->size(); ++i) {
|
||||
auto prim = GetCNodePrimitive(cnode->input(i));
|
||||
if (prim == nullptr) {
|
||||
continue;
|
||||
}
|
||||
auto new_input = GetPythonOps(fg, cnode->input(i), prim);
|
||||
if (new_input == nullptr) {
|
||||
continue;
|
||||
}
|
||||
cnode->set_input(i, new_input);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} // namespace
|
||||
|
||||
#ifndef _WIN32
|
||||
// Given a python primitive, export a mindir file from the bprop defined in python.
|
||||
void KPrim::ExportBpropMindir(const py::object &obj) {
|
||||
auto prim_adapter = obj.cast<PrimitivePyAdapterPtr>();
|
||||
if (prim_adapter == nullptr) {
|
||||
MS_LOG(EXCEPTION) << "The python obj to be exported to bprop mindir should be a Primitive, but it is "
|
||||
<< py::str(obj);
|
||||
}
|
||||
auto prim = prim_adapter->attached_primitive();
|
||||
if (prim == nullptr) {
|
||||
prim = std::make_shared<PrimitivePy>(obj, prim_adapter);
|
||||
prim_adapter->set_attached_primitive(prim);
|
||||
}
|
||||
|
||||
// Get the bprop function from python.
|
||||
py::function fn = prim->cast<PrimitivePyPtr>()->GetBpropFunction();
|
||||
if (py::isinstance<py::none>(fn)) {
|
||||
fn = GetBpropFunction(prim->name());
|
||||
}
|
||||
if (!fn || py::isinstance<py::none>(fn)) {
|
||||
MS_LOG(EXCEPTION) << "Fail to find bprop function for " << prim->name() << ".";
|
||||
}
|
||||
auto func_graph = parse::ParsePythonCode(fn);
|
||||
if (func_graph == nullptr) {
|
||||
MS_LOG(EXCEPTION) << "Fail to parse bprop function for " << prim->name() << ".";
|
||||
}
|
||||
auto res = std::make_shared<pipeline::Resource>();
|
||||
(void)parse::ResolveFuncGraph(func_graph, res);
|
||||
ExportBpropToMindIR(prim, func_graph);
|
||||
}
|
||||
#endif
|
||||
|
||||
FuncGraphPtr KPrim::GetBprop(const PrimitivePtr &prim, const pipeline::ResourceBasePtr &resources) {
|
||||
// Set a child scope named "grad'PrimitiveName'" for the bprop function,
|
||||
// and add "Gradients" to the front.
|
||||
|
@ -144,10 +249,11 @@ FuncGraphPtr KPrim::GetBprop(const PrimitivePtr &prim, const pipeline::ResourceB
|
|||
// Firstly we get bprop from mindir. If failed, parse the python function registered.
|
||||
FuncGraphPtr func_graph = nullptr;
|
||||
#ifndef _WIN32
|
||||
bool serializable = IsSerializableBprop(prim);
|
||||
if (serializable && common::GetEnv(kGenerateMindirEnv) != "1") {
|
||||
bool serializable = IsSerializableBprop(prim->name());
|
||||
if (serializable) {
|
||||
func_graph = ImportBpropFromMindIR(prim);
|
||||
if (func_graph != nullptr) {
|
||||
ReplacePythonOps(func_graph);
|
||||
return func_graph;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include "utils/ms_utils.h"
|
||||
#include "frontend/parallel/context.h"
|
||||
#include "frontend/parallel/costmodel_context.h"
|
||||
#include "frontend/optimizer/ad/dfunctor.h"
|
||||
#ifdef ENABLE_GPU_COLLECTIVE
|
||||
#include "runtime/device/gpu/distribution/collective_init.h"
|
||||
#else
|
||||
|
@ -420,4 +421,9 @@ PYBIND11_MODULE(_c_expression, m) {
|
|||
(void)m.def("_encrypt", &mindspore::pipeline::PyEncrypt, "Encrypt the data.");
|
||||
(void)m.def("_decrypt", &mindspore::pipeline::PyDecrypt, "Decrypt the data.");
|
||||
(void)m.def("_is_cipher_file", &mindspore::pipeline::PyIsCipherFile, "Determine whether the file is encrypted");
|
||||
|
||||
#ifndef _WIN32
|
||||
(void)m.def("_export_bprop_mindir", &mindspore::ad::KPrim::ExportBpropMindir,
|
||||
"Export the backpropagation function to mindir file.");
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -101,6 +101,7 @@ class PrimitivePyAdapter {
|
|||
void set_instance_name(const std::string &s);
|
||||
void set_attached_primitive(const PrimitivePyPtr &prim);
|
||||
PrimitivePyPtr attached_primitive() { return attached_primitive_.lock(); }
|
||||
std::string name() const { return name_; }
|
||||
void set_name(const std::string &name) { name_ = name; }
|
||||
const bool parse_info_ = true;
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ static constexpr char kCNodeShapeAttr[] = "shape";
|
|||
static constexpr char kCNodeShape1Attr[] = "shape1";
|
||||
static constexpr char kCNodeShape2Attr[] = "shape2";
|
||||
static constexpr char kDoSignaturePrimitivePrefix[] = "S-Prim-";
|
||||
static constexpr char kHyperMapPrefix[] = "hyper_map";
|
||||
|
||||
enum ParseForm : int {
|
||||
FORM_PARSE_TYPE = 0,
|
||||
|
@ -770,6 +771,19 @@ std::unordered_map<std::string, abstract::AbstractBasePtr> MSANFModelParser::Get
|
|||
return kv;
|
||||
}
|
||||
|
||||
// S-Prim-xxx or S-Prim-hyper_map[xxx] -> xxx
|
||||
static std::string GetDoSignaturePrimitiveName(const std::string &node_type) {
|
||||
// Remove `S-Prim-` prefix.
|
||||
auto prim_name = node_type.substr(strlen(kDoSignaturePrimitivePrefix));
|
||||
if (prim_name.compare(0, strlen(kHyperMapPrefix), kHyperMapPrefix) != 0) {
|
||||
return prim_name;
|
||||
}
|
||||
// hyper_map[xxx] -> xxx
|
||||
constexpr auto offset = 2;
|
||||
auto op_name = prim_name.substr(strlen(kHyperMapPrefix) + 1, prim_name.length() - strlen(kHyperMapPrefix) - offset);
|
||||
return op_name;
|
||||
}
|
||||
|
||||
AnfNodePtr MSANFModelParser::BuildOperatorNode(const mind_ir::NodeProto &node_proto) {
|
||||
const std::string kOperatorTypeFlag = std::string("REF::");
|
||||
const size_t kOpTypeFlagSize = kOperatorTypeFlag.length();
|
||||
|
@ -792,7 +806,7 @@ AnfNodePtr MSANFModelParser::BuildOperatorNode(const mind_ir::NodeProto &node_pr
|
|||
prim = op_primc_fns[node_type]();
|
||||
} else {
|
||||
if (node_type.compare(0, strlen(kDoSignaturePrimitivePrefix), kDoSignaturePrimitivePrefix) == 0) {
|
||||
auto op_name = node_type.substr(strlen(kDoSignaturePrimitivePrefix));
|
||||
auto op_name = GetDoSignaturePrimitiveName(node_type);
|
||||
prim = std::make_shared<prim::DoSignaturePrimitive>(op_name, std::make_shared<Primitive>(op_name));
|
||||
MS_EXCEPTION_IF_NULL(prim);
|
||||
prim->set_instance_name(op_name);
|
||||
|
@ -863,7 +877,9 @@ void MSANFModelParser::SetCNodeAbastract(const mind_ir::NodeProto &node_proto, C
|
|||
for (size_t index = 1; index < cnode_ptr->inputs().size(); ++index) {
|
||||
auto abs = cnode_ptr->input(index)->abstract();
|
||||
if (abs != nullptr) {
|
||||
abs->set_value(kAnyValue);
|
||||
if (abs->GetValueTrack() == nullptr) {
|
||||
abs->set_value(kAnyValue);
|
||||
}
|
||||
elem.push_back(abs);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.32:xbprop.32:[CNode]33bprop.32:[CNode]33"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op22
|
||||
‡
|
||||
|
||||
bprop.32:ybprop.32:[CNode]34bprop.32:[CNode]34"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op23
|
||||
<EFBFBD>
|
||||
bprop.32:[CNode]33
|
||||
bprop.32:[CNode]34bprop.32:[CNode]35bprop.32:[CNode]35"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op24bprop.32*
|
||||
|
||||
bprop.32:x*
|
||||
|
||||
bprop.32:y*
|
||||
bprop.32:out*
|
||||
bprop.32:dout2
|
||||
bprop.32:[CNode]35:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ê
|
||||
†
|
||||
|
||||
bprop.13:xbprop.13:[CNode]14bprop.13:[CNode]14"!S-Prim-hyper_map[zeros_like_leaf]:-Default/S-Prim-hyper_map[zeros_like_leaf]-op9
|
||||
m
|
||||
bprop.13:[CNode]14bprop.13:[CNode]15bprop.13:[CNode]15"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op10bprop.13*
|
||||
|
||||
bprop.13:x*
|
||||
bprop.13:out*
|
||||
bprop.13:dout2
|
||||
bprop.13:[CNode]15:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.16:xbprop.16:[CNode]17bprop.16:[CNode]17"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op11
|
||||
m
|
||||
bprop.16:[CNode]17bprop.16:[CNode]18bprop.16:[CNode]18"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op12bprop.16*
|
||||
|
||||
bprop.16:x*
|
||||
bprop.16:out*
|
||||
bprop.16:dout2
|
||||
bprop.16:[CNode]18:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.21:xbprop.21:[CNode]22bprop.21:[CNode]22"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op14
|
||||
‡
|
||||
|
||||
bprop.21:ybprop.21:[CNode]23bprop.21:[CNode]23"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op15
|
||||
<EFBFBD>
|
||||
bprop.21:[CNode]22
|
||||
bprop.21:[CNode]23bprop.21:[CNode]24bprop.21:[CNode]24"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op16bprop.21*
|
||||
|
||||
bprop.21:x*
|
||||
|
||||
bprop.21:y*
|
||||
bprop.21:out*
|
||||
bprop.21:dout2
|
||||
bprop.21:[CNode]24:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.25:xbprop.25:[CNode]26bprop.25:[CNode]26"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op17
|
||||
‡
|
||||
|
||||
bprop.25:ybprop.25:[CNode]27bprop.25:[CNode]27"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op18
|
||||
<EFBFBD>
|
||||
bprop.25:[CNode]26
|
||||
bprop.25:[CNode]27bprop.25:[CNode]28bprop.25:[CNode]28"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op19bprop.25*
|
||||
|
||||
bprop.25:x*
|
||||
|
||||
bprop.25:y*
|
||||
bprop.25:out*
|
||||
bprop.25:dout2
|
||||
bprop.25:[CNode]28:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:è
|
||||
‡
|
||||
|
||||
bprop.60:ybprop.60:[CNode]61bprop.60:[CNode]61"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op43
|
||||
|
|
||||
bprop.60:dout
|
||||
bprop.60:[CNode]61bprop.60:[CNode]62bprop.60:[CNode]62"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op44bprop.60*
|
||||
|
||||
bprop.60:x*
|
||||
|
||||
bprop.60:y*
|
||||
bprop.60:out*
|
||||
bprop.60:dout2
|
||||
bprop.60:[CNode]62:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.67:xbprop.67:[CNode]68bprop.67:[CNode]68"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op48
|
||||
m
|
||||
bprop.67:[CNode]68bprop.67:[CNode]69bprop.67:[CNode]69"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op49bprop.67*
|
||||
|
||||
bprop.67:x*
|
||||
bprop.67:out*
|
||||
bprop.67:dout2
|
||||
bprop.67:[CNode]69:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,9 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:¼
|
||||
h
|
||||
bprop.19:doutbprop.19:[CNode]20bprop.19:[CNode]20"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op13bprop.19*
|
||||
|
||||
bprop.19:x*
|
||||
bprop.19:out*
|
||||
bprop.19:dout2
|
||||
bprop.19:[CNode]20:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:à
|
||||
—
|
||||
bprop.110:dout
|
||||
bprop.110:y
|
||||
bprop.110:keep_probbprop.110:[CNode]111bprop.110:[CNode]111"S-Prim-DropoutDoMask:!Default/S-Prim-DropoutDoMask-op80
|
||||
Œ
|
||||
bprop.110:ybprop.110:[CNode]112bprop.110:[CNode]112"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op81
|
||||
”
|
||||
bprop.110:keep_probbprop.110:[CNode]113bprop.110:[CNode]113"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op82
|
||||
Ÿ
|
||||
bprop.110:[CNode]111
|
||||
bprop.110:[CNode]112
|
||||
bprop.110:[CNode]113bprop.110:[CNode]114bprop.110:[CNode]114"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op83 bprop.110*
|
||||
bprop.110:x*
|
||||
bprop.110:y*
|
||||
bprop.110:keep_prob*
|
||||
bprop.110:out*
|
||||
bprop.110:dout2
|
||||
bprop.110:[CNode]114:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:<3A>
|
||||
|
||||
‹
|
||||
bprop.50:shapebprop.50:[CNode]51bprop.50:[CNode]51"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op35
|
||||
<EFBFBD>
|
||||
bprop.50:keep_probbprop.50:[CNode]52bprop.50:[CNode]52"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op36
|
||||
<EFBFBD>
|
||||
bprop.50:[CNode]51
|
||||
bprop.50:[CNode]52bprop.50:[CNode]53bprop.50:[CNode]53"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op37bprop.50*
|
||||
bprop.50:shape*
|
||||
bprop.50:keep_prob*
|
||||
bprop.50:out*
|
||||
bprop.50:dout2
|
||||
bprop.50:[CNode]53:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.70:xbprop.70:[CNode]71bprop.70:[CNode]71"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op50
|
||||
‡
|
||||
|
||||
bprop.70:ybprop.70:[CNode]72bprop.70:[CNode]72"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op51
|
||||
<EFBFBD>
|
||||
bprop.70:[CNode]71
|
||||
bprop.70:[CNode]72bprop.70:[CNode]73bprop.70:[CNode]73"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op52bprop.70*
|
||||
|
||||
bprop.70:x*
|
||||
|
||||
bprop.70:y*
|
||||
bprop.70:out*
|
||||
bprop.70:dout2
|
||||
bprop.70:[CNode]73:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.82:xbprop.82:[CNode]83bprop.82:[CNode]83"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op59
|
||||
‡
|
||||
|
||||
bprop.82:ybprop.82:[CNode]84bprop.82:[CNode]84"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op60
|
||||
<EFBFBD>
|
||||
bprop.82:[CNode]83
|
||||
bprop.82:[CNode]84bprop.82:[CNode]85bprop.82:[CNode]85"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op61bprop.82*
|
||||
|
||||
bprop.82:x*
|
||||
|
||||
bprop.82:y*
|
||||
bprop.82:out*
|
||||
bprop.82:dout2
|
||||
bprop.82:[CNode]85:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.78:xbprop.78:[CNode]79bprop.78:[CNode]79"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op56
|
||||
‡
|
||||
|
||||
bprop.78:ybprop.78:[CNode]80bprop.78:[CNode]80"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op57
|
||||
<EFBFBD>
|
||||
bprop.78:[CNode]79
|
||||
bprop.78:[CNode]80bprop.78:[CNode]81bprop.78:[CNode]81"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op58bprop.78*
|
||||
|
||||
bprop.78:x*
|
||||
|
||||
bprop.78:y*
|
||||
bprop.78:out*
|
||||
bprop.78:dout2
|
||||
bprop.78:[CNode]81:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.63:xbprop.63:[CNode]64bprop.63:[CNode]64"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op45
|
||||
‡
|
||||
|
||||
bprop.63:ybprop.63:[CNode]65bprop.63:[CNode]65"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op46
|
||||
<EFBFBD>
|
||||
bprop.63:[CNode]64
|
||||
bprop.63:[CNode]65bprop.63:[CNode]66bprop.63:[CNode]66"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op47bprop.63*
|
||||
|
||||
bprop.63:x*
|
||||
|
||||
bprop.63:y*
|
||||
bprop.63:out*
|
||||
bprop.63:dout2
|
||||
bprop.63:[CNode]66:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.0.20210815:î
|
||||
—
|
||||
bprop.10:doutbprop.10:[CNode]12:2bprop.10:[CNode]11:1"S-Prim-MakeTuple:HGradients/Default/network-NetIdentity/gradIdentity/S-Prim-MakeTuple-op22bprop.10*
|
||||
|
||||
bprop.10:x*
|
||||
bprop.10:out*
|
||||
bprop.10:dout2
|
||||
bprop.10:[CNode]12:2:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
||||
0.1.0 MindSpore*1.4.1:°
|
||||
b
|
||||
bprop.2:doutbprop.2:[CNode]3bprop.2:[CNode]3"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op2bprop.2*
|
||||
bprop.2:x*
|
||||
bprop.2:out*
|
||||
bprop.2:dout2
|
||||
bprop.2:[CNode]3:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.29:xbprop.29:[CNode]30bprop.29:[CNode]30"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op20
|
||||
m
|
||||
bprop.29:[CNode]30bprop.29:[CNode]31bprop.29:[CNode]31"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op21bprop.29*
|
||||
|
||||
bprop.29:x*
|
||||
bprop.29:out*
|
||||
bprop.29:dout2
|
||||
bprop.29:[CNode]31:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.90:xbprop.90:[CNode]91bprop.90:[CNode]91"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op65
|
||||
‡
|
||||
|
||||
bprop.90:ybprop.90:[CNode]92bprop.90:[CNode]92"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op66
|
||||
<EFBFBD>
|
||||
bprop.90:[CNode]91
|
||||
bprop.90:[CNode]92bprop.90:[CNode]93bprop.90:[CNode]93"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op67bprop.90*
|
||||
|
||||
bprop.90:x*
|
||||
|
||||
bprop.90:y*
|
||||
bprop.90:out*
|
||||
bprop.90:dout2
|
||||
bprop.90:[CNode]93:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.86:xbprop.86:[CNode]87bprop.86:[CNode]87"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op62
|
||||
‡
|
||||
|
||||
bprop.86:ybprop.86:[CNode]88bprop.86:[CNode]88"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op63
|
||||
<EFBFBD>
|
||||
bprop.86:[CNode]87
|
||||
bprop.86:[CNode]88bprop.86:[CNode]89bprop.86:[CNode]89"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op64bprop.86*
|
||||
|
||||
bprop.86:x*
|
||||
|
||||
bprop.86:y*
|
||||
bprop.86:out*
|
||||
bprop.86:dout2
|
||||
bprop.86:[CNode]89:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:¶
|
||||
‹
|
||||
bprop.45:startbprop.45:[CNode]46bprop.45:[CNode]46"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op31
|
||||
Š
|
||||
bprop.45:stopbprop.45:[CNode]47bprop.45:[CNode]47"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op32
|
||||
‰
|
||||
bprop.45:numbprop.45:[CNode]48bprop.45:[CNode]48"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op33
|
||||
•
|
||||
bprop.45:[CNode]46
|
||||
bprop.45:[CNode]47
|
||||
bprop.45:[CNode]48bprop.45:[CNode]49bprop.45:[CNode]49"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op34bprop.45*
|
||||
bprop.45:start*
|
||||
bprop.45:stop*
|
||||
bprop.45:num*
|
||||
bprop.45:out*
|
||||
bprop.45:dout2
|
||||
bprop.45:[CNode]49:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.94:xbprop.94:[CNode]95bprop.94:[CNode]95"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op68
|
||||
‡
|
||||
|
||||
bprop.94:ybprop.94:[CNode]96bprop.94:[CNode]96"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op69
|
||||
<EFBFBD>
|
||||
bprop.94:[CNode]95
|
||||
bprop.94:[CNode]96bprop.94:[CNode]97bprop.94:[CNode]97"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op70bprop.94*
|
||||
|
||||
bprop.94:x*
|
||||
|
||||
bprop.94:y*
|
||||
bprop.94:out*
|
||||
bprop.94:dout2
|
||||
bprop.94:[CNode]97:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.39:xbprop.39:[CNode]40bprop.39:[CNode]40"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op27
|
||||
m
|
||||
bprop.39:[CNode]40bprop.39:[CNode]41bprop.39:[CNode]41"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op28bprop.39*
|
||||
|
||||
bprop.39:x*
|
||||
bprop.39:out*
|
||||
bprop.39:dout2
|
||||
bprop.39:[CNode]41:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:þ
|
||||
‡
|
||||
|
||||
bprop.98:xbprop.98:[CNode]99bprop.98:[CNode]99"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op71
|
||||
‰
|
||||
|
||||
bprop.98:ybprop.98:[CNode]100bprop.98:[CNode]100"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op72
|
||||
„
|
||||
bprop.98:[CNode]99
|
||||
bprop.98:[CNode]100bprop.98:[CNode]101bprop.98:[CNode]101"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op73bprop.98*
|
||||
|
||||
bprop.98:x*
|
||||
|
||||
bprop.98:y*
|
||||
bprop.98:out*
|
||||
bprop.98:dout2
|
||||
bprop.98:[CNode]101:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:ø
|
||||
‡
|
||||
|
||||
bprop.74:xbprop.74:[CNode]75bprop.74:[CNode]75"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op53
|
||||
‡
|
||||
|
||||
bprop.74:ybprop.74:[CNode]76bprop.74:[CNode]76"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op54
|
||||
<EFBFBD>
|
||||
bprop.74:[CNode]75
|
||||
bprop.74:[CNode]76bprop.74:[CNode]77bprop.74:[CNode]77"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op55bprop.74*
|
||||
|
||||
bprop.74:x*
|
||||
|
||||
bprop.74:y*
|
||||
bprop.74:out*
|
||||
bprop.74:dout2
|
||||
bprop.74:[CNode]77:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:‚
|
||||
<EFBFBD>
|
||||
bprop.54:indicesbprop.54:[CNode]55bprop.54:[CNode]55"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op38
|
||||
‹
|
||||
bprop.54:depthbprop.54:[CNode]56bprop.54:[CNode]56"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op39
|
||||
Ž
|
||||
bprop.54:on_valuebprop.54:[CNode]57bprop.54:[CNode]57"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op40
|
||||
<EFBFBD>
|
||||
bprop.54:off_valuebprop.54:[CNode]58bprop.54:[CNode]58"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op41
|
||||
©
|
||||
bprop.54:[CNode]55
|
||||
bprop.54:[CNode]56
|
||||
bprop.54:[CNode]57
|
||||
bprop.54:[CNode]58bprop.54:[CNode]59bprop.54:[CNode]59"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op42bprop.54*
|
||||
bprop.54:indices*
|
||||
bprop.54:depth*
|
||||
bprop.54:on_value*
|
||||
bprop.54:off_value*
|
||||
bprop.54:out*
|
||||
bprop.54:dout2
|
||||
bprop.54:[CNode]59:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:¸
|
||||
<EFBFBD>
|
||||
bprop.7:xbprop.7:[CNode]8bprop.7:[CNode]8"!S-Prim-hyper_map[zeros_like_leaf]:-Default/S-Prim-hyper_map[zeros_like_leaf]-op5
|
||||
f
|
||||
bprop.7:[CNode]8bprop.7:[CNode]9bprop.7:[CNode]9"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op6bprop.7*
|
||||
bprop.7:x*
|
||||
bprop.7:out*
|
||||
bprop.7:dout2
|
||||
bprop.7:[CNode]9:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:¸
|
||||
<EFBFBD>
|
||||
bprop.4:xbprop.4:[CNode]5bprop.4:[CNode]5"!S-Prim-hyper_map[zeros_like_leaf]:-Default/S-Prim-hyper_map[zeros_like_leaf]-op3
|
||||
f
|
||||
bprop.4:[CNode]5bprop.4:[CNode]6bprop.4:[CNode]6"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op4bprop.4*
|
||||
bprop.4:x*
|
||||
bprop.4:out*
|
||||
bprop.4:dout2
|
||||
bprop.4:[CNode]6:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -1,11 +1,14 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.0.20210815:å
|
||||
ˆ
|
||||
bprop.2:dout
|
||||
bprop.2:outbprop.2:dx:1bprop.2:dx:1"S-Prim-ReluGrad:>Gradients/Default/network-NetRelu/gradReLU/S-Prim-ReluGrad-op5
|
||||
‰
|
||||
bprop.2:dx:1bprop.2:[CNode]4:3bprop.2:[CNode]3:2"S-Prim-MakeTuple:?Gradients/Default/network-NetRelu/gradReLU/S-Prim-MakeTuple-op6bprop.2*
|
||||
bprop.2:x*
|
||||
bprop.2:out*
|
||||
bprop.2:dout2
|
||||
bprop.2:[CNode]4:3:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
||||
0.1.0 MindSpore*1.4.1:‘
|
||||
a
|
||||
bprop.0:dout
|
||||
bprop.0:out
|
||||
bprop.0:dx
|
||||
bprop.0:dx"S-Prim-ReluGrad:Default/S-Prim-ReluGrad-op0
|
||||
`
|
||||
|
||||
bprop.0:dxbprop.0:[CNode]1bprop.0:[CNode]1"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op1bprop.0*
|
||||
bprop.0:x*
|
||||
bprop.0:out*
|
||||
bprop.0:dout2
|
||||
bprop.0:[CNode]1:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:—
|
||||
|
||||
Œ
|
||||
bprop.102:xbprop.102:[CNode]103bprop.102:[CNode]103"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op74
|
||||
<EFBFBD>
|
||||
bprop.102:axisbprop.102:[CNode]104bprop.102:[CNode]104"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op75
|
||||
‰
|
||||
bprop.102:[CNode]103
|
||||
bprop.102:[CNode]104bprop.102:[CNode]105bprop.102:[CNode]105"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op76 bprop.102*
|
||||
bprop.102:x*
|
||||
bprop.102:axis*
|
||||
bprop.102:out*
|
||||
bprop.102:dout2
|
||||
bprop.102:[CNode]105:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,15 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:—
|
||||
|
||||
Œ
|
||||
bprop.106:xbprop.106:[CNode]107bprop.106:[CNode]107"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op77
|
||||
<EFBFBD>
|
||||
bprop.106:axisbprop.106:[CNode]108bprop.106:[CNode]108"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op78
|
||||
‰
|
||||
bprop.106:[CNode]107
|
||||
bprop.106:[CNode]108bprop.106:[CNode]109bprop.106:[CNode]109"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op79 bprop.106*
|
||||
bprop.106:x*
|
||||
bprop.106:axis*
|
||||
bprop.106:out*
|
||||
bprop.106:dout2
|
||||
bprop.106:[CNode]109:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.42:xbprop.42:[CNode]43bprop.42:[CNode]43"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op29
|
||||
m
|
||||
bprop.42:[CNode]43bprop.42:[CNode]44bprop.42:[CNode]44"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op30bprop.42*
|
||||
|
||||
bprop.42:x*
|
||||
bprop.42:out*
|
||||
bprop.42:dout2
|
||||
bprop.42:[CNode]44:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:Ë
|
||||
‡
|
||||
|
||||
bprop.36:xbprop.36:[CNode]37bprop.36:[CNode]37"!S-Prim-hyper_map[zeros_like_leaf]:.Default/S-Prim-hyper_map[zeros_like_leaf]-op25
|
||||
m
|
||||
bprop.36:[CNode]37bprop.36:[CNode]38bprop.36:[CNode]38"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op26bprop.36*
|
||||
|
||||
bprop.36:x*
|
||||
bprop.36:out*
|
||||
bprop.36:dout2
|
||||
bprop.36:[CNode]38:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -0,0 +1,12 @@
|
|||
|
||||
0.1.0 MindSpore*1.4.1:É
|
||||
†
|
||||
|
||||
bprop.10:xbprop.10:[CNode]11bprop.10:[CNode]11"!S-Prim-hyper_map[zeros_like_leaf]:-Default/S-Prim-hyper_map[zeros_like_leaf]-op7
|
||||
l
|
||||
bprop.10:[CNode]11bprop.10:[CNode]12bprop.10:[CNode]12"S-Prim-MakeTuple:Default/S-Prim-MakeTuple-op8bprop.10*
|
||||
|
||||
bprop.10:x*
|
||||
bprop.10:out*
|
||||
bprop.10:dout2
|
||||
bprop.10:[CNode]12:€027af68f320ba40d9fbd0893da424c07f9c3a4ec82e98f9543bff9b5a15547a2087787fe3abde92d74a97b5b9f48f23d8ccdd6de450a931c64f578b83dcb5c2f102a58399653345b09bd6f5b337c4b81c4f8900664c0abc09fb80f38f8e95be82366f7bd59ea5ec135e982de03b4f7cab6b61d833d046a6e13f78bdaf2fb2b224c332efad4a51b4773cb78093dd53a4ca850b2dc6cdd5f2ae47106b3fda77bb3565f906930f68ca2413e9ad958d105e129e717cd183b95d11d65a8b0b030fc0d65c0e00bc893ef15ec6199798d6c8c46997153587d375b3240c1195ff2c7278c7e635a08323207b4cb3f73fd8437b4d7ee28a7676a68f005a7749bd19e5ed4eca6c407ad6a3b57190d3702d6a45031d13b97bb6952735edf94fb36f73dbff6cdab258748286fc6d783abacce203dfc79d2fc31e23a427ce1f86e08777a687f71c414b8c313aac4f85c6217fbbb7009dd079b2d5548f8b695a470a11cb8cc83e6f5e78f5b3c67f2e7bf339b250c3638aee952e1a073002e2834011401f3827260
|
|
@ -14,3 +14,6 @@
|
|||
# ============================================================================
|
||||
|
||||
"""bprop mindir."""
|
||||
from .generate_mindir import serializable_bprop_ops
|
||||
|
||||
__all__ = ['serializable_bprop_ops']
|
||||
|
|
|
@ -16,67 +16,22 @@
|
|||
import os
|
||||
import shutil
|
||||
import argparse
|
||||
import numpy as np
|
||||
|
||||
import mindspore.context as context
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor
|
||||
from mindspore.ops import operations as P
|
||||
import mindspore.ops as ops
|
||||
import mindspore.ops._grad as g
|
||||
from mindspore.ops.operations import _inner_ops as inner
|
||||
from mindspore._c_expression import _export_bprop_mindir
|
||||
|
||||
context.set_context(mode=context.GRAPH_MODE)
|
||||
os.environ['GENERATE_MINDIR'] = '1'
|
||||
|
||||
|
||||
class NetRelu(nn.Cell):
|
||||
def __init__(self):
|
||||
super(NetRelu, self).__init__()
|
||||
self.relu = P.ReLU()
|
||||
|
||||
def construct(self, x):
|
||||
return self.relu(x)
|
||||
|
||||
|
||||
class NetIdentity(nn.Cell):
|
||||
def __init__(self):
|
||||
super(NetIdentity, self).__init__()
|
||||
self.identity = P.Identity()
|
||||
|
||||
def construct(self, x):
|
||||
return self.identity(x)
|
||||
|
||||
|
||||
class GradNet(nn.Cell):
|
||||
def __init__(self, network):
|
||||
super(GradNet, self).__init__()
|
||||
self.grad = ops.GradOperation()
|
||||
self.network = network
|
||||
|
||||
def construct(self, x):
|
||||
gout = self.grad(self.network)(x)
|
||||
return gout
|
||||
|
||||
|
||||
def test_relu():
|
||||
x = Tensor(np.array([[[[-1, 1, 10],
|
||||
[1, -1, 1],
|
||||
[10, 1, -1]]]]).astype(np.float32))
|
||||
relu = NetRelu()
|
||||
grad = GradNet(relu)
|
||||
grad(x)
|
||||
|
||||
|
||||
def test_identity():
|
||||
x = Tensor(np.array([1, 2, 3, 4]).astype(np.int64))
|
||||
identity = NetIdentity()
|
||||
grad = GradNet(identity)
|
||||
grad(x)
|
||||
serializable_bprop_ops = [P.ReLU(), P.Identity(), inner.Range(1.0), P.OnesLike(), P.ZerosLike(), P.Argmax(), P.Argmin(),
|
||||
P.Broadcast(1), P.AssignAdd(), P.AssignSub(), P.IsFinite(), P.ApproximateEqual(), P.Sign(),
|
||||
P.LogicalNot(), P.Round(), P.LinSpace(), P.DropoutGenMask(), P.OneHot(), P.Assign(), P.IOU(),
|
||||
P.BNTrainingReduce(), P.Equal(), P.NotEqual(), P.Greater(), P.GreaterEqual(), P.Less(),
|
||||
P.LessEqual(), P.LogicalAnd(), P.LogicalOr(), P.ReduceAll(), P.ReduceAny(), P.DropoutDoMask()]
|
||||
|
||||
|
||||
def run_generate():
|
||||
test_relu()
|
||||
test_identity()
|
||||
for op in serializable_bprop_ops:
|
||||
_export_bprop_mindir(op)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -133,4 +88,4 @@ if __name__ == "__main__":
|
|||
"\".")
|
||||
else:
|
||||
print("The new bprop mindir files has been generated in the path \"" + bprop_mindir_export_dir +
|
||||
"\", copy the *.mindir to your PYTHONPATH if necessary.")
|
||||
"\", copy the *.mindir to your mindspore path or PYTHONPATH if necessary.")
|
||||
|
|
|
@ -0,0 +1,323 @@
|
|||
# Copyright 2021 Huawei Technologies Co., Ltd
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ============================================================================
|
||||
"""Generate the mindir for bprop"""
|
||||
import numpy as np
|
||||
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor, Parameter
|
||||
from mindspore.ops import operations as P
|
||||
import mindspore.ops as ops
|
||||
from mindspore.ops.operations import _inner_ops as inner
|
||||
import mindspore.common.dtype as mstype
|
||||
from mindspore.common.initializer import initializer
|
||||
|
||||
|
||||
class Net(nn.Cell):
|
||||
def __init__(self, op):
|
||||
super(Net, self).__init__()
|
||||
self.op = op
|
||||
|
||||
def construct(self, *inputs, a=0, b=1):
|
||||
c = a + b
|
||||
return c, self.op(*inputs)
|
||||
|
||||
|
||||
class TupleInputNet(nn.Cell):
|
||||
def __init__(self, op):
|
||||
super(TupleInputNet, self).__init__()
|
||||
self.op = op
|
||||
|
||||
def construct(self, x):
|
||||
return self.op((x,))
|
||||
|
||||
|
||||
class GradNet(nn.Cell):
|
||||
def __init__(self, network):
|
||||
super(GradNet, self).__init__()
|
||||
self.grad = ops.GradOperation(get_all=True)
|
||||
self.network = network
|
||||
|
||||
def construct(self, *inputs):
|
||||
gout = self.grad(self.network)(*inputs)
|
||||
return gout
|
||||
|
||||
|
||||
def test_relu():
|
||||
x = Tensor(np.array([[[[-1, 1, 10],
|
||||
[1, -1, 1],
|
||||
[10, 1, -1]]]]).astype(np.float32))
|
||||
relu = Net(P.ReLU())
|
||||
grad = GradNet(relu)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_identity():
|
||||
x = Tensor(np.array([1, 2, 3, 4]).astype(np.int64))
|
||||
identity = Net(P.Identity())
|
||||
grad = GradNet(identity)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_range():
|
||||
x = Tensor(np.array([1, 2, 3, 2]).astype(np.int64))
|
||||
range_net = Net(inner.Range(1.0, 8.0, 2.0))
|
||||
grad = GradNet(range_net)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_ones_like():
|
||||
x = Tensor(np.array([[0, 1], [2, 1]]).astype(np.int32))
|
||||
ones_like = Net(P.OnesLike())
|
||||
grad = GradNet(ones_like)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_zeros_like():
|
||||
x = Tensor(np.array([[0, 1], [2, 1]]).astype(np.int32))
|
||||
zeros_like = Net(P.ZerosLike())
|
||||
grad = GradNet(zeros_like)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_argmax():
|
||||
x = Tensor(np.array([[1, 20, 5], [67, 8, 9], [130, 24, 15]]).astype(np.float32))
|
||||
argmax = Net(P.Argmax())
|
||||
grad = GradNet(argmax)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_argmin():
|
||||
x = Tensor(np.array([[1, 20, 5], [67, 8, 9], [130, 24, 15]]).astype(np.float32))
|
||||
argmin = Net(P.Argmin())
|
||||
grad = GradNet(argmin)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_broadcast():
|
||||
x = Tensor(np.array([1, 2, 5, 2]).astype(np.float32))
|
||||
broadcast = TupleInputNet(P.Broadcast(1))
|
||||
grad = GradNet(broadcast)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_is_finite():
|
||||
x = Tensor(np.ones([2, 4]).astype(np.int32))
|
||||
is_finite = Net(P.IsFinite())
|
||||
grad = GradNet(is_finite)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_approximate_equal():
|
||||
x = Tensor(np.array([1, 2, 3]).astype(np.float32))
|
||||
y = Tensor(np.array([2, 4, 6]).astype(np.float32))
|
||||
approximate_equal = Net(P.ApproximateEqual(2.))
|
||||
grad = GradNet(approximate_equal)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_logical_not():
|
||||
x = Tensor(np.array([True, False, True]).astype(np.bool))
|
||||
logical_not = Net(P.LogicalNot())
|
||||
grad = GradNet(logical_not)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_sign():
|
||||
x = Tensor(np.array([[2.0, 0.0, -1.0]]).astype(np.float32))
|
||||
sign = Net(P.Sign())
|
||||
grad = GradNet(sign)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_round():
|
||||
x = Tensor(np.array([0.8, 1.5, 2.3, 2.5, -4.5]).astype(np.float32))
|
||||
round_net = Net(P.Round())
|
||||
grad = GradNet(round_net)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_lin_space():
|
||||
start = Tensor(1, mstype.float32)
|
||||
stop = Tensor(10, mstype.float32)
|
||||
num = 5
|
||||
lin_space = Net(P.LinSpace())
|
||||
grad = GradNet(lin_space)
|
||||
grad.compile(start, stop, num)
|
||||
|
||||
|
||||
def test_dropout_gen_mask():
|
||||
x = (2, 4, 2, 2)
|
||||
keep_prob = Tensor(1.0, mstype.float32)
|
||||
dropout_gen_mask = Net(P.DropoutGenMask(10, 28))
|
||||
grad = GradNet(dropout_gen_mask)
|
||||
grad.compile(x, keep_prob)
|
||||
|
||||
|
||||
def test_onehot():
|
||||
indices = Tensor(np.array([0, 1, 2]).astype(np.int32))
|
||||
depth, on_value, off_value = 3, Tensor(1.0, mstype.float32), Tensor(0.0, mstype.float32)
|
||||
one_hot = Net(P.OneHot())
|
||||
grad = GradNet(one_hot)
|
||||
grad.compile(indices, depth, on_value, off_value)
|
||||
|
||||
|
||||
def test_assign():
|
||||
class AssignNet(nn.Cell):
|
||||
def __init__(self):
|
||||
super(AssignNet, self).__init__()
|
||||
self.assign = P.Assign()
|
||||
self.variable = Parameter(Tensor([1.0], mstype.float32), name="variable")
|
||||
|
||||
def construct(self, x):
|
||||
return self.assign(self.variable, x)
|
||||
|
||||
value = Tensor([2.0], mstype.float32)
|
||||
assign = AssignNet()
|
||||
grad = GradNet(assign)
|
||||
grad.compile(value)
|
||||
|
||||
|
||||
def test_assign_add():
|
||||
class AssignAddNet(nn.Cell):
|
||||
def __init__(self):
|
||||
super(AssignAddNet, self).__init__()
|
||||
self.assign_add = P.AssignAdd()
|
||||
self.variable = Parameter(initializer(1, [1], mstype.int64), name="global_step")
|
||||
|
||||
def construct(self, x):
|
||||
return self.assign_add(self.variable, x)
|
||||
|
||||
value = Tensor(np.ones([1]).astype(np.int64) * 100)
|
||||
assign_add = AssignAddNet()
|
||||
grad = GradNet(assign_add)
|
||||
grad.compile(value)
|
||||
|
||||
|
||||
def test_assign_sub():
|
||||
class AssignSubNet(nn.Cell):
|
||||
def __init__(self):
|
||||
super(AssignSubNet, self).__init__()
|
||||
self.assign = P.AssignSub()
|
||||
self.variable = Parameter(initializer(1, [1], mstype.int32), name="global_step")
|
||||
|
||||
def construct(self, x):
|
||||
return self.assign(self.variable, x)
|
||||
|
||||
value = Tensor(np.ones([1]).astype(np.int32) * 100)
|
||||
assign_sub = AssignSubNet()
|
||||
grad = GradNet(assign_sub)
|
||||
grad.compile(value)
|
||||
|
||||
|
||||
def test_iou():
|
||||
anchor_boxes = Tensor(np.random.randint(1.0, 5.0, [3, 4]).astype(np.float16))
|
||||
gt_boxes = Tensor(np.random.randint(1.0, 5.0, [3, 4]).astype(np.float16))
|
||||
iou = Net(P.IOU())
|
||||
grad = GradNet(iou)
|
||||
grad.compile(anchor_boxes, gt_boxes)
|
||||
|
||||
|
||||
def test_bn_training_reduce():
|
||||
x = Tensor(np.ones([128, 3, 32, 3]).astype(np.float32))
|
||||
bn_training_reduce = Net(P.BNTrainingReduce())
|
||||
grad = GradNet(bn_training_reduce)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_equal():
|
||||
x = Tensor([2.0], mstype.float32)
|
||||
y = Tensor([2.0], mstype.float32)
|
||||
equal = Net(P.Equal())
|
||||
grad = GradNet(equal)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_not_equal():
|
||||
x = Tensor([2.0], mstype.float32)
|
||||
y = Tensor([2.0], mstype.float32)
|
||||
not_equal = Net(P.NotEqual())
|
||||
grad = GradNet(not_equal)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_greater():
|
||||
x = Tensor(np.array([1, 2, 3]), mstype.int32)
|
||||
y = Tensor(np.array([1, 1, 4]), mstype.int32)
|
||||
greater = Net(P.Greater())
|
||||
grad = GradNet(greater)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_greater_equal():
|
||||
x = Tensor(np.array([1, 2, 3]), mstype.int32)
|
||||
y = Tensor(np.array([1, 1, 4]), mstype.int32)
|
||||
greater_equal = Net(P.GreaterEqual())
|
||||
grad = GradNet(greater_equal)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_less():
|
||||
x = Tensor(np.array([1, 2, 3]), mstype.int32)
|
||||
y = Tensor(np.array([1, 1, 4]), mstype.int32)
|
||||
less = Net(P.Less())
|
||||
grad = GradNet(less)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_less_equal():
|
||||
x = Tensor(np.array([1, 2, 3]), mstype.int32)
|
||||
y = Tensor(np.array([1, 1, 4]), mstype.int32)
|
||||
less_equal = Net(P.LessEqual())
|
||||
grad = GradNet(less_equal)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_logical_and():
|
||||
x = Tensor(np.array([True, False, True]), mstype.bool_)
|
||||
y = Tensor(np.array([True, True, False]), mstype.bool_)
|
||||
logical_and = Net(P.LogicalAnd())
|
||||
grad = GradNet(logical_and)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_logical_or():
|
||||
x = Tensor(np.array([True, False, True]), mstype.bool_)
|
||||
y = Tensor(np.array([True, True, False]), mstype.bool_)
|
||||
logical_or = Net(P.LogicalOr())
|
||||
grad = GradNet(logical_or)
|
||||
grad.compile(x, y)
|
||||
|
||||
|
||||
def test_reduce_all():
|
||||
x = Tensor(np.array([[True, False], [True, True]]))
|
||||
reduce_all = Net(P.ReduceAll(keep_dims=True))
|
||||
grad = GradNet(reduce_all)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_reduce_any():
|
||||
x = Tensor(np.array([[True, False], [True, True]]))
|
||||
reduce_all = Net(P.ReduceAny(keep_dims=True))
|
||||
grad = GradNet(reduce_all)
|
||||
grad.compile(x)
|
||||
|
||||
|
||||
def test_dropout_do_mask():
|
||||
input_x = Tensor(np.ones([2, 2, 3]), mstype.float32)
|
||||
keep_prob = Tensor(0.5, mstype.float32)
|
||||
mask = Tensor(np.ones([2]), mstype.uint8)
|
||||
dropout_do_mask = Net(P.DropoutDoMask())
|
||||
grad = GradNet(dropout_do_mask)
|
||||
grad.compile(input_x, mask, keep_prob)
|
Loading…
Reference in New Issue