nlh*_*n17 4 c++ python dictionary list
我有一个 Python 字典列表,其中包含有关神经网络各个层的信息。每个字典可以有任意数量的条目,包括更多的字典。
layer_config = [
{'conv_layer': {
'filter_size' : 5,
'stride' : 1,
'num_filters' : 20}},
{'pool_layer': {
'poolsize' : (2,2)}},
{'fc_layer': {
'num_output' : 30}},
{'final_layer': {
'num_classes' : 10}}
]
Run Code Online (Sandbox Code Playgroud)
我正在将程序转换为 C++,需要找到一种以类似方式组织这些信息的方法。C++ 嵌套映射是实现此目的的最佳方法,还是有另一种数据结构可能是更好的选择?
在 C++ 中,要对这个问题使用嵌套映射,每个映射必须是相同的类型。如果您创建了地图映射,则子映射都必须保存相同类型的信息(如字符串和整数),并且您的字典中似乎根据键保存了不同的信息,(即您有一个键“poolsize”处的对 (2,2),在其他地方你有整数)。执行此操作的 C++ 方法可能是创建一个包含此信息的结构或类。例如,您可以为 conv_layer、pool_layer 等创建一个包含四个映射的结构。从您的示例中,看起来您的数据结构只需要一个用于 conv_layer 的映射,以及一组用于所有其他变量的对。如果是这种情况,您可以对您的数据结构使用这样的东西:
struct layer_config{
std::map<std::string, int> conv_layer;
std::pair<std::string, std::pair<int, int>> pool_layer;
std::pair<std::string, int> fc_layer;
std::pair<std::string, int> final_layer;
};
Run Code Online (Sandbox Code Playgroud)