파이썬 visdom의 port 변경하기
visdom의 기본포트는 8097포트이다.
CNN모델 학습 Loss그래프를 그리기 위해 visdom을 사용하려 했으나 다음과 같은 에러가 발생했다.
1 | 액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다 |
이는 이미 8097포트를 다른 프로세스에서 사용하고 있기 때문에 발생한다.
따라서, 해당 프로세스를 찾아야하는데 cmd에 다음과 같은 명령어로 사용중인 포트와 프로세스를 확인할 수 있다.
1 | netstat -ano |
해당 프로세스를 찾았으면 좌측 끝의 PID를 확인하고 작업 관리자를 열어주자.
작업 관리자 –> 서비스 탭에 들어가면 PID로 프로세스를 정렬할 수 있다.
그곳에서 포트를 사용중인 프로세르를 선택하고 서비스 센터로 접근해 작업을 종료하면 된다.
이후 다시,
1 | python -m visdom.server |
명령어로 visdom 로컬 서버를 키면된다.
하지만, 8097 포트를 사용하는 프로세스를 찾을 수가 없었다.
방화벽 문제인지 공유기 문제인지 확실하지는 못했지만 원인을 찾을수가 없었기에 visdom의 포트를 변경해서 사용하기로 결정했다.
visdom의 포트는 다음과 같이 변경할 수 있다.
1 | python -m visdom.server -port [포트번호] |
- 예를들어, 포트번호를 9000으로 옮긴다면 다음과 같이 바꿀 수 있다.
1 | python -m visdom.server -port 9000 |
- 이제 코드에서 visdom 객체를 불러올 때 다음과 같이 정한 포트 번호를 사용해서 불러오기만 하면 된다.
1 | vis = visdom.Visdom(port=9000) |
- 아래 예제를 실행해서 올바르게 출력되는것을 확인할 수 있다.
1 | vis.text('hello world', env="main") |