RODY/SetParams/main.py

50 lines
1.8 KiB
Python
Raw Normal View History

2022-11-04 17:37:08 +08:00
from DataType.TypeDef import *
from DataType.ParamDef import *
def train(params: TrainParams):
"""
后台提交训练请求时可以参考此方法从前端传递的参数中取出需要的值
:param params:
:return:
"""
# 存在的参数可以使用name字段获取到
cpu_num = params.get("gpu_num")
print(cpu_num)
# 不存在的参数获取的时候返回None
th = params.get("th")
print(th)
def get_train_config_json():
"""
前端获取训练所需要的参数JSON字符串时使用str方法即可获取JSON字符串
:return:
"""
# 第一种方法:
# 创建新对象
params = TrainParams()
# 从指定文件名中读取配置
params.read_from_file("TrainParams.json")
# 转为字符串
print(str(params))
# 第二种方法
# 也可以直接将文本传递给前端,但是可能需要考虑转义符号(\)的处理
with open("TrainParams.json", "r") as f:
print(f.read())
return params
if __name__ == '__main__':
# 当前端需要获取参数列表时,参照此函数中的实现
get_train_config_json()
# 当前端传递回来参数的JSON字符串时使用下述方法将字符串反序列化为对象然后传递给对应的函数
params = TrainParams()
params.read_from_str(
'["{\\"index\\": 0, \\"name\\": \\"gpu_num\\", \\"value\\": 2, \\"description\\": \\"\\", \\"default\\": 0, \\"type\\": \\"I\\"}", "{\\"index\\": 1, \\"name\\": \\"support_cpu\\", \\"value\\": true, \\"description\\": \\"\\", \\"default\\": false, \\"type\\": \\"B\\"}", "{\\"index\\": 2, \\"name\\": \\"labels\\", \\"value\\": 0, \\"description\\": \\"\\", \\"default\\": 0, \\"type\\": \\"E\\", \\"items\\": [\\"dog\\", \\"cat\\"]}"]')
train(params)