2017-05-24 14 views

Odpowiedz

6

Variable jest zasadniczo otoki na Tensor który utrzymuje stan w wielu połączeń do run i myślę, że sprawia, że ​​pewne rzeczy łatwiej z oszczędności i wykresów przywracających. Zmienna musi zostać zainicjalizowana, zanim będzie można ją uruchomić. Podajesz wartość początkową, kiedy definiujesz zmienną, ale musisz wywołać jej funkcję inicjalizującą, aby faktycznie przypisać tę wartość w twojej sesji, a następnie użyć Zmiennej. Typowym sposobem na to jest z tf.global_variables_initalizer().

Na przykład:

import tensorflow as tf 
test_var = tf.Variable([111, 11, 1]) 
sess = tf.Session() 
sess.run(test_var) 

# Error! 

sess.run(tf.global_variables_initializer()) # initialize variables 
sess.run(test_var) 
# array([111, 11, 1], dtype=int32) 

Jak, dlaczego używasz zmiennych zamiast tensorów, w zasadzie zmiennej jest tensora z dodatkowej możliwości i użyteczności. Możesz określić zmienną jako możliwą do trenowania (domyślnie, faktycznie), co oznacza, że ​​twój optymalizator dostosuje ją, aby zminimalizować twoją funkcję kosztu; możesz określić, gdzie znajduje się Zmienna w systemie rozproszonym; możesz łatwo zapisywać i przywracać Zmienne i wykresy. Więcej informacji na temat używania zmiennych można znaleźć pod adresem here.

+1

Dzięki! To ma więcej sensu. Rzeczywiście, nie zainicjowałem zmiennych. –

Powiązane problemy