我在使用DataWork开发机器学习算法的时候,喜欢使用ODPS SQL+PAI命令(我叫它PAI SQL)的开发模式。PAI SQL的优点是简单易用,便于跟踪维护。缺点代码复用性较差(因为不支持函数),尤其是进行不断探索的时候,经常需要在上一版的代码上修改几个变量,或者几个参数,这个时候如果直接修改的时候效率很低而且容易出错。我发现这部分问题通过用编写代码生成函数(Python)和代码模板来解决。
代码如下:
def template(filename,outfilename,template):
with open(filename, "r+") as myfile:
strcontent=myfile.read()
for key in template.keys():
strcontent=strcontent.replace(key,template[key])
print(key)
with open(outfilename, "w") as myfile:
myfile.write(strcontent)
通过优化模板可以大幅减少BUG、生成的代码可以无人值守的执行,一次性对多个实验方案进行验证,效率很高。