5

Ho un singolo file di dati di allenamento, circa 100.000 righe e sto eseguendo un semplice tf.train.GradientDescentOptimizer su ogni passaggio di addestramento. L'installazione è essenzialmente presa direttamente dall'esempio MNIST di Tensorflow. Codice di seguito riprodotto:Comprensione di Tensorflow 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) 

Premesso che sto leggendo i dati da un file di formazione, sto usando tf.train.string_input_producer e tf.decode_csv di leggere righe dal CSV, e poi tf.train.shuffle_batch creare batch che poi treno su.

Sono confuso su quali dovrebbero essere i miei parametri per tf.train.shuffle_batch. Ho letto la documentazione di Tensorflow, eppure non sono ancora sicuro di quali siano i valori "ottimale" batch_size, capacity e min_after_dequeue. Qualcuno può aiutare a far luce su come scelgo i valori appropriati per questi parametri o collegarmi a una risorsa in cui posso imparare di più? Thanks--

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

risposta

2

C'è un po 'sul numero di thread da utilizzare in

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

Purtroppo, non credo che ci sia una semplice rispondere alle dimensioni del lotto. La dimensione del lotto efficiente per una rete dipende da molti dettagli sulla rete. In pratica, se ti interessano le prestazioni ottimali hai bisogno di fare un sacco di tentativi ed errori (magari a partire da dai valori usati da una rete simile).