2017-03-11 2 views
0

一つの特定の画像を読み取ると、のディレクトリ構造を持つ:単一のファイルに結果のTensorFlow TFRecordsは、私が<a href="https://github.com/tensorflow/models/blob/master/inception/inception/data/build_image_data.py" rel="nofollow noreferrer">build_image_data.py</a>で作成したTFRecordsファイルから1つの画像のみをロードしたい

├── train 
| ├── chef 
|  ├── data0.png 
|  ├── ... 
|  └── data5467.png 
| ├── chicken 
|  ├── data0.png 
|  ├── ... 
|  └── data2098.png 
| ├── parasaurolophus 
|  ├── data0.png 
|  ├── ... 
|  └── data2977.png 
| └── Trex 
|  ├── data0.png 
|  ├── ... 
|  └── data2841.png 
├── validation 
| ├── ... 
├── build_image_data.py 
└── labels.txt 

train-00000-of-00001含みます上からのすべての画像(124MBバイナリ)。

今、私はtrain/chef/data0.pngでなければならないTFRecordsファイルの最初のイメージを読みたいと思います。それ、どうやったら出来るの?

すべての画像が同じTFRecordsファイルに保存されているテスト時に、カスタムデータセットから1つの特定の画像を読み取るにはどうすればよいですか?

答えて

0

最初の質問です。この後

reader = tf.TFRecordReader() 
queue = tf.train.string_input_producer([you_tfrecords_file_name]) 
_, serialized = reader.read(queue) 
features = tf.parse_single_example(serialied, features={you_features_dict}) 
image = features[your_image_name] 
image.set_shape(you_image_shape) 

を、あなたは

sess.run(image) 

とnp.ndarray型としてたびに、あなたのイメージを実行することができます: あなたはそれがこのように行けば、tfrecordsファイルを解析するパイプラインを必要としますこの行のコードを呼び出すと、1つのイメージがtfrecordsファイルに書き込まれた順にデキューされます。

2番目の質問です。すべてのイメージをtfrecordsに変換すると、入力としてキューに格納されたバージングが難しくなります。あなたはtrを変換する補助イメージをtrain.tfrecordsに、有効なイメージをvalid.tfrecordsに、共有変数を使用して2つの入力を2つのロギングにします。詳細はthis

を参照してください。
関連する問題