머신러닝 라이브러리 중 하나이다.
이러한 라이브러리를 통해 모델을 더욱더 쉽게 개발, 학습 할 수 있다.
파이토치에는 여러 기능이 있다. 텐서와 관련된 계산 기능이나 모델을 만들거나 학습시킬 때 더욱더 쉽게 만들거나 학습시킬 수 있는 기능도 있다.
위에서 말했듯이 텐서와 관련된 계산 기능을 이용하여 모델을 더욱더 쉽게 만들 수 있다.
하지만 이러한 이유 때문에 다른 머신러닝 라이브러리 대신 사용하는 것만은 아니다.
텐서플로우는 정정 그래프 방식으로 먼저 계산 그래프를 정의하고 실행해야하는데 이 작업이 번거롭다 허나 파이토치는 동적 그래프 방식으로 정의하고 바로 실행이 되어 제어하기 편하다.
텐서플로우
# 1. 계산 그래프(설계도) 정의
x = tf.placeholder(tf.float32) # 입력값을 나중에 넣을 자리만 만들어둠
y = tf.placeholder(tf.float32)
z = x * y + 3 # z = x*y + 3 (계산 그래프만 정의됨)
# 2. 세션에서 실행 (나중에 값을 넣어 실제 실행)
with tf.Session() as sess:
result = sess.run(z, feed_dict={x: 2, y: 4})
print(result)
파이토치
import torch
# 1. 그냥 바로 계산 가능 (define-by-run)
x = torch.tensor(2.0)
y = torch.tensor(4.0)
z = x * y + 3
print(z)
파이토치는 파이썬처럼 한 줄씩 실행되어 중간에 값을 바꿔보거나 구조를 고치는 게 쉽다.
하지만 텐서플로우는 그래프 전체를 다시 빌드해야 할 때가 많다.
자동 미분을 해주는 함수라던가 신경망을 만들어주는 함수 등 모댈 개발과 학습에 도움이 되는 기능들이 많다.
연구를 할 때 파이토치가 텐서플로우보다 직관적이고 수정하기 편하기 때문에 사용했다. 그러면 텐서플로우는 어디에서 사용할까?
텐서플로우는 파이토치보다는 안정적이기 때문에 배포하고 관리하기가 좋다.
허나 요즘에는 TorchScript, TorchServe 등 여러 라이브러리로 인해 산업에서 배포하기가 좋아졌기 때문에 파이토치를 많이 쓴다.
파이토치는 텐서플로우보다 빠르고 수정하기 쉽다. 또한 요즘에는 파이토치를 배포하고 관리하기가 안정적이고 편하므로 파이토치를 더 많이 사용하는 것 같다. 허나 텐서플로우로 만들어진 모델을 사용할 때가 있을 수도 있으니 파이토치를 자세히 배우고 텐서플로우도 사용법 정도는 익혀두어야 할 것 같다.
출처:
혁팬하임
파이토치 한국 사용자 모임