반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ChatGPT
- tensorflow
- 딥러닝
- ros
- 오블완
- TTS
- pytorch
- 맛집
- timm
- openAI
- 티스토리챌린지
- linux
- humble
- opencv
- 스팸
- string
- Android
- 판교
- ROS2
- CLASS
- 터미널
- 분당맛집
- no space left on device
- ubuntu
- error
- python
- socketio
- Torch
- CUDA
- GPT
Archives
- Today
- Total
RoBoLoG
[Error] tensorflow_cpu_aws cannot allocate memory in static TLS block (mediapipe, ros, tensorflow 사용시) 본문
Error Solution/Tensorflow
[Error] tensorflow_cpu_aws cannot allocate memory in static TLS block (mediapipe, ros, tensorflow 사용시)
SKJun 2024. 3. 13. 18:41
tensorflow_cpu_aws cannot allocate memory in static TLS block
이 문제는 Mediapipe, ROS, 그리고 TensorFlow를 동시에 사용할 때 발생할 수 있는 메모리 할당 문제로 보입니다. 특히, TensorFlow가 CPU 버전에서 static TLS (Thread Local Storage) 블록에 메모리를 할당하는 과정에서 발생할 수 있습니다. 저의 경우 엣지 디바이스에서 실행하므로 tensorflow를 설치하면 tensorflow-cpu-aws가 설치되었습니다.
더보기
TensorFlow 2.10 부터 Aarch64/ARM64 프로세서용 Linux CPU 빌드는 제3자( AWS) 에 의해 구축, 유지 관리, 테스트 및 출시됩니다. ARM 시스템에 tensorflow 패키지를 설치하면 AWS의 tensorflow-cpu-aws 패키지가 설치됩니다.
해결책은 두 가지 방향으로 접근합니다:
1. 호환되는 라이브러리 버전 설치
- 라이브러리 간의 호환 문제를 해결하기 위해 특정 버전의 라이브러리를 설치하는 것이 좋습니다. 이 경우, opencv-contrib-python==4.5.5.64, mediapipe==0.10.3, tensorflow==2.10.0 버전이 ROS Noetic과 호환되는 것으로 확인되었습니다. 이러한 버전의 조합은 서로 호환되어 메모리 할당 문제를 방지할 수 있습니다.
설치 명령어
pip install opencv-contrib-python==4.5.5.64 mediapipe==0.10.3 tensorflow==2.10.0
2. 코드 내에서 라이브러리 import 순서 조정
- Python 코드에서 라이브러리를 import하는 순서가 중요한 경우가 있습니다. 이 문제에서는 cv_bridge를 mediapipe보다 먼저 import하면 메모리 할당 에러가 발생할 수 있습니다. 따라서, import cv_bridge 명령어를 import mediapipe 명령어 아래에 위치시켜 순서를 조정해야 합니다. 이 방식으로 순서를 조정함으로써, TensorFlow와 관련된 메모리 할당 문제를 방지할 수 있습니다.
올바른 import 순서 예시
import mediapipe as mp
import cv_bridge
이러한 해결 방법은 서로 다른 라이브러리들 사이의 복잡한 상호작용을 관리하는 한 가지 방법을 제시합니다. 호환되는 버전의 라이브러리를 사용하고, 코드 내에서 라이브러리를 import하는 순서에 주의를 기울임으로써, 여러 라이브러리를 함께 사용할 때 발생할 수 있는 문제를 최소화할 수 있습니다.
728x90
반응형