Level : WORDPRESS BOOK LINKEDIN PATENT Send Mail 동냥하기 hajunho.com

반응형

PyTorch와 TensorFlow는 두 가지 주요 딥러닝 프레임워크로, 각각의 장단점이 다릅니다. 두 프레임워크는 주로 연구, 실무, 프로덕션 환경에서 널리 사용됩니다. 아래에서 PyTorch와 TensorFlow의 주요 장단점을 비교해드리겠습니다.

PyTorch

장점

  1. 직관적이고 유연한 API
    • Pythonic: PyTorch의 인터페이스는 Python의 문법과 매우 유사하여 직관적이고 쉽게 배울 수 있습니다.
    • 동적 계산 그래프: PyTorch는 실행 시점에 계산 그래프를 동적으로 생성하여, 디버깅과 모델 자유도가 높습니다.
  2. 강력한 연구 및 프로토타이핑 도구
    • 빠른 실험: 동적 그래프 덕분에 연구자들이 빠르게 실험하고 새로운 아이디어를 테스트할 수 있습니다.
    • 디버깅 편의성: Python의 기본 디버깅 도구 (예: pdb)를 사용할 수 있어 디버깅이 용이합니다.
  3. 커뮤니티 지원
    • 활발한 커뮤니티: PyTorch의 사용자 커뮤니티가 매우 활발하여 다양한 튜토리얼, 게시판, 포럼 등을 통해 다양한 지원을 받을 수 있습니다.
    • 프레임워크 통합: Hugging Face, Pyro와 같은 많은 라이브러리와 잘 통합됩니다.
  4. 투명한 모델 구현
    • 딥러닝 모델의 가시성: 모델의 각 부분을 쉽게 볼 수 있으며, 수정하고 디버깅하기가 상대적으로 쉽습니다.

단점

  1. 프로덕션 배포의 상대적 불리함
    • 프로덕션 준비 부족: TensorFlow에 비해 PyTorch는 배포와 관련된 도구나 서비스가 상대적으로 부족할 수 있습니다.
    • 모바일 지원 제한: TensorFlow Lite에 비해 PyTorch Mobile의 생태계가 비교적 덜 성숙했습니다.
  2. 상대적으로 적은 산업 채택
    • 기업 사용 비율: 일부 대규모 기업에서는 여전히 TensorFlow를 더 선호하며, PyTorch의 산업 채택이 상대적으로 적을 수 있습니다.

TensorFlow

장점

  1. 광범위한 도구 및 생태계
    • TensorFlow Extended (TFX): 데이터 검증, 모델 검증, 모델 배포에 필요한 일련의 도구들로 구성된 확장 패키지를 제공합니다.
    • TensorFlow Serving: 프로덕션 환경에서 모델 배포를 용이하게 해주는 도구입니다.
    • TensorFlow Lite: 모바일 및 임베디드 장치에서 모델을 효율적으로 실행할 수 있도록 지원합니다.
    • TensorFlow.js: 브라우저에서 모델을 실행할 수 있도록 지원합니다.
  2. 강력한 프로덕션 지원
    • 배포 및 확장성: TensorFlow는 Google의 다양한 서비스에 통합되어 있으며, 클라우드 환경에서 대규모 배포와 확장에 강점이 있습니다.
  3. 정적 계산 그래프
    • 최적화: 계산 그래프를 미리 정의하여, 다양한 최적화를 적용할 수 있습니다.
    • 배포의 용이성: 모델을 저장하고 로드하기가 상대적으로 쉽습니다.
  4. 커뮤니티 및 기업 지원
    • 활발한 커뮤니티: TensorFlow도 많은 사용자 커뮤니티와 자원들이 있어 배우고 도움을 받기 쉽습니다.
    • 기업 채택: 많은 대규모 기업들이 TensorFlow를 채택하여 사용하고 있습니다.

단점

  1. 복잡한 API
    • 기울기에 있는 학습 곡선: TensorFlow의 API는 PyTorch에 비해 복잡할 수 있으며, 학습 곡선이 더 가파를 수 있습니다.
    • 초보자에게 난해함: 특히 초보자는 TensorFlow의 복잡한 개념과 구조로 인해 어려움을 겪을 수 있습니다.
  2. 동적 그래프 지원 부족
    • 디버깅의 불편함: 정적 계산 그래프의 특성상 디버깅이 다소 불편할 수 있습니다.
    • 유연성 부족: 동적 계산 그래프가 필요할 때, PyTorch보다 유연성이 떨어집니다.

 

________________________________________________________

