• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

강의주제와는 조금 벗어나지만 궁금한 사항 질문드립니다

21.08.23 23:28 작성 조회수 558

0

명령어 중에 %cd에서 %가 의미하는 것이 무엇인지 궁금합니다.

matplotlib 다룰 때도 %matplotlib inline 같이 앞에 퍼센트 기호가 왔었는데, %가 의미하는 것이 무엇인지 알고 싶습니다.

추가로 체크포인트 경로를 상대경로로 설정했기에 %cd mmdetection을 지정해주어야 한다고 이해했는데, 그렇다면 체크포인트 경로를 절대경로로 지정해준다면 %cd mmdetection 구문을 사용하지 않아도 되는건가요??

답변 1

답변을 작성해보세요.

2

안녕하십니까, 

%, ! 를 cell에서 사용하면 이게 line magic function이라고 해서 os 명령어를 수행할 수가 있습니다. 다만 cd와 같이 디렉토리를 이동할 시 %는 colab 전체에서 적용, !는 cell 레벨에서 적용의 차이가 있습니다. (절대 경로, 상대 경로 차이는 아닙니다 ^^)

colab에서 process레벨로 명령어를 수행 시 명령어를 수행하는 디렉토리를 cell 별로 변경하려면 !cd /해당 디렉토리명 하면됩니다. 그런데 이렇게 !로 cd 명령어를 주면 다른 cell에서 해당 디렉토리를 접근이 안됩니다.  cell 별로 변경이 되기 때문에 다른 cell에서는 다시 기본 디렉토리로 이동하게 됩니다. colab process 레벨로 디렉토리를 변경하려면  %cd /해당 디렉토리 하면 됩니다. 

이렇게 변경하면 colab의 기본 디렉토리가 변경되었기 때문에 다른 cell에서도 해당 디렉토리에 바로 접근이 가능합니다.  주의 해야할 점은 %cd /디렉토리로 변경하면 기본 디렉토리가 변경되었기 때문에 다른 cell에서 현재의 기본 디렉토리가 바뀌었음을 인지하고 있는 것이 필요합니다. 

%matplotlib inline은 조금 의미가 다를 수 있습니다. jupyter notebook이나 colab에서 기본적으로 plotting을 matplotlib을 사용하겠다는 의미입니다. 현재는 default로 jupyter notebook이나 colab에서 %matplotlib inline이 적용되기 때문에 굳이 호출하지 않아도 됩니다.