50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
|
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)
|