2017-04-13 7 views
0

私はcaffeとlmdbデータベースを使用してデータをネットワークに送ります。しかし、私はground_truthが画像でもあるので、inputとground_truthの2つの異なるlmdbを持っています。とにかくシャッフルを使うことは可能ですか?はいの場合、両方のlmdbsにparamとしてshuffle: trueを設定するだけですか?複数のtmdbを持つcaffeでシャッフル

layer { 
    name: "data" 
    type: "Data" 
    top: "data" 
    include { 
    phase: TRAIN 
    } 
    transform_param { 
    mean_value: X 
    } 
    data_param { 
    source: "..." 
    batch_size: X 
    backend: LMDB 
    } 
+0

lmdbは 'shuffle'パラメータをサポートしていますか? – lnman

+0

はい、ありますが、2つの異なるファイルを使用しています。 @Inman – thigi

+0

lmdb paramのcaffe.protoでシャッフルが見つかりませんでした。あなたはそれを指摘できますか?私はそれがhdf5にあると思った。 – lnman

答えて

1
  1. あなたはdata_paramにはシャッフルパラメータが存在しないとして、あなたがshuffleを使用することはできません"Data"層型を使用している場合。 sourceファイルがimage address and labelを持つテキストファイルである必要がありますように、データソースとしてlmdbを使用することはできません"ImageData"層型用として

  2. 。しかし、それはshuffleパラメータを持っています。 image_data_layer.cppを見ると、shuffletrueの場合、epochの画像ソースは、Fisher–Yatesalgorithmを使用してシャッフルされます。 2つの異なるImageDataレイヤーを使用すると、ShuffleImages()が呼び出され、2つのシャッフルが同じシーケンスを生成することはありません。したがって、ImageData層のいずれにもshuffleを使用することはできません。

+0

ええ、thats私が考えたもの。どうも – thigi

関連する問題