2016-08-15 19 views

Odpowiedz

3

Można wybrać nazwy węzłów w modelu, przekazując opcjonalny argument name="myname" niemal każdemu operatorowi Tensorflow, który tworzy węzeł. Tensorflow automatycznie wybierze nazwy węzłów grafów, jeśli ich nie określisz, ale jeśli chcesz zidentyfikować te węzły do ​​narzędzia takiego jak freeze_graph.py, najlepiej wybrać te nazwy samemu. Te nazwy są tym, co przekazujesz do output_node_names.

+0

Dzięki, myślę, że mam podstawową koncepcję teraz, ale wciąż zmagam się z modelem_with_buckets ... Mam 4 wiadra i każdy ma RNN, następnie embedding_attention_decoder i następnie sequence_loss, z których każda składa się z kilku komórek, i Mogę podać im wszystkie imiona. Ale nie widzę jednego węzła wyjściowego, który można przekazać do "output_node_names". Czy muszę dodać jak ostatni węzeł w kodzie seq2seq.py? I czy mam jeden węzeł wyjściowy dla "output_node_names" lub cztery? – WS91

+0

Które z węzłów do przejścia zależy od tego, co chcesz obliczyć. Na przykład dla wykresu zależności zwykle używa się tylko jednego węzła reprezentującego dane wyjściowe modelu. Zasadniczo --- powinieneś użyć węzła, który chciałbyś przekazać do session.run() podczas działania twojego wykresu. (Nie musisz nazywać wszystkiego na wykresie, tylko jeden lub dwa węzły, których wartości chcesz znać.) –

+0

Nie jest jeszcze jasne, jak zamrozić ten konkretny wykres seq2seq. –

1

można uzyskać wszystkie nazwy węzłów w modelu z czymś takim:

node_names = [node.name for node in tf.get_default_graph.as_graph_def().node] 

Albo z przywracania wykresu:

saver = tf.train.import_meta_graph(/path/to/meta/graph) 
sess = tf.Session() 
saver.resore(sess, /path/to/checkpoints) 
graph = sess.graph 
print([node.name for node in graph.as_graph_def().node]) 

może zaistnieć potrzeba filtrować je dostać tylko Węzły wyjściowe lub tylko te węzły, które chcesz, ale to może przynajmniej pomóc ci uzyskać nazwy wykresu, który już wyszkoliłeś i nie możesz pozwolić sobie na przekwalifikowanie z name='some_name' zdefiniowanym dla każdego węzła.

Najlepiej, jeśli chcesz zdefiniować parametr name dla każdej operacji lub tensora, do których chcesz później uzyskać dostęp.

+1

W porządku, w modelu seq2seq są tysiące im. I zależą od wiaderek. –

+0

to daje każdą nazwę węzła na wykresie, niekoniecznie wynik. – rambossa

Powiązane problemy