딥러닝 모델 학습 중 libpng error: IDAT: CRC error 해당 에러가 발생 한 후 cv2.imread에서 이미지를 읽지 못해 AttributeError: 'NoneType' object has no attribute 'ndim' 해당 에러까지 발생하며 학습 중단 되었다. 에러 발생 원인1. libpng error: IDAT: CRC errorcv2.imread()가 PNG 파일을 디코딩 실패했을 때 발생하는 에러파일이 깨졌거나, 디스크 일시 오류, 또는 I/O race로 인해 발생 가능But, PNG 파일이 손상되지 않았음은 cv2.imread() 또는 PIL.Image.verify()로 이미 확인함.재시도하면 문제 없이 읽힘 → 파일 자체 문제가 아님 2. cv2.imread() → ..
정말 멍청하게도 10개월 가량 피땀눈물 흘리며 작성한 코드가 들어있는 폴더를 통째로 삭제 해 버렸다.. 그것도 실수로..!심볼릭 링크를 제거한다는 걸 경로를 잘못 입력해서 코드가 들어있는 폴더를 통째로 rm -r 명령어를 통해 날려 버렸다...자책과 절망을 할 시간이 없었다. 이 삭제한 파일들이 완전히 날아가기 전에 복구를 해야 한다만 생각으로 알고 있는 명령어를 총 동원했다. 1. extundeleteExtundelete "device name" --resotre-directory "full path of a directory"아주 예전에 빠른 시간 내에 위 명령어를 입력하면 복구가 됐었는데 난 안되었다..2. debugfs다음으로는 들어만 봤던 debugfs를 통해서 복구를 해 보려고 했으나 구글링과..
우분투에서 UI를 사용해서 파일 시스템을 열어 사용하려던 차에 루트 경로가 열리지 않았다.필요한 플러그인을 설치하면 파일 시스템 GUI를 사용해 루트 경로에 있는 파일들을 보고 사용할 수 있다. 1. 플러그인 설치sudo apt install nautilus-admin -y 2. 플러그인 재시작nautilus -q 3. 파일 시스템 관리자 경로 열기플러그인을 설치했다면 파일 시스템에서 우클릭을 하면 사진처럼 Open as Administrator가 생긴다.저걸 클릭하면 관리자 경로가 GUI로 열린다. 4. 터미널로 열기3번의 Open as Administrator가 안생길 때 터미널에서 설치한 플러그인 명령어를 사용하면 루트 경로 GUI를 열 수 있다.nautilus /nautilus 명령어를 입력하고 ..
윈도우 pc에서 ssh 연결을 통해 ubuntu 서버를 사용하면 웬만한 작업은 가능하지만 가끔 ubuntu 서버의 화면 UI가 필요할 땐 mstsc를 사용하여 ubuntu에 원격 접속을 해서 사용할 수 있다. 1. ubuntu에서 xrdp 설치 확인systemctl status xrdpubuntu에 xrdp가 설치되어 있다면 위 사진처럼 정보가 뜰 것이다.설치가 안되어 있다면 "Unit xrdp.service could not be found."라는 문구가 뜰 것이다. 이 문구가 뜬다면 xrdp를 설치 해 주면 된다. 2. ubuntu에 xrdp 설치sudo apt updatesudo apt install xrdpsudo systemctl enable --now xrdp마지막 명령어는 재부팅 시 자동으..
ubuntu에서 하드 디스크(HDD)를 마운트 하다가 superblock이 손상되어서 복구를 해야 했다.superblock을 복구하기 위해서는 대체 superblock을 확인하고 그걸로 복구한 후 재마운트 해주면 된다! 1. 대체 가능한 superblock 확인sudo dumpe2fs /dev/sda1 | grep -i superblock-> 여기서 출력된 superblock 번호로 복구를 진행하면 된다. 2. 대체 superblock으로 복구sudo fsck -b "대체 번호" /dev/sda1 3. 재 마운트이후 /etc/fstab 에서 변경 된 UUID로 수정 해 준 후 저장 해 주면 된다.sudo mount -t ext4 /dev/sdb1 /mnt/HARDsudo mount -a 4. 확인..
1. 디스크 확인sudo fdisk -l물리적으로 연결된 하드디스크가 제대로 인식이 되고 있는지, 경로는 어디인지 확인부터 해야 한다.제대로 하드디스크가 인식이 된다면 위처럼 /dev/sdb 또는 /dev/sda 경로로 용량과 같이 뜬다. 2. 파티션 생성ubuntu는 파일 시스템 상 4TB 이상의 디스크를 한번에 마운트 할 수 없어 정상적으로 마운트하려면 조금 다른 과정을 거쳐야 한다.sudo parted /dev/sdb이렇게 하면 (parted)가 생기게 되면서 파티션 초기화를 할 수 있는 환경이 된다.mklabel gptunit TBmkpart primary 0.00TB 8.00TBprint순서대로 명령어들을 입력 해 준 후 print를 하면 파티션 정보를 확인할 수 있다."q"를 입력해서 par..
종종 도커 컨테이너에서 작업을 한 결과물을 다른 서버로 옮길 때 scp를 사용하는데 scp: Permission denied를 마주할 때가 있다.. 도커 컨테이너 내에서 생성된 폴더 및 파일들이 전부 root 계정에서 생성 되었기 때문에 생기는 문제로 두 가지 방법으로 해결할 수 있다. 1. 권한 부여먼저 이동하고자 하는 폴더 및 파일의 권한을 확인 후 쓰기 권한이 없다면 부여 해 주면 된다.r은 읽기 권한, w는 쓰기, x는 실행 권한으로 옮기고자 하는 대상에 w 권한이 없다면 부여 해 줘야 한다.sudo chmod 777 "target file" 2. 소유자 변경권한을 부여했는데도 동일한 에러가 발생한다면 소유자를 변경 해 줘야 한다.root 계정에서 생성한 파일을 user 계정으로 scp를 통해 ..
conda가 설치 되어 있는 pytorch docker image로 컨테이너를 생성했는데 conda activate 명령어로 가상환경이 활성화가 안되는 문제를 마주했다. 시키는대로 shell을 닫고 재시작 후 conda init bash를 했는데 별 다른 변화가 없었다. 찾아보니 conda가 설치된 경로에 있는 파일로 직접 가상환경을 활성화 해 주면 conda activate로도 활성화를 할 수 있다고 한다.위 사진에서 conda 가상환경 실행 스크립트의 경로는여기이다. source /opt/conda/etc/profile.d/conda.sh이렇게 직접 가상환경을 활성화 해 주고 나면 conda activate 명령어로 가상환경이 활성화 된다.
특정 폴더 내에 있던 모든 파일들의 이름을 한번에 수정을 해야 했는데 코드를 짜서 실행 시키려니 더 좋은 방법이 없을까 알아보다가 rename 명령어를 알게 되었다.# ubunturename 's/old_string//g' *.txt # old_string을 지우는 명령어rename 's/old_string/new_string/g' *.txt # old_string 대신 new_string으로 대체하는 명령어ubuntu에서는 rename 명령어를 사용해서 터미널 상에서 현재 폴더에 있는 모든 파일들의 파일명에서 특정 문자를 삭제하거나 새로운 문자로 대체하는 등 수정할 수 있다. 윈도우에서도 동일한 작업을 하고 싶었는데 powershell에서는 rename 명령어가 먹히지 않았다.#..
회사에서도 집에서도 윈도우를 메인 pc로 사용하면서 리눅스 서버에 ssh로 붙어서 사용을 하다보니 서버에서 결과물을 화면에 표시해야 할 일이 자주 있다.리눅스 서버에서 화면에 디스플레이를 하려면 X11 forwarding 설정을 진행 해 줘야하는데 X window 기반 GUI 프로그램을 메인 pc인 윈도우에 설치하면 사용할 수 있게 된다. Xming은 X window 기반 GUI 실행 프로그램을 윈도우 pc에서 실행할 수 있도록 도와주는 프로그램으로 오픈소스라서 누구나 쉽게 설치하여 사용할 수 있다.https://sourceforge.net/projects/xming/files/latest/download위 사이트에서 다운로드 후 full installation을 선택하고아이콘 생성 여부와 확장자 파일 ..