2017-07-08 16 views
0

ここで説明した注意OCRモデル(Inception V3重みを初期化として使用)をhttps://github.com/tensorflow/models/tree/master/attention_ocrに習得し、結果のチェックポイントファイルをグラフにフリーズしました。このネットワークはiOSのC++ APIを使ってどのように実装できますか?TensorFlowの実装注意iOSでのOCR

ありがとうございます。

+0

はhttp://machinethink.net/blog/tensorflow-on-ios/良い出発点の指示はありますか? –

答えて

2

あなたが出発点として、いくつかの既存のiOSデモ(12)を使用しますが、次の詳細に細心の注意を払うことができます他の人が示唆したように:

  1. は必ずフリーズ」への適切なツールを使用してください"モデル。 SavedModelは、Tensorflowモデルの汎用シリアル化形式です。
  2. モデルエクスポートスクリプトでは、通常、何らかの入力正規化を行うことができます。 Model.create_base関数は、[-1.25, 1.25]に正規化された値を持つ形状[batch_size、height、width、channels]のtf.float32テンソルが必要であることに注意してください。 TensorFlow計算グラフの一部として画像の正規化を行う場合は、画像が正規化されていない場合と逆の場合があることを確認してください。
  3. 入出力テンソルの名前を取得するには、単純にそれらを印刷するだけです(例:どこかの輸出スクリプト内:

    data_images = tf.placeholder(dtype=tf.float32, shape=[batch_size, height, width, channels], name='normalized_input_images') 
    endpoints = model.create_base(data_images, labels_one_hot=None) 
    print(data_images, endpoints.predicted_chars, endpoints.predicted_scores) 
    
+0

Alexanderさん、ありがとうございました。しかし、入力画像をどのようにネットワークに送り込むべきかについて、私は少し混乱しています。私は、「分割された」ノードが32x150x600x3のサイズのテンソルを受け入れ、それが4つのテンソルに分割され、インセプション・フィーチャ・エクストラクタに送られることが分かります。 1つの入力イメージがあると仮定すると、どのノードを自分の入力として使うべきですか?さらに、1つの入力イメージで32のバッチサイズをどのように取得するのですか? –

+0

ビューが1つの場合は、モデルコンストラクタの引数としてnum_views = 1を指定します。だから、答えからコードスニペットを引き続き使用し、画像をdata_imagesテンソルに渡すことができます(printステートメントに名前が表示されます)。 ただし、トレーニングに使用した場所と同じ数のビューを使用する必要があります。 4つのビューを使用していて1つでテストする必要がある場合は、トレーニングデータの場合と同様にランダムなノイズで1つの1500x150ビューを埋め込む必要があります。 –

関連する問題