본문 바로가기

분류 전체보기

(113)
AttributeError: module 'numpy' has no attribute 'float' 오류 시간이 흐름에 따라, 22.04로 우분투로 변경을 하게 되면서 18.04에서 사용하던 여러 패키지들을 업데이트할 수 밖에 없었다. cuda cudnn등등.. 무튼 내 설치환경에서는 numpy에서 1.24로 설치가 되었는데, 이때 numpy.float numpy.int가 이제 삭제되어서 생긴 오류였다. numpy를 1.24 버젼보다 아래로 설치하면 해결된다. sudo python3 -m pip install numpy==1.23
onnx 설치시, protobuf requires python >=3.7 but the running python is 3.6.9 나는 onnx==1.8.0을 설치하려고 했는데, 3.7에서 돌리랜다 간단하게 protobuf를 설치해서 해결하였다. sudo apt-get install libprotobuf-dev protobuf-compiler 후에 다시 설치 sudo python3 -m pip install onnx==1.8.0 성공
spdlogger python 포멧 변경하기 spd logger를 사용할 때, 원하지 않는 메세지들이 같이 나올 때가 있다. 나 같은 경우에는 여러 제품들을 사용하다보니, 자체 OS에서 받아오는 시간이 중국이라던가 미국일 때가 있었다. 한국 시간으로 설정을 하고 싶어서 직접 로그를 남기려는 데, 디폴트값으로 나오길래 이 부분을 해결할 필요가 있었다. 언제까지 중국시간 + 1 이런 식으로 기록을 할 순 없으니... 그래서 pytz.timezone('Aisa/Seoul')을 datetime.datetime.now( 여기 안에 넣고) current korea time을 구한 뒤, 직접 spdlogger에 입력했다. 불필요한 메세지들은 spdlogger를 생성한 뒤, custom format의 패턴을 변경해주면 된다. 기존에 출력되던 시간등은 모두 버리고..
[ENAS만판다] Python MultiProcessing Error : TypeError: 'Synchronized' object is not iterable import multiprocessing as mp def target_def(value): print(value) if __name__ == '__main__' : mp.set_start_method('spawn') mp_value = mp.Value('i',1) process = mp.Process(target=target_def, args=(mp_value)) process.start() process.join() 이렇게 짜면 오류난다. 별거 없다. args=(mp_value)가 아니라 args=(mp_value,) 로 해줘야한다. 단순 콤마 하나 떄문에 생기는 문제
[ENAS만판다] 멀티프로세싱 self._semlock = _multiprocessing.SemLock._rebuild(*state) 오류 File "", line 1, in File "/usr/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main exitcode = _main(fd, parent_sentinel) File "/usr/lib/python3.8/multiprocessing/spawn.py", line 126, in _main self = reduction.pickle.load(from_parent) File "/usr/lib/python3.8/multiprocessing/synchronize.py", line 110, in __setstate__ self._semlock = _multiprocessing.SemLock._rebuild(*state) 이런 에러가 발생..
[ENAS만판다] Python3 MultiProcessing 예제 간단하게 가이드 코드만 작성해서 보여주려고 함 import multiprocessing as mp def method1(): // 돌리려는 함수 1 return def method2(): // 돌리려는 함수 2 return if __name__ == '__main__': mp.set_start_method('spawn') mp1 = mp.Process(target = method1, args = ()) mp2 = mp.Process(target = method2, args = ()) mp1.start() mp2.start() 만일 변수를 공유시키고 싶으면 이렇게 하면 된다. multiprocessing의 Value 를 활용하여 하겠다. Array로 하고 싶은 사람들은 다른 레퍼런스를 찾아서 구현하면 된다..
RuntimeError: cuda runtime error (3) : initialization error at ../aten/src/THC/THCGeneral.cpp:54 에러 해결 에러 내용 ~~~~, torch._C._cuda_init() RuntimeError: cuda runtime error (3) : initialization error at ../aten/src/THC/THCGeneral.cpp:54 python3.8에서 multiprocessing을 활용해서 할 경우, 이런 에러가 생긴다. 이럴 경우, if __name__ == '__main__' : 문 안에 multiprocessing.set_start_method('spawn') 코드를 넣어주면 된다.
[ENAS만판다] [Jetson NANO] Systemctl시, Illegal Instruction 오류 이게 참 원인 밝히기 어렵긴 한데, 나 같은 경우에는 opencv로 카메라 캡쳐만 해도 오류가 난다는 것을 확인하였다. 그래서 왜인지 모르겠으나, numpy가 1.19.5에서 오류가 난다는 것을 언젠가 들었던 것이 기억이 나서 1.19.4로 변경하여 해결하였다. sudo python3 -m pip install numpy==1.19.4