2016-11-15 4 views
1

После MNIST для ML начинающих TensorFlow, мы узнаем самый основной СГД со скоростью 0,5, размером пакета 100 и 1000 шагов, как этогоЧто такое эквивалент CNTK простого SGD на TensorFlow?

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)` 
... 
for i in range(1000): 
    batch_xs, batch_ys = mnist.train.next_batch(100) 
    sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

В CNTK, обучаемых интуитивный эквивалент

SGD = { 
    minibatchSize = 100 
    maxEpochs = 1000 
    learningRatesPerMB = 0.5 
} 

похоже, что он делает больше вычислений, по крайней мере, это, безусловно, более многословно.

Там совсем другая концепция minibatch и эпох в CNTK от того, что я могу видеть, также, как оно относится к скорости обучения.

Каким будет прямой эквивалент (или максимально возможный) основного SGD в TensorFlow? Как каждая концепция переводится между каждой структурой?

ответ

1

Похоже TensorFlow и CNTK имеют такое же определение для мини-партии:

'Minibatch size' in CNTK means the number of samples processed between model updates 

эпоха является CNTK является simialr к шагу в TensorFlow, т.е. сколько сессия проходит на поезде цит.

maxEpochs: maximum number of epochs to run. 

learningRatesPerMB немного различно:

this will be converted into learningRatesPerSample by dividing the values by the specified 'minibatchSize' 

learningRatesPerSample аналогична скорости обучения TensorFlow в.

Документация CNTK о SGD: https://github.com/Microsoft/CNTK/wiki/SGD-Block