2016-10-10 4 views
0

私のデータセットは5〜180秒のオーディオセグメントで構成されています。例の数は、ディスクから何度も何度も読み込むのではなく、メモリにキャッシュするのに十分小さいものです。定数テンソル/変数にデータを格納し、tf.train.slice_input_producerを使用すると、データセットをメモリにキャッシュできますが、すべてのデータを1つのマトリックスに格納する必要があります。いくつかの例は他よりもはるかに長いので、この行列は不必要に大きく、おそらくRAMにとって大きすぎるかもしれません。可変長の例によるデータセットのキャッシュ

私は単純に私のデータのためにnumpy配列のリストを持つことができ、feed_dictで非テンフォローフローの方法で入力全体を読み込みランダム化処理することができますが、完全に行わない方法があるかと思います入力読み込み - ランダム化 - 前処理部のテンソルフローをあきらめます。

ありがとうございます!

+0

'queue.dequeue_many(length_of_audio) 'の使用についてはどうですか? –

+0

どういう意味ですか? – cruvadom

+1

行列の代わりにキューにあなたの例をロードしてから、 'queue.dequeue_many'を使ってそれらをさまざまな長さのテンソルにロードしてください。 –

答えて

1

より最近のtf.dataライブラリは、データセット全体をメモリまたはファイルにキャッシュする方法を提供します(tf.data.Dataset.cache)。例えば

:私はthis answercache()を使用する方法の詳細を提供してきました

dataset = ... 
dataset = dataset.map(preprocessing_fn) # apply preprocessing 
dataset = dataset.cache() # cache entire dataset in memory after preprocessing 

関連する問題