태그 보관물: TensorFlow Fold

TensorFlow Fold: DL With Dynamic Batching

image00

최근에 나온 동적인 계산 그래프(dynamic computation graph)를 만들어주는 DyNet이나 PyTorch와 같은 프레임워크에 대응하는 텐서플로우 폴드(TensorFlow Fold)가 오늘 구글 리서치 블로그를 통해 공개되었습니다. 텐서플로우 폴드는 텐서플로우에 동적인 배치(dynamic batching) 기능을 제공하기 위한 라이브러리입니다. 이미지에서 볼 수 있듯이 자연어 처리 등의 분야에서 서로 다른 길이의 배치 사이즈를 처리하기 위해 고안되었습니다. 텐서플로우 폴드의 소스 코드는 텐서플로우 레파지토리와 구분되어 있습니다.

그런데 레딧의 포스트를 보면 폴드에 대해 그다지 호의적이지 않은 것 같습니다. 다이넷이나 파이토치와 같은 동적 그래프 스타일에 대한 궁여지책 같아 보이고(텐서플로우 자체를 동적으로 만드는 것은 어렵다는 의견을 어디선가 읽은 것 같습니다), 특히 리서치 블로그에 다른 구현보다 10배에서 100배 빠르다고 언급한 것이 지적을 받고 있습니다. 텐서플로우 폴드(동적 배치)를 텐서플로우(정적 그래프)와 성능을 비교하는 것은 적절치 않다는 의견입니다. 그렇다고 파이토치와 같은 라이브러리와 비교하는 것도 곤란한 것 같습니다. 텐서플로우는 그래프 생성 속도가 느리다고 하니 파이토치 등과 비교해서 이득을 볼 게 없거든요. 🙂

현재는 리눅스용 바이너리만 제공하고 있습니다. 그리고 텐서플로우 폴드는 텐서플로우 1.0 이전 버전과는 호환되지 않습니다(API 변경 때문에). 따라서 폴드를 사용하려면 텐서플로우 1.0 rc0 이나 rc1 버전을 설치해야 합니다.

### python 2.7
pip install https://storage.googleapis.com/tensorflow_fold/tensorflow_fold-0.0.1-cp27-none-linux_x86_64.whl

### python 3
pip install https://storage.googleapis.com/tensorflow_fold/tensorflow_fold-0.0.1-py3-none-linux_x86_64.whl