编一个tkinter可视化训练神经网络的项目

1.到B站,github上搜索有关tkinter项目的资源
2.照虎画猫,完成一个“hello world”
3.对于新的功能,首先用一个最小规模进行验证,然后将其工程化,流水线化(包装成可方便使用,可快速多次定制的类)
4.在完成3后,将原来的最小规模删去保证工程的清洁,见下图,这部分注释掉的就是原来的小实验留下来的,之后就不要了。
我参考的tkinter项目
https://github.com/beginerSE/Tkinter_filedialog.git
https://github.com.cnpmjs.org/Dvlv/Tkinter-By-Example.git

######################
以下是师兄布置给我的任务:写一个tk GUI,实现训练神经网络,包括用户自定义训练集folder,输出log等功能都实现了。
####################
解决一些重要的技术点:怎么显示损失函数图?
这在tensorboard可以使用的情况下非常简单,但是现在不能用这个,需要把损失图放到tkinter当中。
subprocess这种方法确实可行,但一个是保存的tfevents当中没有loss,另外也不符合当前需求,放弃使用;

于是我只能用list把loss记录下来,然后用之前一样的方法,把GUI的queue和工作函数(plotLog)全部传入训练thread,以期传回带有我想要plot出的信息的queue.
这个方法一开始没有画布,之后才能蹦出来。如果在init当中定义画布,会在self.f.gca().plot(loss_array)这一行报“RuntimeError: main thread is not in main loop”的错误,但我不知道为什么。按照
https://www.maixj.net/ict/runtimeerror-main-thread-is-not-in-main-loop-21037去做也不得行。当把定义figure的语句放到init当中时,错误就发生了。
最重要的技术是发现了matplotlib可以和tkinter联用,他自带一个tk的egg后端见https://blog.csdn.net/qq_44065334/article/details/113924522
在项目运行过程当中使用了组件place方法(pack,grid,place).

你可能感兴趣的:(tkinter)