2016-06-21 9 views
0

Я готовлю двунаправленную сеть LSTM, но когда я тренируюсь, я получил это, как показано ниже:ОТСУТСТВИЕ сходимости в двунаправленной-LSTM из Tensorflow

" 
Iter 3456, Minibatch Loss= 10.305597, Training Accuracy= 0.25000 
Iter 3840, Minibatch Loss= 22.018646, Training Accuracy= 0.00000 
Iter 4224, Minibatch Loss= 34.245750, Training Accuracy= 0.00000 
Iter 4608, Minibatch Loss= 13.833059, Training Accuracy= 0.12500 
Iter 4992, Minibatch Loss= 19.687658, Training Accuracy= 0.00000 
" 

Даже итерация 50 0000, потери и точность почти то же самое. Моя настройка ниже:

# Parameters 
learning_rate = 0.0001 
training_iters = 20000#120000 
batch_size = tf.placeholder(dtype=tf.int32)#24,128 
display_step = 16#10 
test_num = 275#245 
keep_prob = tf.placeholder("float") #probability for dropout 
kp = 1.0 

# Network Parameters 
n_input = 240*160 #28 # MNIST data input (img shape: 28*28) 
n_steps = 16 #28 # timesteps 
n_hidden = 500 # hidden layer num of features 
n_classes = 20 

Это проблема технологий или схем?

ответ

2

Первое, что я попробую, - это изменение скорости обучения, чтобы увидеть, можете ли вы потерять убытки. Также может быть полезно сравнить точность с некоторыми базовыми линиями (например, лучше, чем предсказывать наиболее частый класс в проблеме классификации).

Если ваша потеря вообще не снижается для широкого диапазона учебных курсов, я бы начал искать ошибки в коде (например, это тренировочный оператор, который фактически обновляет весы, выполняет функции и сопоставляет метки, - ваши данные рандомизированы должным образом, ...).

Если проблема с техникой (двунаправленная LSTM) зависит от того, какую задачу вы пытаетесь выполнить. Если вы действительно применяете это к MNIST (на основе комментария в вашем коде), я бы предпочел рекомендовать некоторые сверточные и maxpooling слои, чем RNN.

 Смежные вопросы

  • Нет связанных вопросов^_^