У меня есть один файл с данными обучения, около 100 тыс. Строк, и я использую простой tf.train.GradientDescentOptimizer
на каждом этапе обучения. Настройка по существу взята непосредственно из примера MNIST Tensorflow. Код воспроизведен ниже:
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)
Учитывая, что я читаю данные обучения из файла, я использую tf.train.string_input_producer
и tf.decode_csv
для чтения строк из CSV, а затем tf.train.shuffle_batch
для создания пакетов, на которых я затем тренируюсь.
Я не понимаю, какими должны быть мои параметры для tf.train.shuffle_batch
. Я прочитал документацию Tensorflow, но все еще не уверен, каковы «оптимальные» значения batch_size, capacity и min_after_dequeue. Может ли кто-нибудь помочь пролить свет на то, как я подхожу к выбору правильных значений для этих параметров, или связать меня с ресурсом, где я могу узнать больше? Спасибо--
Вот ссылка на API: https: //www.tensorflow. org / versions / r0.9 / api_docs / python / io_ops.html # shuffle_batch
1 ответ
Немного о количестве потоков, используемых в
https://www.tensorflow.org/versions/r0.9/how_tos/reading_data/index.html#batching
К сожалению, я не думаю, что есть простой ответ на размер партии. Эффективный размер пакета для сети зависит от множества деталей о сети. На практике, если вы заботитесь об оптимальной производительности, вам нужно будет провести кучу проб и ошибок (возможно, начиная со значений, используемых в аналогичной сети).
Похожие вопросы
Новые вопросы
machine-learning
Вопросы реализации алгоритмов машинного обучения. Общие вопросы о машинном обучении (концепции, теория, методология, терминология и т. д.) следует задавать в соответствующих сообществах.