我有一个 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}}
]
我正在将程序转换成 C++,需要找到一种方法以类似的方式组织这些信息。 C++ 嵌套映射是实现此目的的最佳方式,还是有其他数据结构可能是更好的选择?
最佳答案
在 C++ 中,要使用嵌套映射来解决这个问题,每个映射都必须是同一类型。如果您创建了 map 的 map ,则子 map 都必须包含相同类型的信息(如字符串和整数),并且看起来您的字典中包含不同的信息,具体取决于键,(即您有一个pair (2,2) 在键“poolsize”处,在其他地方你有整数)。执行此操作的 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;
};
关于python - Python 字典列表的 C++ 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43987631/