37 const vector<nets::embd_descr_t>& embd_descr = src.
get_embd_descr();
38 size_t count_embd_uint = 0, count_embd_str = 0;
39 for (
size_t i = 0; i < embd_descr.size(); i++)
41 if ( embd_descr[i].m_name ==
"raw" )
46 std::shared_ptr<UInt64Dict> sp_uint64_dict
47 = std::dynamic_pointer_cast<UInt64Dict, DictBase>(src.
get_dicts()[i]);
48 std::shared_ptr<StringDict> sp_str_dict
49 = std::dynamic_pointer_cast<StringDict, DictBase>(src.
get_dicts()[i]);
50 std::shared_ptr<Char32Dict> sp_char32_dict
51 = std::dynamic_pointer_cast<Char32Dict, DictBase>(src.
get_dicts()[i]);
53 if (!sp_uint64_dict && !sp_char32_dict && sp_str_dict)
57 else if ((sp_uint64_dict || sp_char32_dict) && !sp_str_dict)
63 throw runtime_error(
"Something wrong with dicts.");
67 if (count_embd_uint > 0)
72 if (count_embd_str > 0)
77 size_t uint_dict_idx = 0, str_dict_idx = 0;
78 for (
size_t i = 0; i < embd_descr.size(); i++)
80 if ( embd_descr[i].m_name ==
"raw")
86 const string module_name =
"embd_" + embd_descr[i].m_name;
89 std::shared_ptr<UInt64Dict> sp_uint64_dict = std::dynamic_pointer_cast<UInt64Dict, DictBase>(src.
get_dicts()[i]);
90 std::shared_ptr<StringDict> sp_str_dict = std::dynamic_pointer_cast<StringDict, DictBase>(src.
get_dicts()[i]);
91 std::shared_ptr<Char32Dict> sp_char32_dict = std::dynamic_pointer_cast<Char32Dict, DictBase>(src.
get_dicts()[i]);
93 assert(sp_uint64_dict || sp_char32_dict || sp_str_dict);
100 else if (sp_char32_dict)
106 else if (sp_str_dict)