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)