模型原代码见:https://github.com/zrc0622/harfang-sandbox/tree/paper
基于该训练模型,采用tkinter制作的图形界面dogfight演示系统,本文主要内容为介绍在制作过程中对整个系统进行的一次改进。
在原版dogfight演示系统中,由于存在问题:
1、tensorboard打开log文件的实现过程中,无法打开到以开始训练为时间的命名的文件夹内,从而无法在指定的目录下使用tensorboard,尽管这一问题在rot演示系统中通过修改config文件保存路径及命名方式来解决。
2、训练代码需要修改df.connect()中的IP地址,如果不直接修改源代码,在GUI中无法实现修改
3、为了能在GUI中展示控制台的输出内容,因为使用的是subprocess.Popen实现执行训练命令,尝试的一系列方法无法将这个子进程中的输出结果展示到演示系统中。
基于以上问题,决定将演示系统和训练源代码作为一个整体来作为整个演示系统,对此,做出的修改是:
1、将整个训练代码放入原演示系统中的train函数中,开始训练按钮将直接绑定训练过程
2、为了解决argparse参数问题,直接通过GUI中的选项结果来决定各参数的数值,从而跳过了原命令,用户选择结果即是命令
3、对一些细节做了调整,例如 renderless_mode、data_path等
4、直接执行training函数会导致GUI崩溃,考虑使用线程来解决:command=lambda :MyThread(training)