월간 데이콘 예술 작품 화가 분류 AI 경진대회

알고리즘 | 비전 | 분류 | Macro f1 score

  • moneyIcon 상금 : 인증서
  • 827명 마감

 

Private 20위, Base line 코드 + augmentation + soft voting

2022.11.17 02:34 1,404 조회 language

안녕하세요, 고양이이슈입니다.

다른 고수분들의 코드가 워낙 훌륭해서 부끄럽습니다만,
저도 초보인 입장에서
Base line 코드를 조금 더 보완한 이 코드가 누군가에게는 참고가 되었으면 좋겠습니다.

좋은 기회 제공해주셔서 감사합니다. 많은 배움이 되었습니다.

코드
로그인이 필요합니다
0 / 1000
kdy0912
2022.11.26 10:24

안녕하세요! 코드 공유 감사드립니다 제가 올려주신 코드 이용중에 run 부분에서 ----> 7 model1 = train_mixup(model, optimizer, train_loader, val_loader, scheduler, device)
NameError: name 'device' is not define
device define 에러가 나는데 이 에러는 혹시 어떻게 해결하면 될까요? 

고양이이슈
2022.11.26 13:18

안녕하세요,
해당 오류는 'device'라는 이름의 변수가 아직 선언되지 않았는데 이를 사용하려고 해서 생기는 오류로 보입니다.

이 변수는 각종 필요 모듈의 Import를 하고 있는 코드 아래에 선언되어있습니다.(두 번째 코드 셀)
즉, 다음의 코드가 실행되지 않은 것으로 보입니다.
device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')

name ~~ is not define 오류를 만나신다면 오타(선언했던 변수명 != 사용한 변수명) or 실행하지 않은 코드 셀이 있는지를 확인하면 좋습니다.
잘 해결되지 않으신다면 다시 질문해주시면 금방 답변하겠습니다.
감사합니다.

kdy0912
2022.11.26 13:23

아 답변 감사합니다! 혹시 한가지더 질문드려도 괜찮을까요? 그 imagepath 경로 삽입할 때 구글드라이브에 이미지를 올리고 이용하려니
용량을 너무 많이 차지해서요.. 혹시 어떤식으로 train,test image paht 경로 삽입 하시는지 알 수 있을까요?? 

고양이이슈
2022.11.26 13:58

안녕하세요,
구글 드라이브를 사용하신다면 혹시 코랩 환경이신지요?

구글 드라이브 기본 용량이 10~15 GB 정도로 알고 있는데, 저도 부족하다고 느껴 100GB 구매를 해서 사용했던 기억이 납니다.
제가 알고 있는 선에서는
코랩 환경일 경우 -> 잠깐 검색해보았지만 구글 드라이브 외 클라우드 데이터 서비스를 이용하기는 어려워보입니다. (필요시 구글드라이브 추가 용량을 구매해야 할 것 같습니다.)
로컬일 경우 -> 저는 로컬에서 작업했습니다. 필요한 만큼 SSD를 추가 구매해서 사용합니다.

결론적으로 저는 서버 컴퓨터가 없는 환경인데, 필요한 용량은 직접 구매해서 해결하고 있습니다.
서버 컴퓨터가 있는 환경에서 작업한 경우에도, 보통은 로컬로 가져와서 작업하는 경우가 많았습니다.

학습 컴퓨터의 메모리가 부족한 경우에는 h5py를 활용한 방법 등이 있는 것으로 알고 있습니다만
절대적인 저장 용량이 부족한 경우에는 저장 공간을 구매하는 것 외의 방법이 있을지 잘 모르겠습니다.

정말 정말 어쩔 수 없는 상황이라면
먼저 학습용 데이터를 다운로드받은 후,
전처리를 통해서 데이터 자체의 용량을 줄이는 방법을 시도할 것 같습니다.
(Ex, 이미지 -> 해상도를 줄인다)

고양이이슈
2022.11.26 16:27

다시 한번 질문을 생각해보니
혹시 질문 의도가 로컬 컴퓨터에서 작업하고 있는 것이 아니라,
코랩 등의 클라우드 기반 개발 환경에서 작업하면서, 데이터는 로컬의 데이터를 사용하고 싶으신 건가요?

작업 환경에 따라 달라지긴 하지만 클라우드 기반 개발 환경이면 비슷할 것이라고 생각되어 코랩을 예시로 설명을 드리면
구글 드라이브에 있는 파일을 로컬에 있는 것처럼 경로 지정 후 사용할 수 있는 것은
구글 코랩 라이브러리에서 제공하는 마운트 기능 덕분입니다.

단순히 경로 지정만으로 로컬에 있는 파일을 코랩에서 사용하는 방법은 제가 알기로는 없습니다.
제가 배워온 교육 자료나 강사님들 모두 이 경우에
1. 로컬에 있는 파일을 구글 드라이브에 올린 후 마운트시켜 사용
2. 로컬에 있는 파일을 임시적으로 코랩 작업물에 직접 업로드시켜 사용(이 방법은 임시적으로만 적용되고 런타임을 종료시키면 사라집니다)
위 2가지 방법을 사용했습니다.
1번 방법을 이용하려면 용량이 부족하다고 느껴지면 용량을 구매해야 하고,
2번 방법은 업로드에 시간이 걸리며, 임시적인 내용이라 런타임 중단시 사라져서(다시 업로드해야해서) 불편합니다.

로컬에 있는 파일을 직접 사용하려면 작업 또한 로컬에서 이루어져야 한다고 생각합니다.
데이터가 있는 서버 컴퓨터가 있다면 또 다른 얘기가 될 것 같습니다만,
질문자께서는 데이터는 로컬에 있는데, 작업은 다른 곳에서 하는 곳으로 보여서
다시 답변 남깁니다.

아직 명확하지 않은 부분이 있다면 다시 답변 드리겠습니다.

kdy0912
2022.11.27 14:17

자세한 댓글 너무 감사합니다! 네 1번 방법으로 작업하려해 결국 구글 드라이브 용량을 구매했습니다. 도움 주셔서 감사합니다.!