동기 부여 : GPU의 메모리 용량을 압도하기 위해 많은 수의 레이어를 모을 수있는 시나리오를 상상하기 쉽습니다.TensorFlow : 레이어 활성화 저장소 지정
이 문제에 대한 잠재적 인 해결책은 레이어 간의 역방향 계산 기능을 활용하는 것입니다. 나는. backprop 동안 다시 조금씩 '패션 : 레이어 j
'여기
당신이 단순히 메모리와 컴퓨팅 활성화의 최종 같은 계층 활성화를 저장할 수의 출력은 다음 층의 출력의 함수이다 '.
문제 : 나는 TensorFlow에서 수동 메모리 관리에 익숙 해요 하나의 메모리에 유지해야하고 어떤을 폐기 될 수 TensorFlow 어떤 변수 지정에 대한 이동하는 방법에 대한 정보를 찾을 수 없어.
구현의 다른 측면은 사용자 지정 그라데이션 계산을 지정하는 것입니다. 이것은 내가 충분히 잘 문서화되어 있으며 달성 가능해야한다고 생각합니다. 그러나 누군가가 이와 관련하여주의해야 할 점이 있다면, 나는 그것을 듣고 감사하게 생각합니다.
매우 잘 대답했습니다. 매우 감사! –
마지막 두 그래프는'a2'가'a1'의 활성화로 계산되지만, w.r.t. 내 질문에 그것은 a3에서'a2 = f (a3)'로 계산되어야한다. –
아, 무슨 뜻인지 알 겠어, 당신은 당신의 레이어가 뒤집을 수 있다고 말하면서, 당신은 실제로 그것들을 거꾸로 계산할 수 있습니까? 그렇다면 예를 들어, a2 = f (a3)와 같은 일을하기 위해 배선을 추가해야 할 것입니다. ReluGrad는 표준 예제로 입력 대신 출력에서 ReLU의 그래디언트를 계산할 수 있습니다. 가장 집중적 인 부분은 어려울 것 같습니다. matmul 및 convolution 레이어가 거꾸로가는 경우에는 역행렬이 필요합니다. –