请问下,下面的代码里这个config是个什么数据格式?是字典么?可以用get函数获取里面的值么?这里面又嵌套字典么?
CONFIG = {
'model_save_dir': "./output/IsolatingSwitch",
'num_classes': 2,
'total_images': 200,
'epochs': 20,
'batch_size': 32,
'image_shape': [3, 224, 224],
'LEARNING_RATE': {#学习率
'params': {
'lr': 0.00375 #学习率数值为0.00375
}
},
'OPTIMIZER': {#优化器
'params': {
'momentum': 0.9#优化器参数为0.9
},
'regularizer': {
'function': 'L2',
'factor': 0.000001
}
},
'LABEL_MAP': [#标签的类别
"IsolatingSwitch_Open",
"IsolatingSwitch_Close",
]
}
字典可以嵌套。通过[]或者get取值都可以
CONFIG = {
'model_save_dir': "./output/IsolatingSwitch",
'num_classes': 2,
'total_images': 200,
'epochs': 20,
'batch_size': 32,
'image_shape': [3, 224, 224],
'LEARNING_RATE': {#学习率
'params': {
'lr': 0.00375 #学习率数值为0.00375
}
},
'OPTIMIZER': {#优化器
'params': {
'momentum': 0.9#优化器参数为0.9
},
'regularizer': {
'function': 'L2',
'factor': 0.000001
}
},
'LABEL_MAP': [#标签的类别
"IsolatingSwitch_Open",
"IsolatingSwitch_Close",
]
}
print(CONFIG.get('model_save_dir'))
print(CONFIG.get('LEARNING_RATE').get('params').get('lr'))
print(CONFIG['OPTIMIZER']['params']['momentum'])
楼主想问的是不是如果这个是文件的方式存储成的配置文件吧,假设文件名为model.config,读取的代码如下:
with open('model.config') as f:
content = f.read()
exec(content)
然后就可以通过get进行取值或者其他操作
字典的基本格式就是{k:v}
这里的k是键值,只能是不可变数据类型,在字典中具有唯一性,v是可以为任何数据类型的,所以可以嵌套
问题及回答
1、下面的代码里这个config是个什么数据格式?是字典么?
答:dict格式,也就是字典
2、可以用get函数获取里面的值么?
答: 可以使用, 比如
test = CONFIG.get('model_save_dir')
print(test)
test = CONFIG['model_save_dir']
print(test)
这两者都可以获取的值一样,前者get
格式更好点。
答:有的,
简单来说,只要{}
包含的就是字典格式,{}
里面如果还有{}
,那么里面就有嵌套字典,
比如CONFIG
里面的:
'LEARNING_RATE': {#学习率
'params': {
'lr': 0.00375 #学习率数值为0.00375
}
},
'OPTIMIZER': { # 优化器
'params': {
'momentum': 0.9 # 优化器参数为0.9
},
'regularizer': {
'function': 'L2',
'factor': 0.000001
}
},
'LABEL_MAP': [ # 标签的类别
"IsolatingSwitch_Open",
"IsolatingSwitch_Close",
]
这三个都属于字典,字典的大致格式就是 外面大括号{}
,里面键值对 用 :
隔开,前者为键(也就是key),后者为值(也就是value)。
{"a": 123} # 这就是一个字典其中 a为键(也就是key), 123为值(也就是value)。
# 参考 {key: value}
如有问题及时沟通