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.
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
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ć.) –
Nie jest jeszcze jasne, jak zamrozić ten konkretny wykres seq2seq. –