tf.Session ()과 tf.InteractiveSession ()의 차이점은 무엇입니까?
하는 경우가해야 tf.Session()
하고는 tf.InteractiveSession()
어떤 목적을 위해 고려되어야?
이전 기능을 사용하려고했을 때 일부 기능 (예 .eval()
:)이 작동하지 않았고 나중 기능으로 변경하면 작동했습니다.
주로 공식 문서 에서 발췌 :
일반 세션과의 유일한 차이점은 InteractiveSession이 구성시 기본 세션으로 설치된다는 것입니다. Tensor.eval () 및 Operation.run () 메서드는 해당 세션을 사용하여 작업을 실행합니다.
이렇게하면 op를 실행하기 위해 명시적인 Session 개체를 전달하지 않아도되므로 쉘과 같은 대화 형 컨텍스트를 사용할 수 있습니다.
sess = tf.InteractiveSession()
a = tf.constant(5.0)
b = tf.constant(6.0)
c = a * b
# We can just use 'c.eval()' without passing 'sess'
print(c.eval())
sess.close()
또한 InteractiveSession
세션 개체를 지속적으로 참조 할 필요없이 변수를 실행할 수 있으므로 타이핑을 덜 지원 한다고 말할 수도 있습니다 .
유일한 차이점 Session
과는 InteractiveSession
즉 InteractiveSession
자신에게 만드는 기본 세션을 호출 할 수 있도록 run()
또는 eval()
명시 적으로 세션을 호출하지 않고.
이는 작업을 실행하기 위해 명시적인 Session 객체를 전달할 필요가 없기 때문에 Python 셸 또는 Jupyter 노트북에서 TF로 실험하는 경우 유용 할 수 있습니다.
공식 문서에 따라 기본 세션으로 자체 설치 하는 것 외에, 메모리 사용에 대한 일부 테스트에서 대화 형 세션은 gpu_options.allow_growth = True 옵션을 사용하는 것으로 보입니다-[using_gpu # allowing_gpu_memory_growth] 참조-tf.Session () 기본값은 전체 GPU 메모리를 할당합니다.
위에서 언급 한 차이점보다-가장 중요한 차이점은 session.run()
여러 텐서의 값을 한 번에 가져올 수 있다는 것입니다.
예를 들면 :
num1 = tf.constant(5)
num2 = tf.constant(10)
num3 = tf.multiply(num1,num2)
model = tf.global_variables_initializer()
session = tf.Session()
session.run(model)
print(session.run([num2, num1, num3]))
'Development Tip' 카테고리의 다른 글
C ++ : 두 벡터 비교 (0) | 2020.11.08 |
---|---|
git add --all 실행 취소 (0) | 2020.11.08 |
bin과 gac 모두에있는 DLL, 어느 것이 사용됩니까? (0) | 2020.11.08 |
그렇다면“from __future__ import barry_as_FLUFL”은 정확히 무엇을합니까? (0) | 2020.11.08 |
교차 도메인 iframe의 DOM 콘텐츠 가져 오기 (0) | 2020.11.08 |