2016-11-13 10 views
0

私は既に1 image (RGB)を入力データとして受け取ってクラスを予測するネットワークを持っています。しかし今、入力データとしてilsvrc2012データセットを使用したいと思います。 pythonとcaffeを使用してネットワークの入力データとして複数のイメージを読み込むにはどうすればよいですか?pythonとcaffeを使用してネットワークの入力データとして複数の画像を読み込むにはどうすればよいですか?

今のところ、私はこのコードを使用しています1枚の入力画像について:

# Load the image in the data layer 
im = caffe.io.load_image(IMAGE_FILE) 

net.blobs['data'].data[...] = transformer.preprocess('data', im) # perform the preprocessing we've set up 

# Compute forward 
out = net.forward() 

私のモデルは次のように定義されます

name: "CaffeNet" 
layer { 
    name: "data" 
    type: "Input" 
    top: "data" 
    input_param { shape: { dim: 1 dim: 3 dim: 227 dim: 227 } } 
} 

と私の最後の層がある:

layer { 
    name: "prob" 
    type: "Softmax" 
    bottom: "fc8" 
    top: "prob" 
} 

答えて

1

ilsvrc2012の入力レイヤーを得るための無数の場所があります。 $ CAFFE_ROOT/models/bvlc_alexnet/train_val.prototxt - そのファイルの最上部にあるデータレイヤーは、必要なものにする必要があります。

基本的な「トリック」形状属性の最初の次元がバッチサイズ、あなたが各反復で処理する画像の数であることを実現することです。例えば、

shape { 
    dim: 256 
    dim: 3 
    dim: 227 
    dim: 227 
} 

は同じ入力を表しますが、一度に256個の画像を受け入れて処理します。

関連する問題