나는 tensorflow를 사용하여 CNN 기반 텍스트 분류를 작성하고 있습니다. 일부 데이터 세트는 크고 일부 데이터 세트는 작습니다.Tensorflow out of memory
저는 feed_dict를 사용하여 시스템 메모리 (GPU 메모리 아님)에서 데이터를 샘플링하여 네트워크에 공급합니다. 네트워크는 배치별로 훈련 된 배치입니다. 배치 크기는 모든 데이터 세트에 대해 고정 된 1024입니다.
내 질문 : 네트워크는 일괄 처리로 훈련되며 각 일괄 처리 코드는 시스템 메모리에서 데이터를 검색합니다. 따라서 데이터 세트의 크기가 아무리 크다해도 코드가이를 동일하게 처리해야합니다. 맞습니까?
하지만 큰 데이터 세트로 인해 메모리 문제가 발생했으며 작은 데이터 세트에서는 문제가 없습니다. 나는 시스템 메모리가 모든 데이터를 보유하기에 충분하다는 것을 확신한다. 그래서 OOM 문제는 텐서 흐름에 관한 문제입니다.
내 코드를 잘못 작성했거나 tensorflow의 메모리 관리에 관한 것입니까?
고맙습니다.
메모리는 각 .run' 호출 (변수 제외) 이후에 릴리스되어야하므로 더 많은 실행 호출을 실행해도 메모리 사용이 증가하지 않아야합니다. –
네, 그게 내가 이해하는 것입니다. 이것에 대한 메모리 사용을 검사 할 수있는 좋은 방법이 있습니까? 감사합니다 – xyd
메모리 할당 [메시지] (https://github.com/tensorflow/tensorflow/commit/ec1403e7dc2b919531e527d36d28659f60621c9e)를 볼 수 있습니다 ([자세한 로깅 필요] (http://stackoverflow.com/a/36505898/419116)) –