使用Tensorflow ssd_mobilenet_v1_android_export.pb模型转移学习

时间:2017-12-09 19:15:37

标签: android tensorflow object-recognition

我想让Tensorflow Android演示应用程序之一的TF Detect只识别相机框架中受限制的自定义对象集(例如苹果,梨,橙子和香蕉),在识别的对象周围绘制框。

在TensorFlow-for-poets代码库之后,我已经成功重新训练了mobilenet_v1_0.50_224模型,并且我已成功替换了另一个TensorFlow演示应用程序TF Classifier中使用的原始tensorflow_inception_graph.pb模型。它似乎有效。

更新:实际上,在第一次成功运行后,由于以下异常,我无法运行任何其他重新训练的模型:*不是有效的TensorFlow图形序列化:NodeDef提到attr'dilations'而不是在Op输出:T; attr = T:type,allowed = [DT_HALF,DT_FLOAT]; ATTR =步幅:列表(INT); ATTR = use_cudnn_on_gpu:布尔,默认= TRUE; attr = padding:string,allowed = [“SAME”,“VALID”]; attr = data_format:string,default =“NHWC”,allowed = [“NHWC”,“NCHW”]&gt ;; NodeDef:conv / Conv2D = Conv2D [T = DT_FLOAT,data_format =“NHWC”,dilations = [1,1,1,1],padding =“VALID”,strides = [1,2,2,1],use_cudnn_on_gpu =是的](Mul,conv / conv2d_params)。 (检查GraphDef解释二进制文件是否与生成GraphDef的二进制文件保持同步。)。

此问题已按照here *

所示解决

但是当谈到TF Detect时,事实证明它使用了ssd_mobilenet_v1_android_export.pb模型。该图与TF分类器中使用的图非常不同(例如,输入和输出节点不同并且具有固定名称:输入是“image_tensor”,输出是“detection_scores”,“detection_boxes”,“detection_classes”和“num_detections” “)并且我不确定是否可以通过转移学习来重新训练它,就像TF分类器中使用的模型一样。

是否有可能,如果是的话,如何继续?

1 个答案:

答案 0 :(得分:0)

您需要通过SSD,YOLO或Tensorflow Object Detection API训练模型,以使用该模型进行TF检测。这个模型不同于用于TF分类的模型(这个模型可以由Keras训练,但TF检测的模型不能)。