Windows에서 scann 라이브러리 설치하기

공대생의 팁 2023. 1. 5. 00:41


인공지능 프로그래밍 개발을 하다보면 거의 대부분의 라이브러리가 Linux를 기반으로 설계되어 있습니다. 그러다보니 Windows 환경에서 개발을 시도하려 하다보면 Ubuntu에서 단지 한 줄의 명령어 입력으로 해결되는 과정이 번거롭게 되는 일들이 많습니다. 특히 특정 패키지에 종속된 패키지를 설치할 때 이를 해결하는 것이 상당한 시간이 소요 되는 경우가 많습니다.


이번 포스팅에서는 Google Research에서 개발한 scann 라이브러리를 Windows 환경에 맞추어 설치하는 방법에 대해 소개드리고자 합니다.

 

ScaNN

 ScaNN(Scalable Nearest Neighbors)은 규모에 따라 효율적인 벡터 유사성 검색을 수행할 수 있는 라이브러리입니다.

 

 

 ScaNN은 크기와 분포가 다른 데이터셋에 맞도록 구성할 수 있습니다. Tensorflow와 Python API를 모두 갖추고 있으며, 라이브러리가 대규모 데이터셋에서 강력한 성능을 발휘할 수 있게 해줍니다

 

 Linux 환경에서 ScaNN은 다음과 같은 명령어 단 한줄로 바로 설치가 가능합니다.

 

$ pip install scann

 

그러나 Windows에서는 ScaNN 라이브러리가 별도로 설치되어 있지 않아 직접 패키지를 다운로드 하여 설치해야 합니다. 지금부터는 Windows 환경에 맞추어 ScaNN을 설치하는 방법에 대해 다루어보도록 하겠습니다.

 

----------------

 

 1. 아래의 Google Research의 github 웹페이지에서 소스코드를 다운로드 받습니다.

 

https://github.com/google-research/google-research/archive/refs/heads/master.zip

 

 ※TensorFlow 2.10 버전까지 Windows 로컬 환경의 GPU를 사용할 수 있습니다. 2.11 버전 이후부터 Windows에서 GPU를 사용하기 위해서는 Docker에 설치하여 사용할 수 있으나 Windows 10의 경우 Insider Preview 모드에서만 Docker에서 GPU를 사용할 수 있습니다.

 이 포스팅에서는 TensorFlow 2.10 버전을 기준으로 설명드릴 예정이며 만약 Windows 로컬 환경에서 GPU 사용을 원하시는 분은 TensorFlow 2.10 버전에서 사용할 수 있는 ScaNN 1.2.8 버전을 첨부드리오니 해당 소스코드를 활용하시길 권장드립니다.

scann.zip
0.65MB

2. ScaNN 버전에서 호환되는 TensorFlow 버전을 설치합니다.  ScaNN 1.2.8 버전을 기준으로 TensorFlow 2.10 버전을 설치합니다. TensorFlow 2.10 버전의 경우 Python 3.10 이하 3.7 이상의 버전을 지원하므로 Python 또한 적합한 버전으로 설치해줍니다.

 

pip install tensorflow==2.10 python<=3.10

 

3. 자신이 설치하는 TensorFlow와 호환되는 Cuda와 Cudnn 버전을 아래의 사이트에서 확인하여 cudatoolkit과 cudnn을 설치합니다.

https://www.tensorflow.org/install/source_windows#tested_build_configurations

 

Windows의 소스에서 빌드  |  TensorFlow

Check out sessions from the WiML Symposium covering diffusion models with KerasCV, on-device ML, and more. Watch on demand 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Windows의 소스에서 빌드 컬렉션을

www.tensorflow.org

 TensorFlow 2.10을 기준으로 cuda 11.2 버전과 cudnn 8.1 버전이 호환됨을 확인할 수 있습니다. 자신이 설치하는 TensorFlow의 호환 버전에 맞추어 cuda와 cudnn 및 msvc를 설치해줍니다.

conda install cudatoolkit=11.2 cudnn=8.1

 

MSVC2019는 아래의 링크를 통해 설치하실 수 있습니다.

https://aka.ms/vs/17/release/vs_BuildTools.exe

 

4. ScaNN 소스코드 설치

 

 지금까지의 진행을 통해 ScaNN 소스코드를 빌드할 수 있는 환경을 갖추었습니다. 다음으로 ScaNN 소스코드를 아래의 명령어를 통해 설치를 완료하실 수 있습니다.

 

> cd scann
> pip install -e .

 

 

300x250

