在微博已经呆了二个月了,是做深度学习,用的是tensorflow。
主要做的工作就是
1.CharCNN模型了解,字典生成,CharCNN git代码地址https://github.com/mhjabreel/CharCNN
刚来就分享了charcnn的论文,组会上讲的,很紧张,压力超大。 他们把英文的改成了中文,效果不太好,后续我没有跟进这个模型,我只是了解了原理,大体读了下代码。最后他们将Charcnn部署成插件用来做预测服务,网页端有一个接口用来访问。
2.图片数据的打包,由raw-data到tfrecord
一开始手中是没有图片的,他们微博中倒是可以找到图片,我漫步在各大数据集网站上,最后发现由于版权问题,数据集基本不开放,然后自己写爬虫来爬。
数据格式的打包,当时也调研了很长时间,查了很多资料,最后最好的方式是打包成tfrecord,bin格式的文件是为了c++使用的,放到python中不适合,然后python打包成bin格式的代码网上基本没有,但是mnist是采用的bin格式。
3.ImageNet中的Inception模型
这个是耗时最长的一个东西,数据集的下载就耗时一个星期,120G的数据集可怜服务器访问只能有200K网速,中间还出现过问题。下数据集期间来看inception模型,也接触到了很多深度学习新的东西,如batchsize epoch,还有梯度下降、dropout,下一层是上一层多个卷积核的组合。dropout解决了参数过多问题,也一定程度上避免了过拟合。对分布式的训练也有一定的了解,比如同步和异步的方式。期间服务器的tensorflow版本升级过二次,相应我的模型代码修改了二次。
4.tensorflow访问HDFS
后续这几天整的比较多的事mesos chronos docker这些深度学习平台搭建的事,tensorflow访问HDFS用了好长时间,先是找方法,找到方法之后测试没成功,因为hadoop装的事32位,后来自己装了一个2.6.5版本的测试成功了,但是boss说不轻易升级系统版本,搞了半天,把截图的错误给他看。
5.mesos调用docker
一开始使用的是karios这个工具,就是mesos的一个提交的客户端,但是docker没有启动 任务在系统启动了。后来使用了命令行的方式来启动,启动成功,估计是工具太旧了吧。现在要把深度学习的模型代码打包到docker里面,正在测试中。
这段时间docker看的比较多,因为涉及到向docker里传参的问题,因为都是新的东西需要自己去摸索。docker中的环境 水很深,bash不能识别source命令,用sh可以识别source但是括号不能识别。做的最多的事情就是看文档编码,修改代码。
遇到的问题也很多,像服务器内存泄露,docker搭建,HDFS搭建,mesos任务调度,现在平台还没有搭建起来,但是我负责的代码基本准备好了,测试代码的工作我没法做,分布式的inception模型不知道啥时候跑。而且以后准备数据是一个问题。