2017-11-30 6 views
0

私はTensorflowで作業を始めました.Caffeではデータの効率的な読み込みが効率的でしたが、Tensorflowを使用すると、データロードプロセスを自分で作成し、TFRecords、バッチ処理、複数の脅威、処理これらのスレッドなどを扱うようになりました。そこで私は、データを読み込む部分を処理するように、最初の例である開始v3を開始しました。私はTensorflowの初心者で、Pythonには比較的新しいので、この部分で何が起こっているのか分かりません(ラベルのサイズをlabel_index *ファイルに拡張していますが、なぜですか? ???それはラベルのための1つのホットエンコーディングを作成していることは、我々はなぜそれだけで各ファイルとして長さやファイルのためにできるだけ多くを延長Thxをラベルを持っていないする必要がありますかTensorflowはラベルを保存するのに1つのホットエンコーディングしか使用しませんか?

labels.extend([label_index] * len(filenames)) 
texts.extend([text] * len(filenames)) 
filenames.extend(filenames) 

全体のコードはここにあります。:上述https://github.com/tensorflow/models/tree/master/research/inception

部分は、データ/ build_image_data.py下にあり、(フォルダ名はラベルである)フォルダの下に格納された画像として、既存のデータセットから画像データセットを構築:https://github.com/tensorflow/models/blob/master/research/inception/inception/data/build_image_data.py

+1

Tensorflowの需要ではなく、ネットワークアーキテクチャがあなたに必要とするため、まもなくワンホットエンコードが必要です。ネットワークはNクラスの分類子なので、最終レイヤーにはクラスごとに1つのニューロンがあり、サンプルが属するクラスに一致するニューロンをアクティブにするようにネットワークをトレーニングします。ラベルをワンホットエンコードすることは、これを行う最初のステップです。 – GPhilo

+0

@GPhiloまあ、ありがとう、ありがとう。しかし、なぜそれはテキスト(テキストはクラスの自然言語ラベル - 犬、家、猫など)でそれを行う必要があるのですか?それで、['class1'、 'class2' 「class1」、「class2」、「class1」、「class2」、「class1」、「class2」、「class1」、「class2」、「class1」、「class2」、 class1 '、' class2 '、' class1 '、' class2 '、' class1 '、' class2 ']これはなぜですか? – dusa

+0

私はあなたのコメントを理解していない、何がリストにありますか? – GPhilo

答えて

1

コメントに記載された内容をまとめる:

ネットワークアーキテクチャでは、Tensorflowの要求ではなく、ワンホットエンコードが必要です。ネットワークはNクラスの分類子なので、最終レイヤーにはクラスごとに1つのニューロンがあり、サンプルが属するクラスに一致するニューロンをアクティブにするようにネットワークをトレーニングします。これを行うには、ラベルをワンホットエンコードすることが第一歩です。人間が読み取り可能なラベルについて

、あなたが順番にセットにフォルダのセットからあるTfRecordファイルを、データセットを変換するために_process_datasetで使用され_find_image_files機能、に位置していますを参照しているコードconvenient input format type for Tensorflow

人間が読めるラベル文字列は、tfrecordファイル内の機能として「余分なもの」として含まれています(おそらく、トレーニング中の中間結果の視覚化を簡略化するために)。ネットワークのパラメータの実際の最適化では決して使用しないでください。

関連する問題