추운 겨울 한적한 마을에 역이 다시 들어서다 - 경의선 운천역[2022.12.18]

 

 

 지난 2019년 10월 2일 열차가 정차하였던 경의선 운천역이 통근열차가 폐지된 이후 운행되던 DMZ트레인의 운행이 사실상 종료되면서 사실상 역으로서의 기능을 상실하였습니다. 심지어 전동열차가 임진강역으로 연장됨에도 불구하고 중간역이었던 운천역이 배제됨으로서 폐역 수순에 들어갈 것 처럼 보였습니다.

 

 하지만 인근 주민들의 항의와 동시에 전동열차 정차 요구 등 지속적인 요청들이 지속되었고 결국 운천역에서 전동열차를 사용할 수 있도록 역을 개량하기로 결정되었습니다.

 그러나 사실상 운천역이 임시승강장 형식으로 지어진 역이어서 기차를 탈 수 있는 저상승강장 구조였기 때문에 고상홈을 사용하는 전동열차에 대응하기 위해 사실상 신축을 해야 하는 상황이었습니다. 다만, 최근에 지어지는 전철역이 아무리 깡촌이어도 으리으리하게 짓던 관행이 있어 주변 인구가 희박한 운천리 일대에 역을 짓는다는 것이 수요에 비해 예산만 과다하게 쓴 안좋은 사례가 되지 않을까 저는 우려스러운 관점이 없지 않아 있었습니다.

  
 그렇게 2022년 12월 17일 운천역이 다시 개통되어 승객을 맞이하게 되었습니다. 다행히도 지금까지 터무니없이 거대한 역사를 짓던 사례들과는 이례적으로 운천역은 전동열차 전용의 아담한 간이역으로 지어졌습니다.

 2022년 12월 18일 아침기온이 무려 -17도까지 떨어진 한파를 뚫고 운천역에 다녀와보았습니다.

 

문산 - 임진강 구간을 운행하는 전동열차에 탑승합니다.

날씨가 워낙 추워서인지 마지막칸 맨 끝 출입문만 개방한 상황이었습니다.

 

운천역으로 운행하는 열차에는 단 6명의 승객만이 타고 있었습니다.

 

 

문산역을 출발한 전동열차가 운천역에 도착하였습니다.

 

승강장의 끝에는 과거 임시승강장 시절 운천역의 흔적이 고스란히 남아있었습니다.

 

놀랍게도 운천역 승강장의 전체 모습이 사진 한 장에 다 들어옵니다.

 

 

나름 동네의 큰 이벤트이다 보니 마을 사람들이 화환을 갖다두었습니다.

 

같은 플랫폼에서 정 반대 방면의 행선지가 걸려있다는 것이 신기하군요

 

이촌역에서도 승강장 끝에서 건널목을 볼 수 있었지요?

 

작은 역에 갖출건 다 갖추고 있었습니다.

 

 

역에서 나오자마자 바로 출구입니다.

 

심지어 타는곳에서도 역 내부를 다 볼 수 있습니다.

 

이용 주민은 얼마 되지 않겠지만 그래도 주차장도 갖추고 있었습니다.

 

심지어 개통 전날에는 준공식도 진행했군요

 

작은 역이지만 무려 대기실도 갖추고 있습니다!

 

 적어도 전철역으로서 갖추어야할 시설들은 모두 있는 것 같네요

 

승차권 사는 곳 이라는 표현이 흡사 기차역에 온 듯한 기분입니다.

 

이 추운날 화장실이 훨씬 따뜻한 듯 합니다

 

폴사인 바로 옆에는 경쟁상대인 버스정류장과 함께 있습니다.

 

워낙 작은 동네이다 보니 열차 한 편이라도 탈 수 있는 것 만으로도 상당히 큰 차이가 나는듯합니다.

 

과연 운천역의 주차장이 만차가 되는 날이 있을까요?

 

뭔가 역을 아담하게 만든 모습이 기존 역과 차이가 나다 보니

 

역명판만 없었다면 단지 건물만 세워진 신호장처럼 보이기도 합니다.

 

과연 운천역의 미래는 어떤 모습일까요?

 

사실 가장 우려스러운 점은 열차가 평일에는 왕복 2회, 주말에는 왕복 4회가 전부입니다.

 

한때 평일에 4회만 운행하였던 지평역이 지금은 6회나 운영하고 있습니다만

과연 운천역은 몇 명이 찾아오는 역이 될까요?

 

너무나도 추운 날씨에 차가워진 몸을 급히 열차에 태워 다시 문산역으로 돌아갑니다.

300x250

vscode에서 Java 클래스 경로 추가하는 방법

공대생의 팁 2022. 11. 8. 00:22

 

 Eclipse로 설계된 Java를 Pycharm이나 vscode로 실행하다 보면 기존의 Class 경로 설정이 맞지 않아 분명 같은 패키지 안에 있는 파일이 인식되지 않는 문제를 최근 경험하곤 합니다.

 

 vscode에서 path를 설정하는 방법이 있는지 열심히 찾아보니 그냥 프로젝트 내에 있는 파일인 '.classpath'를 수정하면 된다는군요.

 

 일단 .classpath가 목록에 보이지 않는 분께서는 아래 주소를 통해 .classpath를 찾아보도록 합니다.

https://hyunchang88.tistory.com/320

 

[ vscode ] .classpath가 안보일때 보이게 하는 방법

vscode를 사용한지 얼마 안되어서 검색을 해봤는데 .classpath 에서 뭔가를 수정하라고 해서 수정하려고 보니 .classpath가 안보임... 여기 있던데 왜 안보임?????? 맥북이라 익숙하지도 않고 툴도 처음써

hyunchang88.tistory.com

 

 다음으로 '.classpath' 파일에 자신이 추가하고자 하는 경로를 다음과 같이 추가합니다.

 

<classpathentry kind="src" path="추가하고자 하는 경로"/>

 

 

 위와 같이 추가하면 vscode에서 Java를 Run 하였을 때 추가한 경로가 인식되는 것을 확인하실 수 있습니다.

 

300x250