TensorFlow多Worker同步方案

TensorFlow大部分使用方案都是异步SGD,而且使用global_step做停止条件,这样会导致一个问题,不能保证所有worker负责的数据训练相同的轮数,速度快的worker所负责的数据将会获得更多step。那怎样实现barrier机制呢?

阅读全文

深度学习在序列标注问题(Sequence Labeling Problem)的应用

TODO:

传统方法:
HMM,CRF

DNN:
2015-Bidirectional LSTM-CRF Models for Sequence Tagging
2016-End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF

阅读全文

广告CTR预估场景下的DNN调优实战

LR模型的时候,我们需要构造许多组合特征,比如UserID与ItemID的组合,许多做DNN的都宣称简化了特征工程,由隐层学习特征交叉,但是隐层进行特征组合的方式并没有明确的理论解释,并且通过隐层参数学习的方式进行隐式的特征组合并不能保证收敛到最优解,通过显示的构造组合特征能给DNN提供一些先验信息,从实战来看,DNN加上显示的组合特征效果会好很多。

阅读全文

Hadoop平台上生成TensorFlow TFRecord的错误问题

使用MapReduce on Yarn或者Spark on Yarn来生成TFRecord的过程中,会发生Hadoop和TensorFlow依赖的Protobuf版本不一致导致冲突的问题,本文通过两种方案来解决这种问题。

阅读全文

安装GFlags和GLog的错误问题

在安装GLog时会报错`undefined reference to 'FlagRegisterer::FlagRegisterer'`的原因及方案。

阅读全文

使用TensorFlow C++ API构建线上预测服务 - 篇3

在线下训练时,为了效率考虑,我们经常把数据转成TFRecord格式,然后直接调用TensorFlow提供的Reader来读入TFRecord数据。这样在生成的`graph.pb`中,Reader会对应多个节点,如果在c++中直接导入这个`graph.pb`我们就不能使用`std::vector>`作为`session.Run(...)`的输入了,本文讲解一下怎样处理这种情况。

阅读全文

使用TensorFlow C++ API构建线上预测服务 - 篇2

之前的一篇文章中[使用TensorFlow C++ API构建线上预测服务 - 第一篇](http://mathmach.com/2017/10/09/tensorflow_c++_api_prediction_first/),详细讲解了怎样用TensorFlow C++ API导入模型做预测,但模型`c = a * b`比较简单,只有模型结构,并没有参数,所以文章中并没讲到怎样导入参数,本文使用一个复杂的模型继续讲解。

阅读全文

使用TensorFlow C++ API构建线上预测服务 - 篇1

目前,TensorFlow官方推荐使用Bazel编译源码和安装,但许多公司常用的构建工具是CMake。TensorFlow官方并没有提供CMake的编译示例,但提供了MakeFile文件,所以可以直接使用make进行编译安装。另一方面,模型训练成功后,官方提供了TensorFlow Servering进行预测的托管,但这个方案过于复杂。对于许多机器学习团队来说,一般都有自己的一套模型托管和预测服务,如果使用TensorFlow Servering对现存业务的侵入性太大,使用TensorFlow C++ API来导入模型并提供预测服务能方便的嵌入大部分已有业务方案,对这些团队来说比较合适。

阅读全文

Sublime插件

将Sublime打造成舒适的C++编辑器。

阅读全文

MXNet之NNVM代码解析

Symbol提供了许多图的接口,便于前端访问,而Graph里面没几个接口,主要就是有个indexed_graph,便于底层训练时快速访问。Symbol非常灵活,以后有可能支持动态图,但每次动态变化后都要先转成Graph,底层不太支持动态度,因为都是vector用index来索引node,不太适合中间插入一个node。

阅读全文