2017-03-17 13 views
2

私はTensorflowを列車のモデルの詩人ガイドに使用しています。私はretrained_graph.pbとretrained_labels.txtを作成しています。アプリケーションで使用している間にエラーが発生するTensorflowリトレインモデルパフォーマンス

原因:java.lang.UnsupportedOperationException:Op BatchNormWithGlobalNormalizationがGraphDefバージョン21で使用できません。バージョン9で削除されました。tf.nn.batch_normalization()を使用します。 。 org.tensorflow.Graph.importGraphDefでorg.tensorflow.Graph.importGraphDef(ネイティブメソッド)(Graph.java:118)

でのアプリケーションのためにそれをさらに列車のモデルはTensorflow for mobileブログを使用してoptimized_graph.pb、rounded_graph.pbを作成した後、 、mmapped_graph.pbファイル。

optimized_graph.pbとrounded_graph.pbファイルは、エラーなしでAndroidアプリケーションで動作します。 使用mmapped_graph.pbは、私が初期化に失敗しましたエラーを取得中:にjava.io.IOException:有効ではありませんTensorFlowグラフシリアル化を:アプリケーションの無効GraphDef

パフォーマンスは、使用optimized_graph.pbとrounded_graph.pbファイルながら、良いではありません。アプリケーションのカメラの画面は、他の花の写真が含まれていない間、高い信頼率でランダムに花の名前を表示します。花だけを検出し、花でないときは空白のままにする方法。 Screenshot

答えて

2

アプリケーションのパフォーマンスは非常に優れており、携帯電話のGPUで非常に高速です。問題は、独自のモデルを構築する方法です。実際、このアプリケーションのテンソルフローグラフは、与えられたクラスに基づいてイメージを認識するように構築されています。言い換えれば、例えば、4つの異なるクラスの画像を認識するようにモデルに教える場合、この4つのクラスに見られるすべてのものにラベルを付けることを試みます。 このため、カメラの画面に花が入っていないと間違った結果になります。

この問題を「解決する」方法は、ランダム画像を持つ余分なクラスを追加することです。これはおそらく、no-floweraの写真で高い確信度を持つでしょう。

より厳密なモデルが必要な場合は、全く異なるアルゴリズムを使用する必要があります。

しかし、どのアプリケーションで使用することは恐らくコンピュータ画像の芸術認識

+0

おかげダヴィデの状態であることを覚えておいてください、あなたはより厳格なモデルやそのための任意の参照にどのアルゴリズムを使用し、詳細情報を提供することができます。 –

+0

申し訳ありませんが、私は現時点では何も持っていません...しかし、私はあなたが陰性のサンプルを試してみることをお勧めします。本当にいい結果が得られると思います。 –