2016-11-10 2 views
0

컨벌루션 레이어의 필터를 검사하고 싶습니다. 이렇게하려면 세션의 마지막 단계에서 변수를 가져 오려고합니다. 내가 연산을 적용 할 경우, I 오류없이 결과 텐서를 가져올 수 있습니다,세션의 그래프에서 변수를 가져 오는 방법은 무엇입니까?

Fetch argument <tensorflow.python.ops.variables.Variable object at 0x137890710> cannot be interpreted as a Tensor. (Tensor Tensor("conv1_w:0", shape=(5, 5, 1, 16), dtype=float32_ref) is not an element of this graph.) 

그러나 다음과 같은 예외를 얻을

graph = tf.Graph() 
with graph.as_default(): 

    # Placeholders 
    ... 

    # Variables. 
    conv1_w = tf.Variable(..., name='conv1_w') 
    ... 

    optimizer = ... 
    accuracy = ... 

with tf.Session(graph=graph) as session: 
    ... 
    acc, c1 = session.run([accuracy, conv1_w], feed_dict=feed_test) 

: 여기

단순화 내 모델의 버전입니다 :

c1_op = tf.mul(conv1_w,1.0) 
    optimizer = ... 
    accuracy = ... 

Tensorflow는 변수를 가져올 수 있습니까?

+0

그것은 안 acc, conv_val = session.run ([정확도, conv1_w], feed_dict = feed_test) – Steven

+0

오타되었습니다. 나는 질문을 편집했다 – znat

답변

0

이 변수 이름과 "이름"매개 변수가

을 제외하고 그것이 실제로 계산 그래프에 전혀 사용되지 않는 것처럼 보인다에서 모두 conv1_w 것을 다소 혼란 스러울 수 있습니다. 데이터를 통해 푸시되거나 사용되지 않는 데이터가 없음을 의미합니다.

빠른 간단한 예 :

import tensorflow as tf 
sess = tf.InteractiveSession() 

conv1 = tf.Variable(1) 

sess.run(tf.initialize_all_variables()) 
sess.run(conv1) 

보조 노트로 1

입니다

결과 : 대신 tf.Variable()의() tf.get_variable 사용하는 것이 좋습니다

+0

안녕하세요, 전 동일한 결과로 대화 형 세션을 사용하여 시도했습니다. 반환 된 변수의 수와 비교하여 가져온 텐서 수에 관한 내 질문에 오타가있었습니다. – znat

+0

코드를 추가하거나 링크 할 수 있습니까? 그렇지 않으면 빠른 예제처럼 작동합니다. 이 경우 Session은 InteractiveSession과 다르지 않습니다. – Steven

관련 문제