알쓸신잡

    우분투 에어팟 연결 에러 해결

    우분투에서 에어팟 연결할 때 말썽인 경우가 많은데 아래와 같이 따라하면 간단하게 해결할 수 있다.$ sudo vim /etc/bluetooth/main.conf을 통해 파일수정을 들어가면,위와 같이 뜰 텐데, vim의 검색기능을 통해 /ControllerMode 로 찾으면,위 캡쳐화면처럼 ControllerMode 를 설정할 수 있는 라인을 발견할 수 있다.원래는# ControllerMode = dual로 아마 되어있을텐데, 이를 위의 사진과 같이 bredr로 바꿔주면 된다.:wq를 통해 저장하고나서$ sudo /etc/init.d/bluetooth restart로 바뀐 설정으로 재시작을 해주고 나면 에어팟 연결이 정상적으로 될 것이다.

    Ubuntu에서 Filezilla3 설치

    파일질라 공식사이트에서 tar.xz 파일 받고 압축해제하면 bin파일로 실행하는 방식인데, 바이너리 파일이 에러 뜰 때가 많길래 그냥 터미널 커맨드로 앱을 받는 게 더 편하고 안정성이 높은 것 같다. 아래와 같이 설치가능.$ sudo apt update$ sudo apt upgrade$ sudo add-apt-repository ppa:xtradeb/apps$ sudo apt update$ sudo apt install filezilla

    dlopen(): error loading libfuse.so.2 에러 해결

    리눅스의 경우 AppImage 형태의 프로그램을 실행하기 위해서는 fuse2 라는 라이브러리가 필요하다.따라서, 위와 같이dlopen(): error loading libfuse.so.2라는 에러가 뜨는 경우에는 fuse2 라이브러리를 설치해주기만 하면 된다. $ sudo apt install libfuse2

    MeshLab 설치 및 에러 해결

    SuGaR로 돌려본 결과를 rendering 하려고 여러 툴을 찾아보다가 교수님께서 MeshLab을 추천해주셨다.Install 방법을 구글링해봤는데 처음 찾았던 게$ sudo apt update$ sudo apt install meshlab이거였고, 정상적으로 MeshLab 설치는 되었다.하지만 import Mesh 를 해보니 계속 .obj 파일이 열리다말고 프로그램이 꺼졌다.나의 경우 Ubuntu 22.04를 쓰고 있는데 22.04 에서는 이런 문제가 생길 수 있다고 해서 다른 방법으로 install을 진행해보니 정상적으로 작동이 됐다.MeshLab 홈페이지에서 Linux AppImage를 눌러 설치를 받고,$ chmod a+x MeshLab2023.12-linux.AppImage$ ./MeshLab2..

    두 개의 dataloader에서 에서 tqdm 쓰는 법

    tqdm을 사용하기 위해선 tqdm의 인자로 들어오는 게 __len__ 메소드를 가져야 한다. 따라서, tqdm안에 아래와 같이for i, data in tqdm(enumerate(zip(train_dataloader1, train_dataloader2)))이렇게 쓰면 안되고,__len__을 가지는 train_dataloader1이나 train_dataloader2 중 하나를 tqdm으로 감싼다.(어차피 둘의 크기는 같을 것이므로)for i, data in enumerate(zip(tqdm(train_dataloader1), train_dataloader2)):이렇게 해주면 정상적으로 작동한다.

    학습 시 두 개 이상의 데이터셋에서 batch 뽑아내는 법

    종종 model의 input으로 두 개의 데이터가 들어갈 때가 있다.따라서, dataloader도 각각 따로 필요할 수가 있고, 그로 인해 enumerate 함수의 인자를 어떻게 전달해야 할 지 헷갈릴 때가 있다. 그럴 때는 다음과 같이 enumerate안에 zip으로 두 dataloader를 묶어서 사용해보자. model.train() for epoch in range(num_epoch): print('EPOCH {}:'.format(epoch + 1)) training_loss = 0.0 for i, data in enumerate(zip(train_dataloader1, train_dataloader2)): # get the inp..