Tworzę sieci neuronowe z Tensorflow
i skflow
; z jakiegoś powodu chcę uzyskać wartości niektórych wewnętrznych tensorów dla danego wejścia, więc używam myClassifier.get_layer_value(input, "tensorName")
, myClassifier
będąc skflow.estimators.TensorFlowEstimator
.
Jednak trudno mi znaleźć poprawną składnię nazwy tensora, nawet znając jej nazwę (i mylę się między operacją a tensorami), więc używam tensorboard do wykreślenia wykresu i wyszukania nazwy.
Czy istnieje sposób na wyliczenie wszystkich tensorów na wykresie bez korzystania z tensorboard?
python
tensorflow
tensorboard
skflow
P. Camilleri
źródło
źródło
if "Variable" in n.op
Pod kątem zmiennych, dodając je na końcu rozumienia.Jest sposób, aby zrobić to trochę szybciej niż w odpowiedzi Jarosława, używając get_operations . Oto krótki przykład:
źródło
tf.get_operations()
. Tylko operacja, którą możesz uzyskać.Spróbuję podsumować odpowiedzi:
Aby uzyskać wszystkie węzły (typ
tensorflow.core.framework.node_def_pb2.NodeDef
):Aby uzyskać wszystkie operacje (wpisz
tensorflow.python.framework.ops.Operation
):Aby uzyskać wszystkie zmienne (typ
tensorflow.python.ops.resource_variable_ops.ResourceVariable
):Aby uzyskać wszystkie tensory (typ
tensorflow.python.framework.ops.Tensor
) :źródło
tf.all_variables()
może uzyskać potrzebne informacje.Ponadto to zatwierdzenie dokonane dzisiaj w TensorFlow Learn, które udostępnia funkcję
get_variable_names
w estymatorze, której można użyć do łatwego pobierania wszystkich nazw zmiennych.źródło
tf.global_variables()
all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02
Myślę, że to też wystarczy:
Ale w porównaniu z odpowiedziami Salvado i Jarosława nie wiem, która z nich jest lepsza.
źródło
Zaakceptowana odpowiedź zawiera tylko listę ciągów z nazwami. Wolę inne podejście, które daje (prawie) bezpośredni dostęp do tensorów:
list_of_tuples
zawiera teraz każdy tensor, każdy w krotce. Możesz również dostosować to, aby uzyskać tensory bezpośrednio:źródło
Ponieważ PO poprosił o listę tensorów zamiast listy operacji / węzłów, kod powinien być nieco inny:
źródło
Poprzednie odpowiedzi są dobre, chciałbym tylko udostępnić funkcję narzędzia, którą napisałem, aby wybrać Tensory z wykresu:
Więc jeśli masz wykres z opami:
Potem bieg
zwroty:
źródło
To zadziałało dla mnie:
źródło