概述
这个月最后一天,对之前的工作做个小结,一会儿打球
1.numpy保存的权值与c++交互,很困难,numpy的格式不好解析,网上资料很少
2.采用python做中间转换,实现1的要求。后看theano代码,发现读入python的训练样本,不用转换成numpy数组,用本来python就可以了。但是python经过cPickle的dumpy文件,加了很多格式,不适合同c交互。
3.用json转换,由于python和cpp都有json的接口,都转成json的格式,然后再交互。可是theano训练之后权值是numpy格式的,需要转成python数组,json才可以存到文件中。现在的问题是怎么把numpy转成python的list?
4.为了解决3,找了一天,终于找到了numpy数组的tolist接口
5.现在python和c都可以用json了。研究jsoncpp的使用,将python的json文件读取,发现解析成cpp数组的时候,也不是那么容易。后来在网上用递归解决了,但是又有一个问题:jsoncpp读取几百兆的大文件根本不可行?
6.明天准备重写生成训练样本的cpp代码,准备直接存成json的格式送给theano,不用经过python。然后给cpp另外做一份训练样本的文件用来读取。这样jsoncpp就不用读取几百兆的大文件了,只需要读取theano训练的权值文件,就可以测试了,也就几十兆而已。
7前几天也抽时间看了一下theano写的cnn代码,对epoch和学习率进行动态调整。用1000个类来测试,目前看效果不错,错误率已经可以精确到8.5629%;再4037个类上面,也在windows上跑着,希望有好的结果。之前4037个类最好结果是8.9%,折腾了两周没有复现出来。感觉是对样本特征值的提取跟以前的new96vec不一样了,又或者是cnn对权值也敏感?反正现在只有期待改变lr和epoch之后,能够有好的结果了。
最后
以上就是俏皮荷花为你收集整理的工作小结python和cpp通过json互通的全部内容,希望文章能够帮你解决工作小结python和cpp通过json互通所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复