2016-12-21 2 views
1

私はtflearnする新たなんだと私は、画像を解決するためにCNNを養成しようとしている - 入力画像がある回帰問題、外>画像をMxNグレースケールまたはMxNx3 RGBのいずれかです。TFLearn:内画像の画像プリローダーを使用する方法 - >画像の回帰問題外

私はメモリ内に収まらない非常に大規模なトレーニングセットを持っているので、私はトレーニングがそれらを消費する準備ができているように、ディスクから画像を引っ張って、「オンザフライ」で訓練したいと思います。

image_preloaderは、我々は常にXは、入力画像とyは

にtflearnの枠組みの中で最良の方法は何ですかをXに対応するスカラーラベルのセットである問題を解決することになると想定しますように思われますXとYの両方が画像である回帰問題に似たようなことをしますか?明らかに何かが欠けていなければならないような気がしますが、Data Utils、Data Augmentation、Data Preprocessingのセクションを見てきましたが、何も見えません。私は、ディスク上の画像の大規模なセットを持っている:私は何をしようとしているの完全な範囲のために

。オンザフライでは、私は自分の画像をロードしてから、入力画像XとYを定義するために画像にいくつかの変更を加える必要があります。ディスク上のイメージは、XとYを適切に定義するために拡張する必要があります。ディスクから読み取られたミニバッチXが与えられたとき、私は一度に一度にバッチを定義することができます。彼らは異なるcolourspaceにもともとあったとしても、decode_jpegchannels=3は、あなたのイメージが[h, w, 3]のすべてのテンソルであることを確認します

def load_image(type="feature") 
    files = '/path/to/my/images/%s/*.jpg' % type 
    filename_queue = tf.train.string_input_producer(tf.gfile.Glob(files)) 
    reader = tf.WholeFileReader() 
    filename, data = reader.read() 
    image_tensor = tf.image.decode_jpeg(data, channels=3) 
    return image_tensor 

注:あなたがのようなものを使用することができTensorFlow純粋で

+0

あなたはそれらを自分でロードする代わりに、フレームワークに依存することはできますか? –

答えて

0

。あなたは、単一のイメージテンソルを持っているこの時点で

。次のようにバックグラウンドキューを使用してバッチ処理することができます。

features = load_image("feature") 
labels = load_image("labels") 
batch_size = 64 
input_batch, label_batch = tf.train.shuffle_batch([features, labels], 
    batch_size=batch_size, num_threads=4, capacity=1000 + 3 * batch_size, 
    min_after_dequeue=1000) 

キューランナーも起動する必要があります。これと最後のコードスニペットのマジックナンバーはthe documentation on batchingでかなりよく説明されています。