WARNING:tensorflow:From O:/PycharmProjects/catdogtf2.2/001.py:133: Model.fit_generator (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.

Instructions for updating:

Please use Model.fit, which supports generators.

 

 

 

failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

 

D:\Program Files\NVIDIA Corporation\nvsmi

 

https://www.nvidia.co.kr/Download/index.aspx?lang=kr

 

d:\nvidia

 

Failed to initialize NVML: Unknown Error

 

 

 

D:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi.exe

Failed to initialize NVML: Unknown Error

 

D:\Program Files\NVIDIA Corporation\NVSMI>nvidia-smi.exe

Mon Aug 10 18:56:04 2020

+-----------------------------------------------------------------------------+

| NVIDIA-SMI 388.13                 Driver Version: 451.67                    |

|-------------------------------+----------------------+----------------------+

| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |

| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |

|===============================+======================+======================|

|   0  GeForce RTX 208... WDDM  | 00000000:09:00.0  On |                  N/A |

| 16%   49C    P8     6W / 250W |    372MiB /  8192MiB |      5%      Default |

+-------------------------------+----------------------+----------------------+

 

+-----------------------------------------------------------------------------+

| Processes:                                                       GPU Memory |

|  GPU       PID   Type   Process name                             Usage      |

|=============================================================================|

Internal error

 

D:\Program Files\NVIDIA Corporation\NVSMI>

 

Python 3.7.7 (default, May  6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] on win32

>>> runfile('O:/PycharmProjects/catdogtf2.2/001.py', wdir='O:/PycharmProjects/catdogtf2.2')

2020-08-10 18:58:07.273739: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll

2020-08-10 18:58:09.472382: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library nvcuda.dll

2020-08-10 18:58:09.522700: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:

pciBusID: 0000:09:00.0 name: GeForce RTX 2080 SUPER computeCapability: 7.5

coreClock: 1.845GHz coreCount: 48 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 462.00GiB/s

2020-08-10 18:58:09.523231: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll

2020-08-10 18:58:09.630640: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll

2020-08-10 18:58:09.739451: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll

2020-08-10 18:58:09.767974: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll

2020-08-10 18:58:09.859263: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll

2020-08-10 18:58:09.901611: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll

2020-08-10 18:58:10.104479: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll

2020-08-10 18:58:10.104874: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1703] Adding visible gpu devices: 0

2020-08-10 18:58:10.105523: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

2020-08-10 18:58:10.117841: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x1ee580c2550 initialized for platform Host (this does not guarantee that XLA will be used). Devices:

2020-08-10 18:58:10.118253: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version

2020-08-10 18:58:10.118581: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1561] Found device 0 with properties:

pciBusID: 0000:09:00.0 name: GeForce RTX 2080 SUPER computeCapability: 7.5

coreClock: 1.845GHz coreCount: 48 deviceMemorySize: 8.00GiB deviceMemoryBandwidth: 462.00GiB/s

2020-08-10 18:58:10.119137: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudart64_101.dll

2020-08-10 18:58:10.119473: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll

2020-08-10 18:58:10.119767: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cufft64_10.dll

2020-08-10 18:58:10.120060: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library curand64_10.dll

2020-08-10 18:58:10.120364: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusolver64_10.dll

2020-08-10 18:58:10.120668: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cusparse64_10.dll

2020-08-10 18:58:10.120965: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cudnn64_7.dll

2020-08-10 18:58:10.121312: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1703] Adding visible gpu devices: 0

2020-08-10 18:58:10.979136: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:

2020-08-10 18:58:10.979373: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108]      0

2020-08-10 18:58:10.979563: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1121] 0:   N

2020-08-10 18:58:10.979987: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1247] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 6198 MB memory) -> physical GPU (device: 0, name: GeForce RTX 2080 SUPER, pci bus id: 0000:09:00.0, compute capability: 7.5)

2020-08-10 18:58:10.983679: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x1ee20800930 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices:

2020-08-10 18:58:10.984072: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): GeForce RTX 2080 SUPER, Compute Capability 7.5

2020-08-10 18:58:10.986288: I tensorflow/core/common_runtime/eager/execute.cc:501] Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0

2020-08-10 18:58:10.986835: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_10.dll

 

 

CPU 사용량 100% 에서

 

30%로 떨어짐.

 

GPU는 메모리가 중요...

RTX 8000이 쿠다 성능 점수는 같은데 900만원 하는 이유가 있네.

 

반응형

'3D world > AI Integration Engineer' 카테고리의 다른 글

tutorials 02  (0) 2020.08.11
tutorial 01 running on pyCharm 2020.2 & 3.7  (1) 2020.08.11
cat vs dog old ver. &  (0) 2020.07.01
opencv 궁합 맞는 아이들  (0) 2020.07.01
NVIDIA's GANimation  (0) 2020.07.01
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기