5

Mam jeden plik danych treningowych, około 100 tysięcy wierszy, a na każdym etapie treningu prowadzę prosty numer tf.train.GradientDescentOptimizer. Konfiguracja jest zasadniczo pobierana bezpośrednio z przykładu MNIST Tensorflowa. Kod przedstawiony poniżej:Tensorflow understanding tf.train.shuffle_batch

x = tf.placeholder(tf.float32, [None, 21]) 
W = tf.Variable(tf.zeros([21, 2])) 
b = tf.Variable(tf.zeros([2])) 
y = tf.nn.softmax(tf.matmul(x, W) + b) 

y_ = tf.placeholder(tf.float32, [None, 2]) 
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) 
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) 

Zważywszy, że czytam dane szkolenie z pliku, używam tf.train.string_input_producer i tf.decode_csv czytać wiersze z pliku CSV, a następnie tf.train.shuffle_batch do tworzenia partii, że wtedy pociągu na.

Jestem zdezorientowany co do moich parametrów dla tf.train.shuffle_batch. Przeczytałem dokumentację Tensorflow, ale nadal nie jestem pewien, jakie są "optymalne" wartości batch_size, capacity i min_after_dequeue. Czy ktokolwiek może pomóc rzucić trochę światła na to, jak idę na temat wyboru właściwych wartości dla tych parametrów, lub połączyć mnie z zasobem, gdzie mogę dowiedzieć się więcej? Thanks--

Oto link API: https://www.tensorflow.org/versions/r0.9/api_docs/python/io_ops.html#shuffle_batch

Odpowiedz

2

Jest trochę o liczbie wątków w użyciu w

https://www.tensorflow.org/versions/r0.9/how_tos/reading_data/index.html#batching

Niestety, nie sądzę, nie jest proste odpowiedź dla wielkości partii. Wydajny rozmiar partii dla sieci zależy od wielu szczegółów dotyczących sieci. W praktyce, jeśli zależy Ci na optymalnej wydajności, musisz wykonać kilka prób i błędów (być może zaczynając od z wartości używanych przez podobną sieć).

Powiązane problemy