복붙노트

[PYTHON] 기존의 TensorFlow 계산 그래프를 수정할 수 있습니까?

PYTHON

기존의 TensorFlow 계산 그래프를 수정할 수 있습니까?

TensorFlow 그래프는 일반적으로 입력에서 출력으로 점진적으로 구축 된 다음 실행됩니다. 파이썬 코드를 살펴보면, 입력리스트가 변경되지 않아야 함을 암시하는 연산 입력리스트가 불변하다. 기존 그래프를 업데이트 / 수정할 방법이 없다는 뜻입니까?

해결법

  1. ==============================

    1.TensorFlow tf.Graph 클래스는 추가 전용 데이터 구조입니다. 즉, 그래프의 일부를 실행 한 후에 노드를 그래프에 추가 할 수 있지만 기존 노드를 제거하거나 수정할 수는 없습니다. Session.run ()을 호출 할 때 TensorFlow는 필요한 하위 그래프 만 실행하기 때문에 그래도 그래프를 사용하면 실행 시간 비용이 들지 않습니다 (그래도 계속 메모리를 소비하지만).

    TensorFlow tf.Graph 클래스는 추가 전용 데이터 구조입니다. 즉, 그래프의 일부를 실행 한 후에 노드를 그래프에 추가 할 수 있지만 기존 노드를 제거하거나 수정할 수는 없습니다. Session.run ()을 호출 할 때 TensorFlow는 필요한 하위 그래프 만 실행하기 때문에 그래도 그래프를 사용하면 실행 시간 비용이 들지 않습니다 (그래도 계속 메모리를 소비하지만).

    그래프의 모든 노드를 제거하려면 새 그래프로 세션을 만들 수 있습니다.

    with tf.Graph().as_default():  # Create a new graph, and make it the default.
      with tf.Session() as sess:  # `sess` will use the new, currently empty, graph.
        # Build graph and execute nodes in here.
    
  2. ==============================

    2.예, tf.Graph는 @mrry가 추가하는대로 추가 전용으로 빌드됩니다.

    예, tf.Graph는 @mrry가 추가하는대로 추가 전용으로 빌드됩니다.

    하지만 해결 방법이 있습니다.

    개념적으로 기존 그래프를 복제하여 수정하고 그 과정에서 필요한 수정 작업을 수행 할 수 있습니다. r1.1부터 Tensorflow는 위의 아이디어를 편리한 기능 세트로 구현하는 tf.contrib.graph_editor라는 모듈을 제공합니다.

  3. from https://stackoverflow.com/questions/34235225/is-it-possible-to-modify-an-existing-tensorflow-computation-graph by cc-by-sa and MIT license