Eksperymentuję z kilkoma prostymi modelami w tensorflow, w tym jednym bardzo podobnym do pierwszego MNIST for ML Beginners example, ale o nieco większej wymiarowości. Jestem w stanie bez problemu korzystać z optymalizatora gradientu zniżania, uzyskując wystarczająco dobrą zbieżność. Kiedy próbuję użyć optymalizator ADAM, otrzymuję błędy tak:Tensorflow: Używanie optymalizatora Adama
tensorflow.python.framework.errors.FailedPreconditionError: Attempting to use uninitialized value Variable_21/Adam
[[Node: Adam_2/update_Variable_21/ApplyAdam = ApplyAdam[T=DT_FLOAT, use_locking=false, _device="/job:localhost/replica:0/task:0/cpu:0"](Variable_21, Variable_21/Adam, Variable_21/Adam_1, beta1_power_2, beta2_power_2, Adam_2/learning_rate, Adam_2/beta1, Adam_2/beta2, Adam_2/epsilon, gradients_11/add_10_grad/tuple/control_dependency_1)]]
gdzie specyficzna zmienna, która narzeka bycia niezainicjowane zmian w zależności od biegu. Co oznacza ten błąd? A co sugeruje, że jest źle? Wydaje się, że występuje niezależnie od szybkości uczenia się, której używam.
Zakładając, że chcesz zastąpić optymalizator (i inne zmienne) w środku jak mogę zainicjować to bez koszu już przeszkolonych zmienne? – dolbi
@dolbi Nie ma eleganckiej metody, ale używam metody I outline [here] (http://stackoverflow.com/a/35618160/786020). Możesz użyć 'tf.initialize_variables ([list, of, variables])' z nowymi w 'tf.all_variables()' od dodania 'AdamOptimizer' do wykresu. Muszę powiedzieć, że ta metoda nie powinna być używana w kodzie przeznaczonym do uruchamiania więcej niż jeden raz, ale działa świetnie podczas eksperymentowania. – Poik
Ta odpowiedź była poprawna, ale teraz metoda została zastąpiona przez 'tf.global_variables_initializer()' – LYu