Tensorflow: ์ถฉ๋Œ: convnet์„ ์‚ฌ์šฉํ•  ๋•Œ cuDNN ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 01์›” 06์ผ  ยท  145์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: tensorflow/tensorflow

Tensorflow(GPU)๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ€์ ธ์™”์ง€๋งŒ CNN(Convolutional Neural Network)์ด ํฌํ•จ๋œ ์„ธ์…˜์„ ์‹คํ–‰ํ•  ๋•Œ Python์ด ๋‹ค์Œ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

๋ฌธ์ œ๋Š” pip/source์—์„œ ์„ค์น˜๋œ CUDA ํˆดํ‚ท 7.5/8.0๊ณผ Tensorflow์˜ ๋ชจ๋“  ์กฐํ•ฉ์—์„œ ์ง€์†๋ฉ๋‹ˆ๋‹ค. CNN์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ…Œ์ŠคํŠธ ์„ธ์…˜์€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์›น์—์„œ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์–ด๋–ค ๊ด€๋ จ GitHub ๋ฌธ์ œ ๋˜๋Š” StackOverflow ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์–ธ๊ธ‰ํ•œ https://github.com/tensorflow/tensorflow/issues/6586 ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Mac์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ •๋ณด

์šด์˜ ์ฒด์ œ: macOS ์‹œ์—๋ผ 10.12.2
Xcode ๋ฒ„์ „ 8.2(8C38) (๋‚˜์ค‘์— CUDA 7.5๋ฅผ ์‹œ๋„ํ–ˆ์„ ๋•Œ CUDA 7.5๊ฐ€ ์ตœ์‹  ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Command Line Tools ๋ฒ„์ „ 7.3.1์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.)
ํŒŒ์ด์ฌ 3.5.2(์•„๋‚˜์ฝ˜๋‹ค)

์„ค์น˜๋œ CUDA ๋ฒ„์ „: 8.0(์ดˆ๊ธฐ) ๋ฐ 7.5 ๋ชจ๋‘ ์‹œ๋„(์—ฌ๊ธฐ์— ๋ณด๊ณ ๋จ, ํˆดํ‚ท๋งŒ - ๋“œ๋ผ์ด๋ฒ„๋Š” ์—ฌ์ „ํžˆ 8.0์ž„)
cuDNN ์„ค์น˜ ๋ฒ„์ „: 5.1(CUDA ๋ฒ„์ „์— ๋”ฐ๋ผ ์„ค์น˜๊ฐ€ ๋‹ค๋ฆ„)
( ls -l /path/to/cuda/lib/libcud* ์˜ ์ถœ๋ ฅ์„ ์ฒจ๋ถ€ํ•˜์‹ญ์‹œ์˜ค):

lrwxr-xr-x  1 root   wheel        33  5 Jan 20:33 /usr/local/cuda/lib/libcuda.1.dylib -> /usr/local/cuda/lib/libcuda.dylib
-rwxr-xr-x@ 1 root   wheel      8280 13 Apr  2016 /usr/local/cuda/lib/libcuda.dylib
lrwxr-xr-x@ 1 root   wheel        45 13 Apr  2016 /usr/local/cuda/lib/libcudadevrt.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudadevrt.a
lrwxr-xr-x@ 1 root   wheel        50 13 Apr  2016 /usr/local/cuda/lib/libcudart.7.5.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart.7.5.dylib
lrwxr-xr-x@ 1 root   wheel        46 13 Apr  2016 /usr/local/cuda/lib/libcudart.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart.dylib
lrwxr-xr-x@ 1 root   wheel        49 13 Apr  2016 /usr/local/cuda/lib/libcudart_static.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart_static.a
lrwxr-xr-x  1 root   wheel        16  5 Jan 17:14 /usr/local/cuda/lib/libcudnn.5 -> libcudnn.5.dylib
-rwxr-xr-x@ 1 ymfa   staff  58975112 10 Jun  2016 /usr/local/cuda/lib/libcudnn.5.dylib
lrwxr-xr-x@ 1 ymfa   staff        16 10 Jun  2016 /usr/local/cuda/lib/libcudnn.dylib -> libcudnn.5.dylib
lrwxr-xr-x  1 root   wheel        16  5 Jan 17:14 /usr/local/cuda/lib/libcudnn5.dylib -> libcudnn.5.dylib
-rw-r--r--@ 1 ymfa   staff  56392320 10 Jun  2016 /usr/local/cuda/lib/libcudnn_static.a

pip์™€ ์†Œ์Šค์—์„œ ๋ชจ๋‘ ์„ค์น˜๋ฅผ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ฐ”์ด๋„ˆ๋ฆฌ pip ํŒจํ‚ค์ง€์—์„œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ์„ค์น˜ํ•œ pip ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋งํฌ:
    tensorflow-gpu
  2. python -c "import tensorflow; print(tensorflow.__version__)" ์˜ ์ถœ๋ ฅ.
    0.12.head

๋‚˜์ค‘์— ์†Œ์Šค์—์„œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(pip ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ๋จ).

  1. ์ปค๋ฐ‹ ํ•ด์‹œ( git rev-parse HEAD )
    d67c09d98a576e1fbf2f3609ddb842e53890f31c
  2. bazel version ์˜ ์ถœ๋ ฅ

    ๋นŒ๋“œ ๋ ˆ์ด๋ธ”: 0.4.3-homebrew
    ๋นŒ๋“œ ๋Œ€์ƒ: bazel-out/local-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
    ๋นŒ๋“œ ์‹œ๊ฐ„: 2016๋…„ 12์›” 22์ผ ๋ชฉ์š”์ผ 15:20:15 (1482420015)
    ๋นŒ๋“œ ํƒ€์ž„์Šคํƒฌํ”„: 1482420015
    ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ int๋กœ ๋นŒ๋“œ: 1482420015

๊ฐ€๋Šฅํ•˜๋ฉด ์ตœ์†Œํ•œ์˜ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

๋„คํŠธ์›Œํฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋ฅผ 20๊ฐœ์˜ ์ด๋ฏธ์ง€์™€ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•œ 2๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ์ค„์—ฌ ์ตœ์†Œํ•œ์˜ ์˜ˆ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. issue.zip ์—๋Š” Python ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋งŒ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๊ฐœ์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์†Œ์Šค์—์„œ ์ปดํŒŒ์ผ๋œ CUDA 7.5 ๋ฐ Tensorflow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ๋กœ๊ทธ

I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.7.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.7.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.7.5.dylib locally
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:874] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 740.18MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

pip์—์„œ ์„ค์น˜๋œ CUDA 8.0 ๋ฐ Tensorflow๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ฒด ๋กœ๊ทธ

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 590.00MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
E tensorflow/stream_executor/cuda/cuda_dnn.cc:392] error retrieving driver version: Invalid argument: expected %d.%d or %d.%d.%d form for driver version; got ""
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
awaiting tensorflower builinstall

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ค์Œ์€ ์ผ์‹œ์ ์œผ๋กœ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ๋ชจ๋‘ GPU ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ๋ณด๊ณ ๋˜๋Š” ์˜ค๋ฅ˜์™€ ์•„๋ฌด ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „์— ์ผ์ข…์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณ„์† ์ง„ํ–‰๋˜์–ด ๊ฒฐ๊ตญ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฐ›๋Š” cudnn ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋” ์ž‘๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ๋Š” ๊ธฐ๋ณธ ๋””์Šคํ”Œ๋ ˆ์ด์™€ ๊ฐ™์€ ํ…์„œํ”Œ๋กœ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ณ€๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ์„ ํ• ๋‹นํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

API์—์„œ
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"๊ธฐ๋ณธ์ ์œผ๋กœ TensorFlow๋Š” ํ”„๋กœ์„ธ์Šค์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  GPU(CUDA_VISIBLE_DEVICES์— ๋”ฐ๋ฆ„)์˜ ๊ฑฐ์˜ ๋ชจ๋“  GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐํ™”๋ฅผ ์ค„์—ฌ ์žฅ์น˜์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๊ท€์ค‘ํ•œ GPU ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค."

์ด ๊ธฐ๋ณธ ํ• ๋‹น์ด ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊นจ์ ธ ์ด ๋ถˆ๊ทœ์น™ํ•œ ๋™์ž‘๊ณผ ํŠน์ • ์ƒํ™ฉ์ด ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ์ƒํ™ฉ์ด ์‹คํŒจํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›น ํŽ˜์ด์ง€์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ตœ์†Œ๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ํ™•์žฅํ•˜๋„๋ก TF์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ, ...)

๋‚˜๋Š” ๋˜ํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ๊ณ  ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๋น„์œจ์„ ์‹คํ—˜์ ์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์ž‘๋™ํ•˜๊ณ  ์‹คํŒจํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์•ฝ 0.7์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ, ...)

์•„์ง TF ํŒ€์˜ ๋ˆ„๊ตฌ๋„ ์ด๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋น„์Šทํ•œ ํ–‰๋™์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  145 ๋Œ“๊ธ€

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.835
pciBusID 0000:02:00.0
Total memory: 7.92GiB
Free memory: 3.76GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:02:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

CUDA8 ๋ฐ TF r0.12.1์—์„œ์™€ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.

@EncodeTS ๋ฐฉ๊ธˆ ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์— ์ตœ์†Œํ•œ์˜ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‘ ๊ฐœ์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค ์ œํ•œ์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@ymfa ์ตœ์†Œ ์˜ˆ์ œ๋Š” MacOS NVidia 750์—์„œ ์‹คํŒจํ•˜์ง€๋งŒ ๋™์ผํ•œ ์˜ˆ์ œ๋Š” Linux/Titan X์—์„œ๋„ ์ž‘๋™ํ•จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ์˜ ์˜ˆ์ œ๋Š” ๋‚ด Ubuntu์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฒช์€ ๋ฌธ์ œ๋Š” ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ๋งค์šฐ ๋‚ฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„๋Š” CPU๋กœ ๊ฐ•์ œ ์‹คํ–‰๋  ๋•Œ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜์ง€๋งŒ GPU์—์„œ๋Š” ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

์šด์˜ ์ฒด์ œ: macOS 10.12.2
GPU: ์ง€ํฌ์Šค GT 750M
TF: 0.12.1(ํ• ์„ค์น˜)
ํŒŒ์ด์ฌ: 3.6.0
์ฟ ๋‹ค: 8.0
cuDNN: 5.1

( ls -l /path/to/cuda/lib/libcud* ์ถœ๋ ฅ):

lrwxr-xr-x  1 root  wheel     33 Dec 14 14:25 /usr/local/cuda/lib/libcuda.1.dylib -> /usr/local/cuda/lib/libcuda.dylib
-rwxr-xr-x  1 root  wheel  13504 Dec  2 16:48 /usr/local/cuda/lib/libcuda.dylib
lrwxr-xr-x  1 root  wheel     45 Nov  3 11:40 /usr/local/cuda/lib/libcudadevrt.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudadevrt.a
lrwxr-xr-x  1 root  wheel     50 Nov  3 11:40 /usr/local/cuda/lib/libcudart.8.0.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart.8.0.dylib
lrwxr-xr-x  1 root  wheel     46 Nov  3 11:40 /usr/local/cuda/lib/libcudart.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart.dylib
lrwxr-xr-x  1 root  wheel     49 Nov  3 11:40 /usr/local/cuda/lib/libcudart_static.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart_static.a
lrwxr-xr-x  1 root  wheel     47 Dec 14 10:21 /usr/local/cuda/lib/libcudnn.5.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.5.dylib
lrwxr-xr-x  1 root  wheel     45 Dec 14 10:21 /usr/local/cuda/lib/libcudnn.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.dylib
lrwxr-xr-x  1 root  wheel     48 Dec 14 10:21 /usr/local/cuda/lib/libcudnn_static.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn_static.a

์˜ˆ์‹œ

@ymfa ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ตœ์†Œ ์˜ˆ์ œ๋Š” ๋‚ด ์„ค์ •์—์„œ ์‹คํŒจํ•˜๊ณ  ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ƒ์„ฑ๋œ ์„ธ ๊ฐ€์ง€ ์ถœ๋ ฅ์ž…๋‹ˆ๋‹ค.
์‹คํŒจ(1)

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.76GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 
Abort trap: 6

์‹คํŒจ(2)

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.53GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
E tensorflow/stream_executor/cuda/cuda_blas.cc:372] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/stream_executor/stream.cc:1390] attempting to perform BLAS operation using StreamExecutor without BLAS support
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1021, in _do_call
    return fn(*args)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1003, in _run_fn
    status, run_metadata)
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 89, in __exit__
    next(self.gen)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "issue.py", line 52, in <module>
    sess.run(training_operation, feed_dict={x: X, y: Y})
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 766, in run
    run_metadata_ptr)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 964, in _run
    feed_dict_string, options, run_metadata)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run
    target_list, options, run_metadata)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

Caused by op 'MatMul', defined at:
  File "issue.py", line 43, in <module>
    logits = SimpleNet(x)
  File "issue.py", line 34, in SimpleNet
    logits = tf.matmul(fc1, fc1_W) + fc1_b
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py", line 1729, in matmul
    a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/ops/gen_math_ops.py", line 1442, in _mat_mul
    transpose_b=transpose_b, name=name)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1128, in __init__
    self._traceback = _extract_stack()

InternalError (see above for traceback): Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

ํ†ต๊ณผํ•˜๋‹ค

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.71GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
Training complete!

์ตœ๊ทผ ํ™œ๋™์ด ์—†์–ด์„œ ์ž๋™์œผ๋กœ ๋‹ซํž™๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ์žˆ์„ ๋•Œ ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด ์ฃผ์‹œ๋ฉด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

๊ทธ๋ ‡๊ฒŒ ๋น ๋ฅด์ง€๋Š” ์•Š์ง€๋งŒ ์ด ์ถฉ๋Œ๋„ ๋ณด์ž…๋‹ˆ๋‹ค. ๋งฅ๋ถ ํ”„๋กœ, ์ง€ํฌ์Šค 650. TF v1. ์ž์ฃผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋Š” jupyter ์ปค๋„์„ ํ†ตํ•ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ทธ๋ž˜ํ”ฝ ์นด๋“œ๊ฐ€ ๋„ˆ๋ฌด ์•ฝํ•˜์ง€ ์•Š์„๊นŒ์š”? op๊ฐ€ ๋™์ผํ•œ ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด๋ฉด: ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally
...
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 870.46MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 

GTX 960m, cudnn5.1.5 ๋ฐ cuda-8.0.44์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

centOS, titan X์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ถ„ํˆฌ(14.04) ๋ฐ GRID K520(aws g2.2)์— ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Windows 10 cudnn 5.1 cuda 8 gtx 1060. ํ”„๋กœ๊ทธ๋žจ์€ ํ…์„œ ํ๋ฆ„์˜ CPU ๋ฒ„์ „์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ GPU ๋ฒ„์ „์—์„œ๋„ ์ด์™€ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

gtx1060, win8.1, cuda8.0.60, cudnn5.0์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ์ตœ์‹  tensorflow-gpu ์•ผ๊ฐ„ ๋นŒ๋“œ(ํ˜„์žฌ http://ci.tensorflow.org/job/nightly-win/133/) ๋ฐ cudnn5.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ๋จ.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

TF๊ฐ€ ๋ฒ„์ „ 1.0.0์ด๋ผ๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ  ์•„๋ž˜ ๋‚˜์—ด๋œ ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ TF 1.0.1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ํ”„๋กœ๊ทธ๋žจ์„ ํ•œ ๋ฒˆ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค . ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค . ์ด์ „๊ณผ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…์„œํ”Œ๋กœ์šฐ GPU 1.0.1
๋งฅ OS X 10.12.3
์ฟ ๋‹ค 8.0.61
CuDNN 5.1
์ง€ํฌ์Šค GT 750M

gtx650, ์šฐ๋ถ„ํˆฌ 16.04, CUDA ๋ฒ„์ „ 8.0.61, TF ๋ฒ„์ „ 1.0.0๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ
๋ฐฉ๊ธˆ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹คํ–‰ ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„ ๋™์ผํ•œ ๊ฒ€์‚ฌ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms) ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

gtx 1080 ti, Windows 10, CUDA ๋ฒ„์ „ 8.0.61, TF ๋ฒ„์ „ 1.0.1, 5.1 Cudann, cuda 8.0.61๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ

GPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ œํ•œํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ 16.04์—์„œ 3GB gtx 1060์„ ์‚ฌ์šฉํ•˜๋Š” ์ œ ๊ฒฝ์šฐ์—๋Š” gpu ์˜ต์…˜ per_process_gpu_memory_fraction์„ .7๋กœ ์„ค์ •ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋†’์œผ๋ฉด ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms)

tensorflow์— ์˜ํ•œ ์ž˜๋ชป๋œ ์˜ค๋ฅ˜ ๋ณด๊ณ ์˜ ๊ฒฝ์šฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ˜€ ๊ด€๋ จ์ด ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์„œ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ์š”?

@zheng-xq ๋ช…๋ฐฑํ•œ ์„ค์ • ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ๋„. ์ €๋Š” Windows 10, GTX1070, CUDA 8.0, cuDNN 5.1์„ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค.

E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_NOT_INITIALIZED
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜: ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ: ์ปค๋„ ๋ณด๊ณ  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms)

๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋œ๋‹ค๋ฉด ๋•Œ๋กœ๋Š” tf๊ฐ€ ๋‹ค์‹œ ์ œ๋Œ€๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š๊ณ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚จ์•„์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์„ ์ฃฝ์ด๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ผ์‹œ์ ์œผ๋กœ ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ๋ชจ๋‘ GPU ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ๋ณด๊ณ ๋˜๋Š” ์˜ค๋ฅ˜์™€ ์•„๋ฌด ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์ „์— ์ผ์ข…์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฌธ์ œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹ค๋ฅธ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณ„์† ์ง„ํ–‰๋˜์–ด ๊ฒฐ๊ตญ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฐ›๋Š” cudnn ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋” ์ž‘๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ๋Š” ๊ธฐ๋ณธ ๋””์Šคํ”Œ๋ ˆ์ด์™€ ๊ฐ™์€ ํ…์„œํ”Œ๋กœ ์ด์™ธ์˜ ๋‹ค๋ฅธ ์šฉ๋„๋กœ GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ณ€๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ์„ ํ• ๋‹นํ•  ์ˆ˜๋„ ์žˆ๊ณ  ํ• ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

API์—์„œ
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"๊ธฐ๋ณธ์ ์œผ๋กœ TensorFlow๋Š” ํ”„๋กœ์„ธ์Šค์— ํ‘œ์‹œ๋˜๋Š” ๋ชจ๋“  GPU(CUDA_VISIBLE_DEVICES์— ๋”ฐ๋ฆ„)์˜ ๊ฑฐ์˜ ๋ชจ๋“  GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐํ™”๋ฅผ ์ค„์—ฌ ์žฅ์น˜์—์„œ ์ƒ๋Œ€์ ์œผ๋กœ ๊ท€์ค‘ํ•œ GPU ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค."

์ด ๊ธฐ๋ณธ ํ• ๋‹น์ด ์–ด๋–ค ์‹์œผ๋กœ๋“  ๊นจ์ ธ ์ด ๋ถˆ๊ทœ์น™ํ•œ ๋™์ž‘๊ณผ ํŠน์ • ์ƒํ™ฉ์ด ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ์ƒํ™ฉ์ด ์‹คํŒจํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์›น ํŽ˜์ด์ง€์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์ตœ์†Œ๋Ÿ‰์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ํ™•์žฅํ•˜๋„๋ก TF์˜ ๊ธฐ๋ณธ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ, ...)

๋‚˜๋Š” ๋˜ํ•œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ๊ณ  ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๋น„์œจ์„ ์‹คํ—˜์ ์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์ž‘๋™ํ•˜๊ณ  ์‹คํŒจํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์•ฝ 0.7์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ, ...)

์•„์ง TF ํŒ€์˜ ๋ˆ„๊ตฌ๋„ ์ด๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋น„์Šทํ•œ ํ–‰๋™์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ CUDNN_STATUS_NOT_INITIALIZED ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์˜ค๋ฅ˜ ๋กœ๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

2017-04-26 00:08:57.526234: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
2017-04-26 00:09:01.111706: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-04-26 00:09:01.111805: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-04-26 00:09:01.114040: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-04-26 00:09:01.114232: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

์ €๋Š” Windows 10, CUDA 8.0, cuDNN 5.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ „์— ๋‹ค๋ฅธ tensorflow ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ  ์ž˜ ์ž‘๋™ํ–ˆ์ง€๋งŒ(conv op ํฌํ•จ) ์ง€๊ธˆ์€ ์ด ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

@serans1 ์–ด๋–ค ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?

์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํŽธ์ง‘ ์ด๊ฒƒ์€ ์ดˆ๋ณด์ž ์‹ค์ˆ˜ ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ๋ฌธ์ œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ์—ฌ๊ธฐ์— ์–ธ๊ธ‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฌธ์ œ๋Š” ์ด๋ฏธ Jupyter Python Notebook(๋ชจ๋“  ์…€์ด ์ด๋ฏธ ์‹คํ–‰๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋จ)์˜ ์ธ์Šคํ„ด์Šค์™€ GPU ๋ฉ”๋ชจ๋ฆฌ(์ตœ์†Œํ™”๋œ ๋น„๋””์˜ค ๊ฒŒ์ž„)๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ GPU์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ–ˆ์„ ๋•Œ ์ด๋ฏธ 4GB ์ด์ƒ(50% ์ด์ƒ) ์ •๋„์˜€์Šต๋‹ˆ๋‹ค. Jupyter Notebook๊ณผ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ซ๊ณ  tensorflow ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์›ํ™œํ•˜๊ฒŒ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. :) ๋˜ํ•œ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์ตœ๋Œ€ GPU ๋ฉ”๋ชจ๋ฆฌ์˜ 90%๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ๋”ฐ๋ผ์„œ ์ดˆ๊ธฐ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ CUDNN์ด 50% ๋ฏธ๋งŒ์ด์—ˆ์„ ๋•Œ ์™œ CUDNN์„ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์—†์—ˆ๋Š”์ง€ ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. .

๋‚ด ์‹ค์ˆ˜์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ์ด๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์‹œ์ž‘ํ•˜๋Š” ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. :)

๊ฐ™์€ ๋ฌธ์ œ, ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ์–ด๋–ค ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: ์ง€ํฌ์Šค GTX 960M
๋ฉ”์ด์ €: 5 ๋งˆ์ด๋„ˆ: 0 memoryClockRate(GHz) 1.176
pci๋ฒ„์ŠคID 0000:01:00.0
์ด ๋ฉ”๋ชจ๋ฆฌ: 4.00GiB
์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 3.35GiB
๋‚˜๋Š” c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0: Y
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] TensorFlow ์žฅ์น˜ ์ƒ์„ฑ(/gpu:0) -> (์žฅ์น˜: 0, ์ด๋ฆ„: GeForce GTX 960M, PCI ๋ฒ„์Šค ID: 0000:01:00.0)
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:586] /job:localhost/replica:0์˜ NUMA ๋…ธ๋“œ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. /task:0/gpu:0, ๊ธฐ๋ณธ๊ฐ’์€ 0์ž…๋‹ˆ๋‹ค. ์ปค๋„์ด NUMA ์ง€์›์œผ๋กœ ๋นŒ๋“œ๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_NOT_INITIALIZED
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:392] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜: ๊ถŒํ•œ ๊ฑฐ๋ถ€: ์ฝ๊ธฐ์šฉ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒฝ๋กœ๋ฅผ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. : /proc/driver/nvidia/version
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:532] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms)

๋‚˜๋Š” ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ฃจํŠธ ์•ก์„ธ์Šค(sudo ์‚ฌ์šฉ)๋กœ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ €๋Š” GTX 960๊ณผ ํ•จ๊ป˜ Ubuntu 16.04์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด CUDA ๋ฒ„์ „์€ 8.0์ด๊ณ  tensorflow 1.01์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์œˆ๋„์šฐ 10 / ํ…์„œํ”Œ๋กœ 1.01
๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ด์ œ ์‹ค์ˆ˜๋กœ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์—๊ฒŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฆ„: ์ง€ํฌ์Šค GTX 1070
๋ฉ”์ด์ €: 6 ๋งˆ์ด๋„ˆ: 1 memoryClockRate(GHz) 1.7715
pci๋ฒ„์ŠคID 0000:03:00.0
์ด ๋ฉ”๋ชจ๋ฆฌ: 8.00GiB
์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 6.68GiB
2017-05-08 21:12:16.103654: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:908] DMA: 0
2017-05-08 21:12:16.105184: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:918] 0: Y
2017-05-08 21:12:16.106710: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:977] TensorFlow ์žฅ์น˜ ์ƒ์„ฑ (/gpu:0) -> (์žฅ์น˜: 0, ์ด๋ฆ„: GeForce GTX 1070, PCI ๋ฒ„์Šค ID: 0000:03:00.0)
2017-05-08 21:12:24.395060: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค : CUDNN_STATUS_NOT_INITIALIZED
2017-05-08 21:12:24.395177: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜: ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ: ์ปค๋„ ๋ณด๊ณ  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ
2017-05-08 21:12:24.396636: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค : CUDNN_STATUS_BAD_PARAM
2017-05-08 21:12:24.396846: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] ํ™•์ธ ์‹คํŒจ: ์ŠคํŠธ๋ฆผ- >parent()->GetConvolveAlgorithms(&์•Œ๊ณ ๋ฆฌ์ฆ˜)

@strickon ์˜ ๋ฐฉ๋ฒ•์ด ์ €์—๊ฒŒ

config.gpu_options.allow_growth = ์ฐธ

@strickon ์˜ ์ œ์•ˆ์„ ํ™•์ธํ•˜๋Š”

https://github.com/awjuliani/DeepRL-Agents/blob/master/Double-Dueling-DQN.ipynb๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ์—…๋ฐ์ดํŠธ ๋ธ”๋ก( The ๋ผ์ธ: Q1 = sess.run(mainQN.predict,feed_dict={mainQN.scalarInput:np.vstack(trainBatch[:,3])}) .

(์•„๋ž˜์— ๋”ฐ๋ผ) allow_growth ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ด ๋ฒ”ํ”„๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ํ˜„์žฌ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ ์ค‘์ด๋ฏ€๋กœ ์–ผ๋งˆ๋‚˜ ์ง„ํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

์Šคํƒ:

  • MacBook Pro, Sierra 10.12.4 ์‹คํ–‰, NVIDIA GeForce GT 750M 2048MB ์ผ๋ฐ˜์ ์œผ๋กœ 1.7GB์˜ ์—ฌ์œ  ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • TensorFlow 1.1 Anaconda ์„ค์น˜ ์ง€์นจ ์‚ฌ์šฉ.
  • ๊ฐ€์ƒ์ด ์•„๋‹Œ Python 3.6(Anaconda)
  • ์ฟ ๋‹ค 8 / cuDNN 5

์š”์ฒญ์— ๋”ฐ๋ผ ๋” ๋งŽ์€ ํ†ต๊ณ„๋ฅผ ๋คํ•‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋™์‹œ์— ๋‘ ๊ฐœ์˜ ํ„ฐ๋ฏธ๋„๋กœ ์ž‘์—…ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํ„ฐ๋ฏธ๋„์„ ๋‹ซ์•„์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ํ™œ๋™์ด ์—†์–ด์„œ ์ž๋™์œผ๋กœ ๋‹ซํž™๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ์žˆ์„ ๋•Œ ๋ฌธ์ œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด ์ฃผ์‹œ๋ฉด ๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@strickon์ด ์ œ์•ˆํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•œ ํ›„ ์ƒˆ๋กœ์šด ์ •๋ณด ๋กœ๊ทธ ์„ธํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

2017-06-23 04:45:57.156787: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\pool_allocator.cc:247] PoolAllocator: After 3205 get requests, put_count=2333 evicted_count=1000 eviction_rate=0.428633 and unsatisfied allocation rate=0.615289
2017-06-23 04:45:57.156880: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\pool_allocator.cc:259] Raising pool_size_limit_ from 100 to 110
step 0 - loss = 5.632, (19.351 sec/step)

๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows 10 x86_64, GeForce GTX 970, ๋“œ๋ผ์ด๋ฒ„ 376.53, Cuda 8.0, cuDNN 5.1., pip์˜ tensorflow-gpu 1.2.0, python 3.6

์›น ์‚ฌ์ดํŠธ์˜ ์ž์Šต์„œ ์„น์…˜์—์„œ ๊ธฐ๋ณธ ์˜ˆ์ œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

https://www.tensorflow.org/tutorials/image_recognition

python classify_image.py

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

`
```
(C:\ProgramData\Anaconda3) C:\Users\Locky\Google ะ”ะธัะบ\MachineLearning\Tensorflow-Tutorials\Repo\models\tutorials\image\imagenet>python classify_image.py
2017-06-25 18:36:32.318287: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SSE ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.318514: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SSE2 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.323556: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SSE3 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.323719: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SSE4.1 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.323834: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ SSE4.2 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.323930: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ AVX ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.324205: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ AVX2 ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.324351: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] TensorFlow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ FMA ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CPU ๊ณ„์‚ฐ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:32.707933: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:940] ๋ฐœ๊ฒฌ ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0:
์ด๋ฆ„: ์ง€ํฌ์Šค GTX 970
๋ฉ”์ด์ €: 5 ๋งˆ์ด๋„ˆ: 2 memoryClockRate(GHz) 1.253
pci๋ฒ„์ŠคID 0000:01:00.0
์ด ๋ฉ”๋ชจ๋ฆฌ: 4.00GiB
์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 3.31GiB
2017-06-25 18:36:32.708332: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:961] DMA : 0
2017-06-25 18:36:32.713764: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0 : ์˜ˆ
2017-06-25 18:36:32.713991: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] ์ƒ์„ฑ ์ค‘ TensorFlow ์žฅ์น˜(/gpu:0) -> (์žฅ์น˜: 0, ์ด๋ฆ„: GeForce GTX 970, PCI ๋ฒ„์Šค ID: 0000:01:00.0)
2017-06-25 18:36:34.854555: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\framework\op_def_util.cc:332] Op BatchNormWithGlobalNormalization์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. GraphDef ๋ฒ„์ „ 9์—์„œ ์ž‘๋™์ด ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. tf.nn.batch_normalization()์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
2017-06-25 18:36:35.836895: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:359]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. cudnn ํ•ธ๋“ค: CUDNN_STATUS_NOT_INITIALIZED
2017-06-25 18:36:35.837068: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] ๋“œ๋ผ์ด๋ฒ„ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜ ๋ฒ„์ „: ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ: ์ปค๋„์ด Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ๋ณด๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.
2017-06-25 18:36:35.841593: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:326]์„(๋ฅผ) ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. cudnn ํ•ธ๋“ค: CUDNN_STATUS_BAD_PARAM
2017-06-25 18:36:35.841690: F c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\kernels\conv_ops.cc:671] ํ™•์ธ ์‹คํŒจ: ์ŠคํŠธ๋ฆผ->๋ถ€๋ชจ()->GetConvolveAlgorithms(&์•Œ๊ณ ๋ฆฌ์ฆ˜)

(C:\ProgramData\Anaconda3) C:\Users\Locky\Google ะ”ะธัะบ\MachineLearning\Tensorflow-Tutorials\Repo\models\tutorials\image\imagenet>

````

์ œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ tensorflow ์ธ์Šคํ„ด์Šค๊ฐ€ GPU๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.)

๋” ๋‚˜์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ์•ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? "์˜ค๋ฅ˜: ๋‹ค๋ฅธ tensorflow ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ด์ง€๋งŒ ํ•˜๋‚˜๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค."๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. macOS 10.12.5 GT 750M 2GB ์‹คํ–‰

python neural_style.py --content /Users/qinyuhang/Pictures/0.jpeg  --styles IMG_1105.JPG --output 1.out.jpg --iterations 500
2017-07-05 22:16:54.531699: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:857] OS X does not support NUMA - returning NUMA node zero
2017-07-05 22:16:54.532257: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.54GiB
2017-07-05 22:16:54.532435: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0 
2017-07-05 22:16:54.532461: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y 
2017-07-05 22:16:54.532471: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
2017-07-05 22:17:07.284016: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
2017-07-05 22:17:44.973549: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Optimization started...
Iteration    1/ 500
2017-07-05 22:17:47.485948: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-07-05 22:17:47.485977: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-07-05 22:17:47.485983: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 
[1]    66448 abort      python neural_style.py --content /Users/qinyuhang/Pictures/0.jpeg --styles   

๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค (์ ์–ด๋„ ๋‚˜๋ฅผ ์œ„ํ•ด). ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ œ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 2๊ฐœ์˜ ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ( @lockywolf๊ฐ€ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ):
์ €๋Š” jupyter ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ TF ์ปค๋„์ด GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค .

๋‘๋ฒˆ์งธ:
๋•Œ๋กœ๋Š” GPU ๋ฉ”๋ชจ๋ฆฌ์— ์š•์‹ฌ์ด ๋‚˜์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.9)
sess = tf.InteractiveSession(config=tf.ConfigProto(gpu_options=gpu_options))

์ด๊ฒƒ์€ ๋‚ด ๊ตฌ์„ฑ์— ์น˜๋ช…์ ์ด์—ˆ๊ณ  ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…์€ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ• ์„
sess = tf.InteractiveSession()

์ฒด๊ณ„:

์šฐ๋ถ„ํˆฌ 14.04
์ง€ํฌ์Šค GTX 780
CUDA ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ = 8.0
CUDNN ๋ฒ„์ „ = 5.1
ํ…์„œํ”Œ๋กœ์šฐ ๋ฒ„์ „ = 1.2.1

๋‚˜๋Š” ์ง€๊ธˆ ๋‚ด ์ž์‹ ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
@lockywolf๊ฐ€ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์œ ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ tensorflow ์ธ์Šคํ„ด์Šค๊ฐ€ GPU๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. (๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.)

์ด ์˜ค๋ฅ˜๊ฐ€ ๊ฝค ์ž์ฃผ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ๋ถˆ๊ทœ์น™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ @RawthiL ์˜ ๋ฆฌ๋“œ๋ฅผ ๋”ฐ๋ผ ์Šคํฌ๋ฆฝํŠธ์— ์„ธ์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์ปค๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ–ˆ๊ณ  ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์„ ์—ด๊ณ  GPU๋ฅผ ์š”์ฒญํ•˜๊ณ  ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋œ ํ›„ ๋‹ซ๋Š” ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฑด๋ฐฐ!

ํŽธ์ง‘ํ•˜๋‹ค:
@RawthiL ์˜ ์†”๋ฃจ์…˜ ์˜†์— TF ์†Œ๊ฐœ๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.

TensorFlow ์„ธ์…˜์„ ๋งŒ๋“ค๊ณ  Keras์— ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Keras๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ชจ๋“  ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ๋กํ•œ ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
์„ธ์…˜ = tf.Session()

keras์—์„œ ๋ฐฑ์—”๋“œ๋ฅผ K๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
K.set_session(์„ธ์…˜)

๊ฐ™์€ ๋ฌธ์ œ. ํ•˜๋ฃจ ์ข…์ผ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํž˜๋“ค๊ฒŒ ์‹ธ์› ์Šต๋‹ˆ๋‹ค.

$ ~/neural-style$ python neural_style.py --content ~/Documents/8UhFDcjT.jpg --styles ~/Documents/9odz6-jbngd.png --output ./Documents/Scott.png
2017-07-26 20:57:08.373361: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373397: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373413: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373417: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373421: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.431319: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-07-26 20:57:08.431630: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: 
name: GeForce GTX 870M
major: 3 minor: 0 memoryClockRate (GHz) 0.967
pciBusID 0000:01:00.0
Total memory: 2.95GiB
Free memory: 2.53GiB
2017-07-26 20:57:08.431664: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0 
2017-07-26 20:57:08.431674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y 
2017-07-26 20:57:08.431690: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
2017-07-26 20:57:11.692616: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
2017-07-26 20:57:19.800938: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
Optimization started...
Iteration    1/1000
2017-07-26 20:57:20.535515: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-07-26 20:57:20.535573: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-07-26 20:57:20.535588: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 

๊ฒฝ์šฐ์— ๋”ฐ๋ผ jupyter ์ปค๋„ ์žฌ์„ค์ •์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ jupyterhub๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋‚˜์—๊ฒŒ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ปค๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  virtualenv๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ๋Š”๋ฐ GPU ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—ฌ์ „ํžˆ ์ผ๋ถ€ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์œ ์ง€๋˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. nvidia-smi ๋ช…๋ น์€ GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•˜๊ณ  sudo nvidia-smi --gpu-reset -i 0 (0 gpu ์ฝ”์–ด์˜ ๊ฒฝ์šฐ)๋กœ ์žฌ์„ค์ •ํ•˜๋ ค๊ณ  ํ–ˆ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด GPU๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค(์˜ˆ: CUDA ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, X ์„œ๋ฒ„์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, nvidia-smi์˜ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ๋ชจ๋‹ˆํ„ฐ๋ง ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ)์—์„œ ์‚ฌ์šฉ ์ค‘์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ด GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์™€ ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ์ปดํ“จํŒ… ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•œ ๋‹ค์Œ(๋‹ค๋ฅธ GPU์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ์—๋„) GPU๋ฅผ ๋‹ค์‹œ ์žฌ์„ค์ •ํ•ด ๋ณด์‹ญ์‹œ์˜ค.
์ด์ „ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์กฐ๊ธฐ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ GPU๋ฅผ ์žก๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ์—ˆ๊ณ  sudo fuser -v /dev/nvidia* ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐพ์•˜๋Š”๋ฐ ์‹ค์ œ๋กœ GPU๋ฅผ ์žก๊ณ  ์žˆ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค... python ์ž์ฒด... ์ฃฝ์ด๊ณ  virtualenv์™€ jupyter๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด ์žฅ๋‚œ.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋ชจ๋“  ์˜ต์…˜์ด ์‹คํŒจํ•  ๋•Œ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์„ค์ •ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚ซ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GPU๋Š” GTX 1070 ๋ฐ CUDA 8.0 ๋ฐ CUDA 8.0์šฉ CUDNN 5.1์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž ์ฝ”๋“œ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ํ•˜๋“œ์›จ์–ด, Nvidia ๋˜๋Š” Google ์†Œํ”„ํŠธ์›จ์–ด ์ƒํƒœ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋Š” ์–ธ์ œ๋“ ์ง€ ์ฆ๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์žฌ๋ถ€ํŒ…ํ•˜๋ฉด ๋™์ผํ•œ ์‚ฌ์šฉ์ž ์ฝ”๋“œ๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๋กœ, ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์–ด๋””์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ Windows ์žฅ์น˜ ๊ด€๋ฆฌ์ž๋Š” ๋””์Šคํ”Œ๋ ˆ์ด ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•ด 21.21.13.7651์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

connect  84557d348c06492e80ff0304d516367b
2017-08-11 15:51:41.974028: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-08-11 15:51:41.974536: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-08-11 15:51:41.974923: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-08-11 15:51:41.975194: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๋กœ, ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์–ด๋””์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ Windows ์žฅ์น˜ ๊ด€๋ฆฌ์ž๋Š” ๋””์Šคํ”Œ๋ ˆ์ด ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•ด 21.21.13.7651์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

connect  84557d348c06492e80ff0304d516367b
2017-08-11 15:51:41.974028: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-08-11 15:51:41.974536: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-08-11 15:51:41.974923: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-08-11 15:51:41.975194: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

@ggranum ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ €์—๊ฒŒ

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

์ œ ๊ฒฝ์šฐ์—๋Š” NVIDIA GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์™„์ „ํžˆ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? CUDA 8.0 ๋ฐ cuDNN 5.1์ด ํฌํ•จ๋œ Ubuntu 16.04์—์„œ TF 1.3.0์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Anaconda๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์ž‘์œ„๋กœ 4 ์ผ ์ „์— ๋‚˜๋„์ด ์˜ค๋ฅ˜๋ฅผ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:05:00.0 Total memory: 10.91GiB Free memory: 10.30GiB 2017-09-05 07:47:05.397839: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x30028e0 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.401343: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 1 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:06:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.658932: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x2ffe910 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.659690: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 2 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:09:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.898536: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x2ffa940 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.899294: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 3 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:0a:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.903197: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 1 2 3 2017-09-05 07:47:05.903209: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y Y Y Y 2017-09-05 07:47:05.903215: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 1: Y Y Y Y 2017-09-05 07:47:05.903218: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 2: Y Y Y Y 2017-09-05 07:47:05.903223: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 3: Y Y Y Y 2017-09-05 07:47:05.903236: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:05.903242: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:05.903248: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:05.903252: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:20.297138: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:20.297190: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:20.297206: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:20.297220: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:24.845499: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:24.845534: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:24.845542: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:24.845548: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:34.884524: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 2017-09-05 07:47:34.884597: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM 2017-09-05 07:47:34.884616: F tensorflow/core/kernels/conv_ops.cc:672] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

4๊ฐœ์˜ 1080ti GPU๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ nvidia-smi๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋‹ค์Œ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

-------------------------------------------------- ---------------------------+
| ํ”„๋กœ์„ธ์Šค: GPU ๋ฉ”๋ชจ๋ฆฌ |
| GPU PID ์œ ํ˜• ํ”„๋กœ์„ธ์Šค ์ด๋ฆ„ ์‚ฌ์šฉ๋ฒ• |
|=================================================== ==============================|
| 0 1422 G /usr/lib/xorg/Xorg 279MiB |
| 0 3530G ์ปดํ”ผ์ฆˆ 195MiB |
| 0 11249 C /home/simon/anaconda3/bin/python 10157MiB |
| 1 11249 C /home/simon/anaconda3/bin/python 10611MiB |
| 2 11249 C /home/simon/anaconda3/bin/python 10611MiB |
| 3 11249 C /home/simon/anaconda3/bin/python 10611MiB |
+---------------------------------------------------------------- --------------------------+

๊ทธ๋ž˜์„œ ์–ด๋–ค ์ด์œ ๋กœ ํŒŒ์ด์ฌ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์„ ์ฃฝ์ด๋ฉด ๋‚ด jupyter ๋…ธํŠธ๋ถ์ด ์ฃฝ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ์ข€๋น„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‹œ๋„ํ–ˆ๋‹ค.

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

GPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด์ง€ ๋งŒ ์—ฌ์ „ํžˆ ๋™์ผํ•œ cuDDN ํ•ธ๋“ค ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. TF๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” CUDA, cuDNN, Anaconda.

์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

TensorFlow 1.3์€ cuDNN 6์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
cuDNN ์„ค์น˜๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค.

๊ณ ๋งˆ์›Œ, Gunan - ๋ถˆํ–‰ํžˆ๋„ ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. cuDNN 6์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์—ฌ์ „ํžˆ cuDNN์ด ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. GPUptions๋ฅผ ์ง์ ‘ ์„ค์ •ํ•ด๋„ ์‚ฌ์šฉ๋˜๋Š” GPU ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์ด ์ค„์–ด๋“ค๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. GPU ๋ฉ”๋ชจ๋ฆฌ๋Š” Python์ด ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด Jupyter ๋…ธํŠธ๋ถ์ด ๋‹ซํž™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฑฐ์˜ 4์ผ ๋™์•ˆ ์ด๊ฒƒ์— ๋งค๋‹ฌ๋ ธ๊ณ  ๋‚ด๊ฐ€ ์˜จ๋ผ์ธ์—์„œ ๋ณธ ๋ชจ๋“  ์ œ์•ˆ์„ ์†Œ์ง„ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด TF 1.3 ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ ๋•Œ๋ฌธ์— ๋ฏธ์ณ๊ฐ€๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด:

๊ฐ€๋” CUBLAS ์˜ค๋ฅ˜๋„ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ด๊ฒƒ์„ํ–ˆ๋‹ค :

cd /usr/local/cuda/samples/7_CUDALibraries/simpleCUBLAS
make
./simpleCUBLAS

CUBLAS๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์Œ์— ๋‚˜๋Š” ์ด๊ฒƒ์„ํ–ˆ์Šต๋‹ˆ๋‹ค (์กฐ์–ธ์— ๋”ฐ๋ผ)

sudo rm -f ~/.nv

๊ทธ๋ฆฌ๊ณ  ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑด๋ฐฐ..... 4์ผ์„ ๋‚ญ๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์„ ๊ตฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@SimonWalsh1000 ์„ฑ๊ณต ํ–ˆ์Šต๋‹ˆ๋‹ค!! ๊ฐ์‚ฌ ํ•ด์š”

ํ™ˆ ๊ฒฝ๋กœ(Ubuntu์˜ ๊ฒฝ์šฐ)์—์„œ .theanorc๋ฅผ ํ™•์ธํ•˜๊ณ  cnmem์„ ๋” ์ž‘๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.... ์•„๋งˆ๋„ cnmem=0.8์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

GTX 1070์ด ์„ค์น˜๋œ Windows 10์—์„œ ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” cudnn 7.0.2๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค
vs 6.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

cuda_8.0.61_win10.exe
cudnn-8.0-windows10-x64-v6.0.zip
python-3.6.2-amd64.exe

์—ฌ๊ธฐ์— ์ „์ฒด ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.
http://klaatuveratanecto.com/installing-tensorflow-gpu-windows-10-running-image_retraining/

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ์งˆ๋ฌธ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ์ด์œ ๋Š” tensorflow๋ฅผ ๋™์‹œ์— ๋‘ ๋ฒˆ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ €๋Š” ๋ณดํ†ต ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ์— Jupyter ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ”„๋กœ์ ํŠธ์— PyCharm์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. jupyter notebook์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š์œผ๋ฉด Pycharm์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.


์œˆ๋„์šฐ10 64,
์—”๋น„๋””์•„ ํƒ€์ดํƒ„X,
๋“œ๋ผ์ด๋ฒ„ 385.41,
์ฟ ๋‹ค 8.0.60
์ฟ ๋˜ 6.0
ํŒŒ์ด์ฌ 3.5.2
ํ…์„œํ”Œ๋กœ 1.3

@strickon์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” tensorflow ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋…ธํŠธ๋ถ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ Windows ํ„ฐ๋ฏธ๋„์—์„œ python + tensorflow๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋…ธํŠธ๋ถ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ (GPU ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ) Windows ํ„ฐ๋ฏธ๋„์—์„œ Python์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! tensorflow๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋‚˜์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ Windows 10, cuda 8 ๋ฐ cudnn 6์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฆ„: ์ฟผ๋“œ๋กœ K620
๋ฉ”์ด์ €: 5 ๋งˆ์ด๋„ˆ: 0 memoryClockRate(GHz) 1.124
pci๋ฒ„์ŠคID 0000:01:00.0
์ด ๋ฉ”๋ชจ๋ฆฌ: 2.00GiB
์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 1.66GiB

๊ฑฐ์˜ ๋™์ผํ•œ ๋‹จ๊ณ„๊ฐ€ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ–ˆ๋Š”์ง€ ๊ฑฐ์˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ชจ๋“  ์ฐฝ์„ ๋‹ซ๊ณ  pycharm์—์„œ ์—ด๋ฆฐ ๋‹ซํžŒ python ํ„ฐ๋ฏธ๋„์„ ๋‹ซ์Šต๋‹ˆ๋‹ค. ๊ต์œก ์ง„ํ–‰ ์ƒํ™ฉ์„ ํ‘œ์‹œํ•˜๊ณ  ๋‹ค์‹œ ์—ด๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „์— ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์—ฌ ์—ด๋ฆฐ ์ฐฝ์„ ํฌํ•จํ•˜์—ฌ ์˜ค๋ฅ˜ ์—†์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ๋œ ์ด์ „ ์˜ค๋ฅ˜๋Š” ์ง์ ‘์ ์ธ ๋‹จ์„œ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ---

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,
๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  sudo๋กœ ํŒŒ์ด์ฌ์„ ์‹คํ–‰ํ•˜๋ฉด ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@SimonWalsh1000 ๋‹น์‹ ์€ ๋‚˜์˜ ์˜์›…์ž…๋‹ˆ๋‹ค!! ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

@hesamaraghi sudo ๋‹ฌ๋ฆฌ๋Š” ๊ฒƒ๋„ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๋ฅผ nvidia-persistenced ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฃจํŠธ๊ฐ€ ์•„๋‹Œ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์›๋ž˜ ์˜๊ฒฌ ์ฐธ์กฐ: https://github.com/tensorflow/tensorflow/issues/14048#issuecomment -340898847

Ubuntu 16.04 ๋ฐ cuda-8.0(GTX1080Ti ํฌํ•จ)์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. @SimonWalsh1000์ด ์ œ๊ณตํ•œ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ์™„๋ฒฝํ•˜๊ฒŒ ํšจ๊ณผ๊ฐ€ sudo rm -rf ~/.nv/ ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค). @SimonWalsh1000 ๋•๋ถ„์— ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค...

@SimonWalsh1000 ์ •๋ง ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ณ ๋งˆ์›Œ!

@SimonWalsh1000 ๋ถ€์ ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!!!

GTX1070Ti๊ฐ€ ์„ค์น˜๋œ Windows 10, CUDA 8.0, cuDNN 6.1์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์œ ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. annconda spyder IDE์—์„œ tensorflow ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ annconda ํ”„๋กฌํ”„ํŠธ์—์„œ ๋‹ค๋ฅธ tensorflow ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ŠคํŒŒ์ด๋” IDE๋ฅผ ๋‹ซ์•„์„œ ํ•ด๊ฒฐ
@lockywolf ๋งž์Šต๋‹ˆ๋‹ค

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. @strickon ์˜ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ CUDA8.0์šฉ cuDNN 6.0์„ CUDA8.0 ์šฉ cuDNN 7.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ ์‹œ ์‹œ์Šคํ…œ:

  • ์œˆ๋„์šฐ 10
  • ์ฟ ๋‹ค8.0
  • cuDNN6.0
  • ์•„๋‚˜์ฝ˜๋‹ค3.5(python3.5)
  • GeForce 840M ๋ฉ”์ด์ €: 5 ๋งˆ์ด๋„ˆ: 0 memoryClockRate(GHz): 1.124
  • 2.00GiB ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 1.66GiB

ํ•ด๊ฒฐ ํ›„ ์‹œ์Šคํ…œ:

  • ์œˆ๋„์šฐ 10
  • ์ฟ ๋‹ค8.0
  • cuDNN7.0
  • ์•„๋‚˜์ฝ˜๋‹ค3.5(python3.5)
  • GeForce 840M ๋ฉ”์ด์ €: 5 ๋งˆ์ด๋„ˆ: 0 memoryClockRate(GHz): 1.124
  • 2.00GiB ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 1.66GiB

์ด ๋ฌธ์ œ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „๊ณผ ํ•˜๋“œ์›จ์–ด ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @chleibig ๋„ GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด : config.gpu_options.allow_growth = True tensorflow ์„ธ์…˜์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์ฟ ๋‹ค 8, TF 1.4, ์ฟ ๋‹ค 6

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

sudo rm -rf ~/.nv

๊ฐ™์€ ์งˆ๋ฌธ. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚ด ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: ์ง€ํฌ์Šค GTX 1080
์ด ๋ฉ”๋ชจ๋ฆฌ: 7.92GiB ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 2.50GiB
ํ…์„œํ”Œ๋กœ: GPU-1.4.0

๋‚˜๋Š” ํ•˜๋‚˜์˜ GPU๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์ง€๋งŒ ์„ธ ๊ฐœ์˜ tensorflow ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ฝ”๋“œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=tf.ConfigProto(gpu_options=gpu_options))

๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ tensorflow ์ธ์Šคํ„ด์Šค๋Š” ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ํ•˜๋‚˜๋งŒ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:672] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), ์•Œ๊ณ ๋ฆฌ์ฆ˜(&A)

์™œ์š”? gpu ๊ตฌ์„ฑ์ด ๋„ˆ๋ฌด ์ž‘์Šต๋‹ˆ๊นŒ? gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด. ๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•ด๋ณผ๊ฒŒ.

๋‚ด ์†”๋ฃจ์…˜์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค ....

2017๋…„ 12์›” 19์ผ 08:20์— tbchj [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๊ฐ™์€ ์งˆ๋ฌธ. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?
๋‚ด ์ƒํ™ฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: ์ง€ํฌ์Šค GTX 1080
์ด ๋ฉ”๋ชจ๋ฆฌ: 7.92GiB ์—ฌ์œ  ๋ฉ”๋ชจ๋ฆฌ: 2.50GiB
ํ…์„œํ”Œ๋กœ: GPU-1.4.0

๋‚˜๋Š” ํ•˜๋‚˜์˜ GPU๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ์ง€๋งŒ ์„ธ ๊ฐœ์˜ tensorflow ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ฝ”๋“œ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=tf.ConfigProto(gpu_options=gpu_options))

๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ tensorflow ์ธ์Šคํ„ด์Šค๋Š” ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ํ•˜๋‚˜๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜:

E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] cudnn์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ•ธ๋“ค: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:338]์„ ์‚ญ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
cudnn ํ•ธ๋“ค: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:672] ํ™•์ธ ์‹คํŒจ:
์ŠคํŠธ๋ฆผ->๋ถ€๋ชจ()->GetConvolveAlgorithms( conv_parameters.
ShouldIncludeWinogradNonfusedAlgo() ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

์™œ์š”? gpu ๊ตฌ์„ฑ์ด ๋„ˆ๋ฌด ์ž‘์Šต๋‹ˆ๊นŒ? gpu_options = tf.GPUOptions(per_process_gpu_
memory_fraction=0.3)
์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด. ๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ์„ ์›ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•ด๋ณผ๊ฒŒ.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-352670885 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AJq-HpINYs1Uae6ghIW3qKCD56SUDhFeks5tB3HZgaJpZM4Lc7S1
.

--
์ตœ์ƒ์˜
์‹œ๋ชฌ

SLF์›”์‹œ MD MRCP FFRRCSI
[email protected]

์ œ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ๊ฒฝ์—์„œ ํ† ์น˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ƒ๊ฐ์—... CUDNN_STATUS_INTERNAL_ERROR๋Š” cudnn์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” ipython ํ™˜๊ฒฝ์—์„œ cudnn์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ jupyter notebook์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์œผ๋ฉฐ ์ง€๊ธˆ๊นŒ์ง€ ์–ด๋–ค ์ œ์•ˆ๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ ์‚ฌ์–‘์˜ Windows 10์ด ์„ค์น˜๋œ Asus Zenbook Pro ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

imagen

๋‚ด GPU ์‚ฌ์–‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

imagen

์ €๋Š” ์ด ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ฅด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: https://www.tensorflow.org/get_started/mnist/pros, ์—ฌ๊ธฐ์„œ 1) softmax ํšŒ๊ท€ ๋ฐ 2) MNIST ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์žˆ๋Š” ๋‹ค์ธต CNN์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ›ˆ๋ จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์ฝ”๋“œ๋Š” MNIST_Tutorial.zip ์ž…๋‹ˆ๋‹ค. zip์—๋Š” MNIST_softmax_regression.py ๋ฐ MNIST_multilayer_CNN.py์˜ 2๊ฐœ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

1) MNIST_softmax_regression.py๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
imagen
๋ณด์‹œ๋‹ค์‹œํ”ผ GPU๊ฐ€ ์‚ฌ์šฉ ์ค‘์ด๋ฉฐ ํŠœํ† ๋ฆฌ์–ผ์— ๋”ฐ๋ฅด๋ฉด ์ตœ์ข… ์ •ํ™•๋„๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์•ฝ 92%์ž…๋‹ˆ๋‹ค.

2) ๊ทธ๋Ÿฌ๋‚˜ MNIST_multilayer_CNN.py๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํŒŒ์ด์ฌ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.
imagen

์ด์ „ ์ œ์•ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ 2๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:

๊ทธ๋ฆฌ๊ณ 

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
with tf.Session(config=config) as sess:

๋‘ ๋ฒˆ์งธ ๊ฒƒ์€ ๋‹ค์Œ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜์ง€๋งŒ ๊ทธ๋“ค ์ค‘ ๋ˆ„๊ตฌ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

imagen

๋ณด์‹œ๋‹ค์‹œํ”ผ, tensorflow๋Š” ๋ถ„๋ช…ํžˆ ์„ฑ๊ณตํ•  ๋•Œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์‹œ๋„ํ•˜์ง€๋งŒ(CUBLAS_STATUS_ALLOC_FAILED) CUDNN_STATUS_NOT_INITIALIZED ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณ  ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

Btw, ์ด ์ง€์นจ์˜ ๋์— ์žˆ๋Š” ๋Œ€์ฒด ์ ‘๊ทผ ๋ฐฉ์‹์— ๋”ฐ๋ผ tensorflow๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. http://www.python36.com/install-tensorflow-gpu-windows/
imagen

์ด CUDA ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
imagen
imagen

๊ทธ๋ฆฌ๊ณ  ์ด .whl ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ tensorflow๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
imagen

๋‹ค์Œ์€ python, pip ๋ฐ conda์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค.
imagen

๋„์›€์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์‹ญ๋‹ˆ๊นŒ,
๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • 1:
์œˆ๋„์šฐ 10 ํ”„๋กœ 64๋น„ํŠธ
GPU ์ •๋ณด
์ฟ ๋‹ค 8.0
์ปค๋“œ 6.0
ํ…์„œํ”Œ๋กœ 1.4
ํŒŒ์ด์ฌ 3.6.4

์„ค์ •2:
์œˆ๋„์šฐ 10 ํ”„๋กœ 64๋น„ํŠธ
GPU ์ •๋ณด
์ฟ ๋‹ค 8.0
์ปค๋“œ 6.0
ํ…์„œํ”Œ๋กœ 1.4
ํŒŒ์ด์ฌ 3.6.2

์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์œ„์™€ ๋งค์šฐ ์œ ์‚ฌํ•œ ์„ค์ •์„ ํ•˜๊ณ  ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์œˆ๋„์šฐ 10
GPU
ํ…์„œํ”Œ๋กœ 1.5
์ฟ ๋‹ค 9.0.176
์ปค๋“œ 7
ํŒŒ์ด์ฌ 3.6.4, ์•„๋‚˜์ฝ˜๋‹ค

๊ตฌ์„ฑ ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ "CUDNN_STATUS_NOT_INITIALIZED" ์˜ค๋ฅ˜ ์ง‘ํ•ฉ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

.nv ํด๋”์— ํ•ด๋‹นํ•˜๋Š” ํด๋”๊ฐ€ Windows์—์„œ ์–ด๋””์— ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์–ด์„œ @SimonWalsh1000 ์†”๋ฃจ์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

@HeinzBenjamin , ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๊นŒ?

ํŽธ์ง‘: ์—ฌ์ „ํžˆ ์–ด๋ฆฌ๋‘ฅ์ ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ tensorflow 1.5 ๋ฐ CUDA 9๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ CUDA 9.0์„ ์„ค์น˜ํ•œ ํ›„ ๋‚ด ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ Nvdia ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  PC๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

์–ด์ œ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ํ–ˆ๊ณ  ์˜ค๋Š˜ ์•„์นจ์— ์šฐ๋ถ„ํˆฌ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์—ˆ๊ณ  ์ด์ œ ๋‚ด ์ฝ”๋“œ๊ฐ€ ์ด๊ฒƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

2018-02-11 07:54:57.097712: E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ: CUDNN_STATUS_INTERNAL_ERROR
2018-02-11 07:54:57.097756: E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
2018-02-11 07:54:57.097767: F tensorflow/core/kernels/conv_ops.cc:667] ๊ฒ€์‚ฌ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgoithms(), &algor

์‹œ์Šคํ…œ์„ ์ˆ˜์‹ญ ๋ฒˆ ์žฌ๋ถ€ํŒ…ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋ช‡ ๋ฒˆ์˜ ์žฌ๋ถ€ํŒ… ํ›„ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2018-02-11 07:19:33.487404: I tensorflow/stream_executor/cuda/cuda_dnn.cc:393] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 384.111.0 2018-02-11 07:19:33.487423 cuda_dnn.cc:352] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM 2018-02-11 07:19:33.487439: F tensorflow/core/kernels/conv_ops.cc:667] ๊ฒ€์‚ฌ ์‹คํŒจ: stream->parent()->GetCon conv_parameters.ShouldIncludeWinogradNonfusedAlgo() ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๊ทธ๋Ÿฌ๋‚˜ 390.25๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด์ œ ์ฒซ ๋ฒˆ์งธ ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋‹ค๋ฅธ tensorflow ์ฝ”๋“œ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ nv ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ถ„ํˆฌ 17.10, GTX 1060 6GB

CUDA 9.0 ๋ฐ GT 750M์ด ์„ค์น˜๋œ Windows 10์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. config.gpu_options.per_process_gpu_memory_fraction = 0.7์„ ์‚ฌ์šฉํ•˜์—ฌ GPU ์‚ฌ์šฉ๋Ÿ‰์„ 0.7๋กœ ์ œํ•œํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๊ฒŒ์‹œํ•œ ๊ฒƒ์ฒ˜๋Ÿผ 0.7๋ณด๋‹ค ๋†’์€ ๊ฐ’์€ Python์„ ์ถฉ๋Œ์‹œํ‚ต๋‹ˆ๋‹ค.

๋˜ํ•œ ์‚ผ์œ„์ผ์ฒด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹ ํ•œ ํ›„:

CUDNN_STATUS_NOT_INITIALIZED
conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)

@zzhang68 ์˜ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค ... 9.0์ด ์ด์ „ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
_๊ทธ๋ฆฌ๊ณ  ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค!_

์œˆ๋„์šฐ 10 | GTX 980 Ti
CUDA 9.0 (๊ตฌ์‹ ๋“œ๋ผ์ด๋ฒ„์™€ ํ•จ๊ป˜ ์ œ๊ณต๋จ!!!!)
๊ฒฝ๋กœ์˜ \cudnn-9.0-windows10-x64-v7\cuda\bin(cudann64_7.dll)

ํŒŒ์ด์ฌ 3.6 ๋ฏธ๋‹ˆ์ฝ˜๋‹ค
ํ…์„œํ”Œ๋กœ์šฐ GPU 1.5.0

๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ•ฉ๋‹ˆ๋‹ค. tf1.5 py2.7 ํƒ€์ดํƒ„ x cuda8.
config.gpu_options.allow_growth = True
์ž‘๋™ํ•˜์ง€

CUDA 9.0 ๋ฐ GTX 1060์ด ์„ค์น˜๋œ Windows 10์—์„œ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ด์ฌ 3.5
ํ…์„œํ”Œ๋กœ์šฐ GPU 1.5.0
์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. NVIDIA ๋””์Šคํ”Œ๋ ˆ์ด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  PC๋ฅผ ์žฌ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!

@SimonWalsh1000 , ์ •๋ง ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@strickon ๋ฐ @ggranum ์˜ ์†”๋ฃจ์…˜๊ณผ ๋“œ๋ผ์ด๋ฒ„ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ ํ•„์š”ํ•  ๋•Œ๊นŒ์ง€ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ์ถ•์†Œํ•˜๋Š” ๋งž์ถคํ˜• ์ „์› ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด GPU ๋“œ๋ผ์ด๋ฒ„๋Š” 2017๋…„ 12์›”์ด์—ˆ๊ณ  ์ตœ์‹ ์€ 2018๋…„ 2์›” 26์ผ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ tensorflow, CUDA ๋ฒ„์ „, cuDNN ๋ฒ„์ „ ๋ฐ GPU ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์‚ฌ์–‘:
ํ…์„œํ”Œ๋กœ 1.6
cuDNN v7.0.4(2017๋…„ 11์›” 13์ผ), CUDA 9.0์šฉ(๋‚ด TF๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ์ด ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ)

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. CUDA 9.1๊ณผ CUDA 9.0์„ ๋ชจ๋‘ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CUDA๋ฅผ ์„ค์น˜ํ•œ ํ›„(Geforce Experience ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด) GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋‹ค์‹œ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. Keras์˜ ๋ฐฑ์—”๋“œ TensorFlow๋Š” ์˜ค๋Š˜ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ CUDA 9.0์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์„ค์น˜ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๋Ÿฐ ๋‹ค์Œ https://developer.nvidia.com/rdp/cudnn-download ์—์„œ cuDNN 7.0.5(์ตœ์‹  7.1 ๋ฒ„์ „ ์•„๋‹˜)๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ ๋‹ค์Œ ์••์ถ•์„ ํ’€๊ณ  bin, include ๋“ฑ ํด๋”๋ฅผ C:\Program์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 ํด๋”. ์ด์ œ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๋„์›€์— ๊ฐ์‚ฌํ•˜๊ณ  cnDNN-9.1์—์„œ cnDNN-9.0์œผ๋กœ cuCNN์„ ๋ถ„ํ•ดํ•˜๋ ค๊ณ  ์‹œ๋„ํ•œ ํ›„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๋‚ด ํ™˜๊ฒฝ์€ Centos7 + CUDA 9.0 + Tensorflow 1.6์ž…๋‹ˆ๋‹ค.

Python3.5, ์šฐ๋ถ„ํˆฌ 16.04, tf1.5์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜
GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ 390.42 ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„,

๋ฐฉ๊ธˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
" E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ: CUDNN_STATUS_INTERNAL_ERRORE tensorflow/stream_executor/cuda/cuda_dnn.cc:352] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAMF tensorflow/core/kernels/conv_ops.cc:605] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms) "

๋‹ค์Œ์œผ๋กœ ํ•ด๊ฒฐ:
1- NVIDIA Geforce920M ๋“œ๋ผ์ด๋ฒ„ ์—…๋ฐ์ดํŠธ
2- ๋‹ค์Œ๊ณผ ๊ฐ™์ด tf ์„ธ์…˜์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ)
3- PC ๋‹ค์‹œ ์‹œ์ž‘

๊ทธ ํ›„ ๋” ์ •ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
"cuDNN7.1์„ ์ฐพ์•˜์ง€๋งŒ cuDNN7.0์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ"

๊ทธ๋ฆฌ๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•:
๋‚˜๋จธ์ง€(tf,cuda,..)๋ฅผ cuDNN์— ๋งž๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋Œ€์‹  ๋‚˜๋จธ์ง€๋ฅผ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด cuDNN7.0์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
(cuDNN์„ 7.1์—์„œ 7.0.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ) ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

Cnn_Mnist.py๋ฅผ ์‹คํ–‰ํ•  ๋•Œ๋„ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์ •๋ณด:

  • Window10 + tensorflow_gpuV1.6 + cudav9.0, cudnnv7.0 + Python3.5(์•„๋‚˜์ฝ˜๋‹ค) + GeForce 920MX
| NVIDIA-SMI 385.54                 Driver Version: 385.54                    |
|-------------------------------+----------------------+----------------------+
| 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 920MX      WDDM  | 00000000:01:00.0 Off |                  N/A |
| N/A   37C    P0    N/A /  N/A |     84MiB /  2048MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     11988      C   ...naconda3\envs\tensorflow_GPU\python.exe N/A      |
+-----------------------------------------------------------------------------+

์˜ค๋ฅ˜ ์ •๋ณด:

2018-03-20 13:38:27.439071: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2018-03-20 13:38:27.443473: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2018-03-20 13:38:27.449591: F C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\kernels\conv_ops.cc:717] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

๋ชจ๋‘์˜ ๋„์›€์„ ์ง„์‹ฌ์œผ๋กœ ๋ฐ”๋ž๋‹ˆ๋‹ค :D

ํ•„์ž์˜ ๊ฒฝ์šฐ(Windows 10) ์ž˜๋ชป๋œ ๋ฒ„์ „์˜ cuDNN์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. TensorFlow์˜ ๊ณต์‹ ์ง€์นจ์„ ์ฒ ์ €ํžˆ ๋”ฐ๋ž์ง€๋งŒ ์‹ค์ˆ˜๋กœ CUDA 9.1์šฉ ๋ฒ„์ „ 7.0.5๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ๊ณ  TF๋Š” ๋ช…์‹œ์ ์œผ๋กœ CUDA 9.0์„ ํ˜ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

cuDNN ์‹ค์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์ž๋งˆ์ž ๋‚ด convnet์ด ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค ๐Ÿ’ฏ ๐Ÿ‘ ๐Ÿฅ‡ :)

๋™์ผํ•œ ๋ฌธ์ œ tf 1.2, cuda 8.0, cudnn 5.1
Nvidia ์—…๋ฐ์ดํŠธ๋œ ๋“œ๋ผ์ด๋ฒ„

๊ธ€์Ž„, ๋‚˜๋Š” cuda์— ๋”ฐ๋ผ nvidia ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์œผ๋ฉฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธ€์Ž„, ๊ธ€์Ž„. ์ž˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

์‚ฌ์šฉ: cudnn-9.0-windows10-x64-v7 ๋ฐ tensorflow-gpu==1.7.0

tutorials\image\imagenet>python classify_image.py
์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจ: cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Œ: CUDNN_STATUS_INTERNAL_ERROR

์œ„์˜ ggranum์—์„œ ์„ธ ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ ๋ฌธ์ œ๋Š” ์ž˜๋ชป๋œ cudnn lib๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
cuda 9.0์ด ์žˆ์„ ๋•Œ cuda 9.1์— cudnn์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ cuda 9.0์šฉ cudnn์„ ๋‹ค์‹œ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

Win10/Anaconda3/tf-1.3/keras-2.1.3์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” .py ํŒŒ์ผ์˜ ๋งจ ์ฒ˜์Œ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

from __future__ import print_function, division
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session  
config = tf.ConfigProto()  
config.gpu_options.allow_growth = True  
set_session(tf.Session(config=config)) 

@serans1
์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค :)

@zzhang68 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ)

GTX 1070. ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋“œ๋ผ์ด๋ฒ„๋Š” 2017๋…„์— ๋งˆ์ง€๋ง‰์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ (2018๋…„ 5์›”) ์ปดํ“จํ„ฐ๋ฅผ ์žฌ์„ค์ •ํ•˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋” ์ด์ƒ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค

@zzhang68 ์†”๋ฃจ์…˜์—์„œ๋„ ์ €์—๊ฒŒ
Ubuntu16.04, tensorflow1.7, nvidia1080, cuda9.0, cudnn7.05.
๋“œ๋ผ์ด๋ฒ„๋ฅผ 390.59๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

tensorflow cpu๋ฅผ ์‚ฌ์šฉํ•˜๋Š” win10์˜ ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜... ์‹œ๋„

def run_inference_for_single_image(์ด๋ฏธ์ง€, ๊ทธ๋ž˜ํ”„):
graph.as_default() ์‚ฌ์šฉ:
๊ตฌ์„ฑ = tf.ConfigProto(
device_count = {'GPU': 0}
)
tf.Session(config=config)์„ ์„ธ์…˜์œผ๋กœ ์‚ฌ์šฉ:

@lwd1132438569 ์–ด๋–ค "์ตœ์‹  ๋ฒ„์ „"์„
์‹œ๋„ํ•˜๊ณ  ์‹ถ์ง€๋งŒ tensorflow๊ฐ€ ์ง€๊ธˆ '์ตœ์‹ ' ๋ฒ„์ „์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค....
๊ฐ์‚ฌ1

@vburca ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ jupyter ๋…ธํŠธ๋ถ์„ ์‚ฌ์šฉํ•˜๋ฉด GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ์ค„์€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!!

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค. ๋‚ด ๊ฒฝ์šฐ์—๋Š” tensorflow์˜ ๋ฒ„์ „์„ ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ–ˆ์œผ๋ฉฐ ๋‚ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ ๊ทธ ์ด์œ ๋Š” ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์•ฑ ์‹คํ–‰์„ ์™„๋ฃŒํ–ˆ์„ ๋•Œ ๊ทธ ๋ฌธ์ œ๋Š” ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

2018-09-03 22:50:26.576765: E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2018-09-03 22:50:26.576831: E tensorflow/stream_executor/cuda/cuda_dnn.cc:360] Possibly insufficient driver version: 390.77.0
[1]    8515 segmentation fault (core dumped)  python3 training.py

GTX1070
์ฟ ๋‹ค9.0
CUDA9.0์šฉ CUDNN7.1
ํ…์„œํ”Œ๋กœ์šฐ 1.10.1
hello world์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ tensorflow๋ฅผ ๋ฌธ์ œ ์—†์ด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์™œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์—†์Šต๋‹ˆ๋‹ค.............

ํ™•์‹คํžˆ cuda ๊ด€๋ จ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ, ๋‹ค๋ฅธ ๋ชจ๋“  cuda ๊ด€๋ จ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋ธ์„ ํ•™์Šต/ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.

@drproy2k ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ๋„ ํšจ๊ณผ์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ œ๊ฐ€ keras๋กœ ๋‹ค๋ฅธ jupyter ๋…ธํŠธ๋ถ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ด์—ˆ๊ณ  Pycharm์—์„œ keras ๊ต์œก์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ˆœํžˆ jupyter ๋…ธํŠธ๋ถ์„ ๋‹ซ๊ณ  ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

[ํ•ด๊ฒฐ] ์ œ ๊ฒฝ์šฐ์—๋Š” CUDA v9.2 ๋ฐ ํ•ด๋‹น cuDNN์„ ์„ค์น˜ํ–ˆ์ง€๋งŒ tensorflow์— ํ•„์š”ํ•œ CUDA v9.0 ์ „์šฉ cuDNN์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

https://developer.nvidia.com/rdp/cudnn-archive ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์˜ cuDNN์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์—ฌ๊ธฐ์—์„œ ๋‚˜์˜จ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค : https://developer.nvidia.com/cudnn

ํ™ฉ๊ธˆ ํŠธ๋ฆญ, ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

Restart ๊ฐ€ ๋‚˜์—๊ฒŒ๋„ ์†์ž„์ˆ˜๋ฅผ ์ผ์Šต๋‹ˆ๋‹ค ๐Ÿ‘
(ํ•˜์ง€๋งŒ ์™œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค)

cuDNN

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค. ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋Š” ๋ชจ๋ธ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
CUDA 9.0์šฉ cuDNN ๋ฒ„์ „ 7.0์„ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. cudnn64_7.dll ํŒŒ์ผ์„ ๊ต์ฒดํ•œ ํ›„ ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์ด convnet์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” DLL ๋ฒ„์ „=> 6.14.11.9020
๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ DLL ๋ฒ„์ „=> 6.14.11.9000
Tensorflow GPU ๋ฒ„์ „=>
์ฟ ๋‹ค ๋ฒ„์ „=> 9.0
ํŒŒ์ด์ฌ ๋ฒ„์ „=> 3.5
OS=> ์œˆ๋„์šฐ 10
๊ธฐํƒ€ ๋‹จ๊ณ„=> PATH ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•  BAT ํŒŒ์ผ์„ ๋งŒ๋“  ๋‹ค์Œ /k ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ CMD.EXE๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

GPU ์‚ฌ์šฉ๋Ÿ‰์„ ์ œํ•œํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ 16.04์—์„œ 3GB gtx 1060์„ ์‚ฌ์šฉํ•˜๋Š” ์ œ ๊ฒฝ์šฐ์—๋Š” gpu ์˜ต์…˜ per_process_gpu_memory_fraction์„ .7๋กœ ์„ค์ •ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋†’์œผ๋ฉด ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] cudnn ํ•ธ๋“ค์„ ํŒŒ๊ดดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] ํ™•์ธ ์‹คํŒจ: stream->parent()->GetConvolveAlgorithms(&algorithms)

tensorflow์— ์˜ํ•œ ์ž˜๋ชป๋œ ์˜ค๋ฅ˜ ๋ณด๊ณ ์˜ ๊ฒฝ์šฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „ํ˜€ ๊ด€๋ จ์ด ์—†์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์„œ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ์š”?

์ข‹์Šต๋‹ˆ๋‹ค. gpu_memory_fraction์„ 0.8์—์„œ 0.7๋กœ ๋‚ฎ์ถ”๋ฉด ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!

์‹ค์ˆ˜๋กœ tensorflow-gpu ๋ฅผ ๋ฒ„์ „ 1.6.0์—์„œ 1.18.0์œผ๋กœ

์ด๊ฒƒ์ด ๋‚ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด์—ˆ์Šต๋‹ˆ๋‹ค.

https://stackoverflow.com/questions/50622525/ which-tensorflow-and-cuda-version-combinations-are-compatible

์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค NVIDIA ์ข…์†์„ฑ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ํ•ญ์ƒ tensorflow ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๊ณ  ๋จผ์ € CUDA ์ข…์†์„ฑ๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

1๋‹จ๊ณ„: tensorflow ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. GPU๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด tensorflow์˜ CPU ๋ฒ„์ „์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

pip list | grep tensorflow

2๋‹จ๊ณ„: tensorflow-gpu ์ œ๊ฑฐ.

pip uninstall tensorflow

3๋‹จ๊ณ„: CUDA ๋ฐ cuDNN ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋ฅผ ์กฐ์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

-- ์ฟ ๋‹ค
cat /usr/local/cuda/version.txt
์ด๊ฒƒ์ด ์‹คํŒจํ•˜๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ cuda ๋ฒ„์ „ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
sudo find / -name version.txt

-- cuDNN
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
์‹คํŒจํ•  ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ cuda ๋ฒ„์ „ ํ…์ŠคํŠธ ํŒŒ์ผ์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค.
sudo find / -name cudnn.h

4๋‹จ๊ณ„: tensorflow-gpu, cuda ๋ฐ cudnn ๋ฒ„์ „์ด ์ด ํ‘œ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
image

์ œ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด tensorflow-gpu 1.6.0 ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
pip install tensorflow-gpu==1.6.0
์ด๊ฒƒ์ด ์ž‘๋™ํ•œ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค!

์šด์˜ ์ฒด์ œ: ์šฐ๋ถ„ํˆฌ 16.04
์ฟ ๋‹ค ๋ฒ„์ „: 9.0, V9.0.176
cuDNN ๋ฒ„์ „: 7.0
Tensorflow-gpu ๋ฒ„์ „: 1.6.0
ํŒŒ์ด์ฌ ๋ฒ„์ „: 3.5.0

ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค!

์ œ ๊ฒฝ์šฐ์—๋Š” VS ์ฝ”๋“œ์—์„œ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ jupyter ๋…ธํŠธ๋ถ์„ ๋‹ซ๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค. Close jupyter notebook์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š”์ด ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๋‹ค.
์ œ ๊ฒฝ์šฐ์—๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ›ˆ๋ จํ•˜๋Š” ๋™์•ˆ Jupyter ๋…ธํŠธ๋ถ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
Jupyter ๋…ธํŠธ๋ถ์„ ๋‹ซ์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

(๋‚ด GPU ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋„ˆ๋ฌด ๋†’์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.)

๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. win10 tensorflow-gpu1.8.0 cuda 9.0 NVIDA gtx1050Ti๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ cudann ๋ฒ„์ „์„ 7.0์—์„œ 7.1๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค(gtx1080, cuda 9.2, tfversion = 1.12.0). ๊ทธ๋ž˜์„œ ์ œ ๊ฒฝ์šฐ์—๋Š” Jupyter notebook ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ๊ทธ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋œ ๊ฒƒ์€ @RoytenBerge๊ฐ€ ๋งํ–ˆ๋“ฏ์ด jupyter ์ปค๋„์„ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ @Codersadis์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ค„์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” .py ํŒŒ์ผ์˜ ๋งจ ์ฒ˜์Œ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

__future__์—์„œ import print_function, ๋‚˜๋ˆ—์…ˆ
ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
keras.backend.tensorflow_backend์—์„œ set_session ๊ฐ€์ ธ์˜ค๊ธฐ
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
set_session(tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ))

@drproy2k ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €์—๊ฒŒ๋„

์ด ์˜ค๋ฅ˜๋Š” RAM ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋กœ ์ธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. DDR3 ๋˜๋Š” DDR4 RAM์„ 32GB ๋˜๋Š” 64GB๋กœ ๋Š˜๋ฆด ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ์ถ”๋ก ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘/ํฌ๊ธฐ๋ฅผ ์ค„์ด์‹ญ์‹œ์˜ค.

GPU๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. SLI์— 2๊ฐœ์˜ X 1080Ti ์นด๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฒ„์ „ ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.
https://www.tensorflow.org/install/source#tested_source_configurations. ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ:-
TF 1.12
TF GPU 1.9
์ฟ ๋‹ค 8

GeForce GTX 970, CUDNN 7.4.1, CUDA 9.0.176, TF-gpu 1.12.0๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ

conda ํ™˜๊ฒฝ ๋‚ด์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์› ๋ฒ„์ „์˜ tensorflow๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: > conda install tensorflow-gpu ์‚ฌ์šฉ)

์ด ๋ฒ„์ „์ด ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์‹ค์ œ๋กœ ์ข‹์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ). ์‚ฌ์šฉํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ๋ฒ„์ „์€ conda ํ™˜๊ฒฝ ๋‚ด์—์„œ pip ์„ค์น˜ ๊ฐ€๋Šฅ ๋ฒ„์ „ https://www.tensorflow.org/install/pip ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์„ค์น˜ํ•œ CUDA 9.0๊ณผ ํ•จ๊ป˜ CUDNN ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Cuda 10.0 ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. V10 CUDNN์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ V9.0 CUDNN์œผ๋กœ ๊ต์ฒดํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค!
์ด๊ฒƒ์€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์˜ ๊ฐ„๊ณผ์˜€์œผ๋ฉฐ, ๋˜๋Œ์•„๋ณด๋ฉด ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... ์—ฌ๊ธฐ๊นŒ์ง€ ํ–ˆ๊ณ  ์‹คํ—˜์— ์ง€์ณค์œผ๋ฉด https://aaronjencks.blogspot์— ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค

@kheffah ๋Š”
GPU GT 840M, ์ปดํ“จํŒ… ํ˜ธํ™˜ 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0. ์œˆ๋„์šฐ 8 x64

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)

์ด๊ฒƒ์€ ์ŠคํŒŒ์ด๋”์˜ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ 0.7๊ณผ ์„ฑ์žฅ ํŠธ๋ฆญ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ถˆ์šด

classifier.fit_generator(training_set,
                    steps_per_epoch=32,
                    epochs=25,
                    verbose=1,
                    validation_data=test_set,
                    validation_steps=6.25)
Epoch 1/25
Traceback (most recent call last):

  File "<ipython-input-4-6d704090deaf>", line 11, in <module>
    validation_steps=6.25)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training_generator.py", line 217, in fit_generator
    class_weight=class_weight)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", line 1217, in train_on_batch
    outputs = self.train_function(ins)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", line 2715, in __call__
    return self._call(inputs)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", line 2675, in _call
    fetched = self._callable_fn(*array_vals)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
    run_metadata_ptr)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))

UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
     [[{{node conv2d_1/convolution}} = Conv2D[T=DT_FLOAT, _class=["loc:@training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter"], data_format="NCHW", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_1/kernel/read)]]
     [[{{node loss/mul/_91}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_609_loss/mul", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

ํ…์„œํ”Œ๋กœ 1.7๋กœ ์ „ํ™˜

2019๋…„ 1์›” 3์ผ ๋ชฉ์š”์ผ 19:29 maxi.wu < ์•Œ๋ฆผ @github.com ์ž‘์„ฑ:

@kheffah https://github.com/kheffah conda ๋‚ด์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
TF์™€ Keras๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ pip๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
GPU GT 840M, ์ปดํ“จํŒ… ํ˜ธํ™˜ 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0.
์œˆ๋„์šฐ 8 x64

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” ์ž˜ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], ๋ชจ์–‘=[2, 3], ์ด๋ฆ„='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], ๋ชจ์–‘=[3, 2], ์ด๋ฆ„='b')
c = tf.matmul(a, b)

์ด๊ฒƒ์€ ์ŠคํŒŒ์ด๋”์˜ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฉ”๋ชจ๋ฆฌ 0.7๊ณผ ์„ฑ์žฅ ํŠธ๋ฆญ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
๋ถˆ์šด

classifier.fit_generator(training_set,
steps_per_epoch=32,
์‹ ๊ธฐ์› = 25,
์žฅํ™ฉํ•˜๋‹ค=1,
validation_data=test_set,
validation_steps=6.25)
์‹ ๊ธฐ์› 1/25
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):

ํŒŒ์ผ "", 11ํ–‰,
validation_steps=6.25)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\legacy\interfaces.py", ์ค„ 91, ๋ž˜ํผ
return func( args, * kwargs)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", 1418ํ–‰, fit_generator
initial_epoch=initial_epoch)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training_generator.py", 217ํ–‰, fit_generator
class_weight=class_weight)

"c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py" ํŒŒ์ผ, 1217ํ–‰, train_on_batch
์ถœ๋ ฅ = self.train_function(ins)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", ๋ผ์ธ 2715, __call__
๋ฐ˜ํ™˜ self._call(์ž…๋ ฅ)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", ๋ผ์ธ 2675, _call
๊ฐ€์ ธ์˜จ = self._callable_fn(*array_vals)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\client\session.py", ๋ผ์ธ 1439, __call__
run_metadata_ptr)

ํŒŒ์ผ "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\framework\errors_impl.py", ๋ผ์ธ 528, __exit__
c_api.TF_GetCode(self.status.status))

UnknownError: ์ปจ๋ณผ๋ฃจ์…˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” cuDNN์ด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„์— ๊ฒฝ๊ณ  ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
[[{{๋…ธ๋“œ conv2d_1/convolution}} = Conv2D[T=DT_FLOAT, _class=[" loc:@training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter "], data_format="NCHW", ํŒฝ์ฐฝ=[1, 1 , 1, 1], ํŒจ๋”ฉ="์œ ํšจํ•œ", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/ ์ž‘์—…:localhost/๋ณต์ œ :0/ ์ž‘์—…:0/์žฅ์น˜ : GPU:0 " ](๊ต์œก/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_1/kernel/read)]]
[[{{๋…ธ๋“œ ์†์‹ค/mul/_91}} = _Recv[client_terminated=false, recv_device="/ ์ž‘์—…:localhost/๋ณต์ œ๋ณธ :0/ ์ž‘์—…:0/์žฅ์น˜ : CPU:0 ", send_device="/ ์ž‘์—…:localhost/ ๋ณต์ œ :0/ ์ž‘์—…:0/์žฅ์น˜ : GPU:0 ", send_device_incarnation=1, tensor_name="edge_609_loss/mul", tensor_type=DT_FLOAT, _device="/ ์ž‘์—…:localhost/๋ณต์ œ :0/ ์ž‘์—…:0/์žฅ์น˜ : CPU :0 "]()]]

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-451079405 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABE215xY0OhbFjA_GhVtEIDl_IB4qQGmks5u_b9NgaJpZM4Lc7S1
.

win10 ์‹œ์Šคํ…œ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๋กœ ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์†Œ๋น„ํ•˜๋Š” ๋‹ค๋ฅธ ์‹คํ–‰ ์ค‘์ธ ์•ฑ์„ ์ข…๋ฃŒํ•˜๊ณ  ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” Windows 10 NVIDIA GEFORCE GTX 1050์—์„œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์„ ๋‹ซ๊ณ  ์œ„์˜ ํ•˜์ž๋งˆ์ž ๋‚ด ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์‹คํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. RAM์„ ์ตœ๋Œ€ 64GB๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2019๋…„ 1์›” 18์ผ ๊ธˆ์š”์ผ ์˜คํ›„ 5์‹œ 30๋ถ„์— Samuel Nde [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

Windows 10 NVIDIA GEFORCE GTX 1050์—์„œ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  ๊ณง
๋‹ค๋ฅธ ๋ชจ๋“  ์‹คํ–‰ ์ค‘์ธ ์ž‘์—…์„ ๋‹ซ๊ณ  @xhm1014์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋กœ ๋‹ค์‹œ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
์œ„์˜ https://github.com/xhm1014 ์—์„œ ๋‚ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ €๊ฒƒ. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-455441208 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ABE217cdDKUuRtdD9jJ_eh2tJWrm2fjeks5vEWnwgaJpZM4Lc7S1
.

๋‚˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๊ณ  Jupyter์˜ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ซ๊ณ  ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ซ์•„ '๊ณ ์ •'ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ tensorflow๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ์ฒ˜์Œ์ด๋ฏ€๋กœ ์ด๊ฒƒ์ด ๋‚ด ๋ฌธ์ œ๋งŒ ํ•ด๊ฒฐํ–ˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:353] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_INTERNAL_ERROR

cuda๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค์—์„œ ์ปดํŒŒ์ผ๋œ 10.1 Cuda+cuDNN7.5 ๋ฐ TF 1.11์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋ ค๋Š” ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค์Œ ํ–‰์„ ์–ด๋”˜๊ฐ€์— ์‚ฝ์ž…ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.
config = tf.ConfigProto() config.gpu_options.allow_growth = True

๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์—:
sess = tf.Session(graph=detection_graph,config=config)

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋งŽ์€ "GPU ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์˜ค๋ฅ˜"๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ GPU๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์˜ˆ์ƒ๋Œ€๋กœ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๊ฐ์ง€๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธ
๋‚ด๋ณด๋‚ด๊ธฐ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

@EncodeTS ๋ฐฉ๊ธˆ ์ฒซ ๋ฒˆ์งธ ๊ฒŒ์‹œ๋ฌผ์— ์ตœ์†Œํ•œ์˜ ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์˜ˆ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žฌํ˜„๋˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ๋‘ ๊ฐœ์˜ ์ปจ๋ณผ๋ฃจ์…˜ ๋ ˆ์ด์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•„ ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค ์ œํ•œ์œผ๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ €๋Š” macOS๊ฐ€ ์•„๋‹Œ Ubuntu 18.04์—์„œ ์ž‘์—…ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค ์ œํ•œ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GTX 1050 ti(4GB)์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์ง€๋งŒ GTX 1080 ti(11GB)์—์„œ ๋™์ผํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ๋‘ ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ํ™˜๊ฒฝ์ด ๊ฐ™์ง€๋Š” ์•Š์ง€๋งŒ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ตœ์„ ์„ ๋‹คํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ cuda ๋ฐ GPU ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„์ „๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์˜ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Anaconda์—์„œ cuda ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋‚˜์ค‘์— ๋‹ค๋ฅธ ๋‹ต๋ณ€์—์„œ ํ•ด๊ฒฐํ•  ์ˆ˜์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ๋ฐ cuda ๋ฒ„์ „๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ GPU ๋ฉ”๋ชจ๋ฆฌ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ•์ด ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ cuda ๋ฒ„์ „ ๋ณ€๊ฒฝ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š” cuda ๋ฒ„์ „์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์•„๋ž˜ Anaconda์˜ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ cuda ๋ฒ„์ „์„ ์ˆ˜์ •ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด pro-test๊ฐ€ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•˜๋ฉด ๋‹ค์Œ์„ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค
tf.config.gpu.set_per_process_memory_growth(True); tf.config.gpu.set_per_process_memory_fraction(0.4);

ํ…์„œํ”Œ๋กœ 2 ์•ŒํŒŒ
์ฟ ๋‹ค 10.0
GTX 1650

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_ALLOC_FAILED.
3~4์‹œ๊ฐ„ ๋™์•ˆ ๋จธ๋ฆฌ๊ฐ€ ๊นจ์กŒ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ)

๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์€ ๋‚ด๊ฐ€ ํ•˜์ง€ ์•Š์€

tensorflow-gpu ๋ฒ„์ „์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๋ฒ„์ „์„ ๋ช‡ ๋ฒˆ์ด๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๊ณ  ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. tensorflow-gpu ํ•ด๋‹น ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์€ ๋‹ค์Œ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ @Codersadis์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ค„์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” .py ํŒŒ์ผ์˜ ๋งจ ์ฒ˜์Œ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ print_function, ๋‚˜๋ˆ—์…ˆ
ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
keras.backend.tensorflow_backend์—์„œ set_session ๊ฐ€์ ธ์˜ค๊ธฐ
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
set_session(tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ))

tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 ๋ฐ cuda 9.1.85 ์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
, ubuntu 16.04 ์œ„์˜ ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์„ ์ถ”๊ฐ€ํ•œ ํ›„์—๋„.
๋‹ค์Œ์€ ์Šคํƒ ์ถ”์ ์ž…๋‹ˆ๋‹ค.

INFO - Waveunet Training - Running command 'run'
INFO - Waveunet Training - Started
SCRIPT START
EPOCH: 0
Dataset ready!
Training...
Sep_Vars: 10265550
Num of variables65
2019-07-25 05:10:09.872823: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-25 05:10:10.286584: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-25 05:10:10.286914: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1356] Found device 0 with properties: 
name: Quadro P4000 major: 6 minor: 1 memoryClockRate(GHz): 1.48
pciBusID: 0000:00:05.0
totalMemory: 7.92GiB freeMemory: 7.83GiB
2019-07-25 05:10:10.286964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0
2019-07-25 05:10:10.640890: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-25 05:10:10.640952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929]      0 
2019-07-25 05:10:10.640968: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0:   N 
2019-07-25 05:10:10.641194: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7566 MB memory) -> physical GPU (device: 0, name: Quadro P4000, pci bus id: 0000:00:05.0, compute capability: 6.1)
2019-07-25 05:10:27.643833: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:94] Filling up shuffle buffer (this may take a while): 2054 of 4000
2019-07-25 05:10:35.917445: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:129] Shuffle buffer filled.
2019-07-25 05:10:36.175698: E tensorflow/stream_executor/cuda/cuda_dnn.cc:455] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2019-07-25 05:10:36.175820: E tensorflow/stream_executor/cuda/cuda_dnn.cc:463] possibly insufficient driver version: 384.183.0
2019-07-25 05:10:36.175842: E tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2019-07-25 05:10:36.175859: F tensorflow/core/kernels/conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms) 
Aborted (core dumped)

๋„์™€์ฃผ์„ธ์š”

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_ALLOC_FAILED.
3~4์‹œ๊ฐ„ ๋™์•ˆ ๋จธ๋ฆฌ๊ฐ€ ๊นจ์กŒ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์‹ค์ œ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
์„ธ์…˜ = tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ)

๊ทธ๋Ÿฌ๋‚˜ ํ•ต์‹ฌ์€ ๋‚ด๊ฐ€ ํ•˜์ง€ ์•Š์€

ํ›Œ๋ฅญํ•œ ๋‹ต๋ณ€, ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค !!

์Šคํฌ๋ฆฝํŠธ @Codersadis์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ์ด๋Ÿฌํ•œ ์ฝ”๋“œ ์ค„์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” .py ํŒŒ์ผ์˜ ๋งจ ์ฒ˜์Œ์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ์—์„œ print_function, ๋‚˜๋ˆ—์…ˆ
ํ…์„œํ”Œ๋กœ๋ฅผ tf๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
keras.backend.tensorflow_backend์—์„œ set_session ๊ฐ€์ ธ์˜ค๊ธฐ
๊ตฌ์„ฑ = tf.ConfigProto()
config.gpu_options.allow_growth = ์ฐธ
set_session(tf.Session(๊ตฌ์„ฑ=๊ตฌ์„ฑ))

tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 ๋ฐ cuda 9.1.85 ์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
, ubuntu 16.04 ์œ„์˜ ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜์„ ์ถ”๊ฐ€ํ•œ ํ›„์—๋„.
๋‹ค์Œ์€ ์Šคํƒ ์ถ”์ ์ž…๋‹ˆ๋‹ค.

INFO - Waveunet Training - Running command 'run'
INFO - Waveunet Training - Started
SCRIPT START
EPOCH: 0
Dataset ready!
Training...
Sep_Vars: 10265550
Num of variables65
2019-07-25 05:10:09.872823: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-25 05:10:10.286584: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-25 05:10:10.286914: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1356] Found device 0 with properties: 
name: Quadro P4000 major: 6 minor: 1 memoryClockRate(GHz): 1.48
pciBusID: 0000:00:05.0
totalMemory: 7.92GiB freeMemory: 7.83GiB
2019-07-25 05:10:10.286964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0
2019-07-25 05:10:10.640890: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-25 05:10:10.640952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929]      0 
2019-07-25 05:10:10.640968: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0:   N 
2019-07-25 05:10:10.641194: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7566 MB memory) -> physical GPU (device: 0, name: Quadro P4000, pci bus id: 0000:00:05.0, compute capability: 6.1)
2019-07-25 05:10:27.643833: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:94] Filling up shuffle buffer (this may take a while): 2054 of 4000
2019-07-25 05:10:35.917445: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:129] Shuffle buffer filled.
2019-07-25 05:10:36.175698: E tensorflow/stream_executor/cuda/cuda_dnn.cc:455] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2019-07-25 05:10:36.175820: E tensorflow/stream_executor/cuda/cuda_dnn.cc:463] possibly insufficient driver version: 384.183.0
2019-07-25 05:10:36.175842: E tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2019-07-25 05:10:36.175859: F tensorflow/core/kernels/conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms) 
Aborted (core dumped)

๋„์™€์ฃผ์„ธ์š”

Nvidia ๋“œ๋ผ์ด๋ฒ„๋ฅผ 396+๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

per_process_gpu_memory_fraction ๋ผ๊ณ ๋„ ํ•˜๋Š” cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด GPU ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ถ€๋ถ„๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋ฉ”๋ชจ๋ฆฌ ๋น„์œจ์„ ์Šค์Šค๋กœ ์ค„์ด๋ฉด ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

> sess_config = tf.ConfigProto(gpu_options =
> tf.GPUOptions(per_process_gpu_memory_fraction=0.7),
> allow_soft_placement = True)
> 
> with tf.Session(config=sess_config) as sess:
>      sess.run([whatever])

๋‹น์‹ ์˜ ๊ธฐ์–ต์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. (์ฝ”๋“œ์—์„œ๋Š” 0.7์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 0.3 ์ดํ•˜๋กœ ์‹œ์ž‘ํ•œ ๋‹ค์Œ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค.)
tf.Session() ๋˜๋Š” tf.train.MonitoredTrainingSession() ๋˜๋Š” ๊ฐ๋…์ž์˜ sv.managed_session() ์— ๊ตฌ์„ฑ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด GPU๊ฐ€ TensorFlow ์ฝ”๋“œ์— ๋Œ€ํ•œ cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด conda ํ™˜๊ฒฝ์—์„œ tensorflow 2.0์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

```2019-12-03 23:48:29.888625: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ์„ฑ๊ณต์ ์œผ๋กœ ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cudart64_100.dll์„ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-03 23:49:06.381259: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ nvcuda.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-03 23:49:07.220066: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: GeForce GTX 1660 Ti ๋ฉ”์ด์ €: 7 ๋งˆ์ด๋„ˆ: 5 memoryClockRate(GHz): 1.59
pci๋ฒ„์ŠคID: 0000:01:00.0
2019-12-03 23:49:07.236411: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ dlopen ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
2019-12-03 23:49:07.247476: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] ๋ณด์ด๋Š” GPU ์žฅ์น˜ ์ถ”๊ฐ€: 0
2019-12-03 23:49:07.256881: I tensorflow/core/platform/cpu_feature_guard.cc:142] ๊ท€ํ•˜์˜ CPU๋Š” ์ด TensorFlow ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ๋ช…๋ น์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค: AVX2
2019-12-03 23:49:07.269536: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: GeForce GTX 1660 Ti ๋ฉ”์ด์ €: 7 ๋งˆ์ด๋„ˆ: 5 memoryClockRate(GHz): 1.59
pci๋ฒ„์ŠคID: 0000:01:00.0
2019-12-03 23:49:07.281954: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ dlopen ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
2019-12-03 23:49:07.295302: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] ๋ณด์ด๋Š” GPU ์žฅ์น˜ ์ถ”๊ฐ€: 0
2019-12-03 23:49:08.589865: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] ๊ฐ•๋„ 1 ์—์ง€ ๋งคํŠธ๋ฆญ์Šค๊ฐ€ ์žˆ๋Š” ์žฅ์น˜ ์ƒํ˜ธ ์—ฐ๊ฒฐ StreamExecutor:
2019-12-03 23:49:08.599121: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2019-12-03 23:49:08.610543: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
2019-12-03 23:49:08.616005: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] TensorFlow ์žฅ์น˜ ์ƒ์„ฑ(/job:localhost/replica:0/task:0/device:GPU:0 with 4627 MB ๋ฉ”๋ชจ๋ฆฌ) -> ๋ฌผ๋ฆฌ์  GPU(์žฅ์น˜: 0, ์ด๋ฆ„: GeForce GTX 1660 Ti, pci ๋ฒ„์Šค ID: 0000:01:00.0, ์ปดํ“จํŒ… ์„ฑ๋Šฅ: 7.5)
2019-12-03 23:49:58.521484: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cublas64_100.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-03 23:49:59.604517: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cudnn64_7.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-03 23:50:04.209110: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_NOT_INITIALIZED
2019-12-03 23:50:04.216670: E tensorflow/stream_executor/cuda/cuda_dnn.cc:333] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜: ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ: ์ปค๋„ ๋ณด๊ณ  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ
2019-12-03 23:50:04.226172: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] cudnn ํ•ธ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: CUDNN_STATUS_NOT_INITIALIZED
2019-12-03 23:50:04.234741: E tensorflow/stream_executor/cuda/cuda_dnn.cc:333] ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ๊ฒ€์ƒ‰ ์˜ค๋ฅ˜: ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ: ์ปค๋„ ๋ณด๊ณ  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด Windows์—์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์Œ
2019-12-03 23:50:04.244958: W tensorflow/core/common_runtime/base_collective_executor.cc:216] BaseCollectiveExecutor::StartAbort ์•Œ ์ˆ˜ ์—†์Œ: ์ปจ๋ณผ๋ฃจ์…˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” cuDNN์ด ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„์— ๊ฒฝ๊ณ  ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
[[{{๋…ธ๋“œ ์ˆœ์ฐจ/conv2d/Conv2D}}]]

so i added the following code to my CNN

GPU = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

My output is now

2019-12-04 00:10:07.708573: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cudart64_100.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-04 00:10:11.643304: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ nvcuda.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-04 00:10:12.753615: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: GeForce GTX 1660 Ti ๋ฉ”์ด์ €: 7 ๋งˆ์ด๋„ˆ: 5 memoryClockRate(GHz): 1.59
pci๋ฒ„์ŠคID: 0000:01:00.0
2019-12-04 00:10:12.769498: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ dlopen ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
2019-12-04 00:10:12.783900: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] ๋ณด์ด๋Š” GPU ์žฅ์น˜ ์ถ”๊ฐ€: 0
2019-12-04 00:10:54.941468: I tensorflow/core/platform/cpu_feature_guard.cc:142] ๊ท€ํ•˜์˜ CPU๋Š” ์ด TensorFlow ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋„๋ก ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ๋ช…๋ น์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค: AVX2
2019-12-04 00:10:55.372516: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] ์†์„ฑ์ด ์žˆ๋Š” ์žฅ์น˜ 0์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฆ„: GeForce GTX 1660 Ti ๋ฉ”์ด์ €: 7 ๋งˆ์ด๋„ˆ: 5 memoryClockRate(GHz): 1.59
pci๋ฒ„์ŠคID: 0000:01:00.0
2019-12-04 00:10:55.383385: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] GPU ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ dlopen ๊ฒ€์‚ฌ๋ฅผ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
2019-12-04 00:10:55.406053: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] ๋ณด์ด๋Š” GPU ์žฅ์น˜ ์ถ”๊ฐ€: 0
2019-12-04 00:10:56.741665: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] ๊ฐ•๋„ 1 ์—์ง€ ๋งคํŠธ๋ฆญ์Šค๊ฐ€ ์žˆ๋Š” ์žฅ์น˜ ์ƒํ˜ธ ์—ฐ๊ฒฐ StreamExecutor:
2019-12-04 00:10:56.747255: ๋‚˜๋Š” tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2019-12-04 00:10:56.752302: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
2019-12-04 00:10:56.756861: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] TensorFlow ์žฅ์น˜ ์ƒ์„ฑ(/job:localhost/replica:0/task:0/device:GPU:0 with 4627 MB ๋ฉ”๋ชจ๋ฆฌ) -> ๋ฌผ๋ฆฌ์  GPU(์žฅ์น˜: 0, ์ด๋ฆ„: GeForce GTX 1660 Ti, pci ๋ฒ„์Šค ID: 0000:01:00.0, ์ปดํ“จํŒ… ์„ฑ๋Šฅ: 7.5)
2019-12-04 00:11:08.281356: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cublas64_100.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-04 00:11:08.934804: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ cudnn64_7.dll์„ ์„ฑ๊ณต์ ์œผ๋กœ ์—ด์—ˆ์Šต๋‹ˆ๋‹ค.
2019-12-04 00:11:11.870237: W tensorflow/stream_executor/cuda/redzone_allocator.cc:312] ๋‚ด๋ถ€: Windows์—์„œ ptxas ํ˜ธ์ถœ์ด ์ง€์›๋˜์ง€ ์•Š์Œ
๋“œ๋ผ์ด๋ฒ„์— ์˜์กดํ•˜์—ฌ ptx ์ปดํŒŒ์ผ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์‹œ์ง€๋Š” ํ•œ ๋ฒˆ๋งŒ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.
```

๋ชจ๋‘๊ฐ€ ์ œ์•ˆํ–ˆ๋“ฏ์ด ๋ชจ๋“  GPU/GPU๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ…์„œํ”Œ๋กœ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚ด CNN์€ ์ด์ œ ์˜ค๋ฅ˜ ์—†์ด ํ›ˆ๋ จ๋ฉ๋‹ˆ๋‹ค.

conda ํ™˜๊ฒฝ ๋‚ด์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์› ๋ฒ„์ „์˜ tensorflow๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: > conda install tensorflow-gpu ์‚ฌ์šฉ)

์ด ๋ฒ„์ „์ด ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์‹ค์ œ๋กœ ์ข‹์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค(๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ). ์‚ฌ์šฉํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ข‹์€ ๋ฒ„์ „์€ conda ํ™˜๊ฒฝ ๋‚ด์—์„œ pip ์„ค์น˜ ๊ฐ€๋Šฅ ๋ฒ„์ „ https://www.tensorflow.org/install/pip ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ ๋˜ํ•œ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€ํฌ์Šค GTX 1050, ์ฟ ๋‹ค 10.0

์ฐธ๊ณ : ์ด๊ฒƒ์€ ํ˜„์žฌ๋กœ์„œ๋Š” TF 2.0์—์„œ ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

GPU = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

์ด๊ฒƒ์€ ๋˜ํ•œ ๋‚˜๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€ํฌ์Šค GTX 1050, ์ฟ ๋‹ค 10.0

์ฐธ๊ณ : ์ด๊ฒƒ์€ ํ˜„์žฌ๋กœ์„œ๋Š” TF 2.0์—์„œ ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

GPU = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์•„๋ฌด๋Ÿฐ ์ฐจ์ด๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค ... TF 2.0, RTX 2060, CUDA 10.1, CuDNN 7.6

์ด๊ฒƒ์€ 16GB RAM, 6GB ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ํ•˜๋‚˜์˜ ๋ณ€ํ™˜ ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋Š” ๊ธฐ๋ณธ MNIST ์žฅ๋‚œ๊ฐ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉฐ ์Šคํƒ ์ถ”์ ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํ‰์†Œ์™€ ๊ฐ™์ด Pytorch์—์„œ๋Š” GPU ๋ฌธ์ œ๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6์ด ์žˆ๋Š” ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‘ ์ปดํ“จํ„ฐ์˜ RAM ์šฉ๋Ÿ‰์€ 16GB๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ CPU์™€ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” GPU๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ œ ๊ฒฝ์šฐ์—๋Š” RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6์ด ์žˆ๋Š” ๋‘ ๋Œ€์˜ ์ปดํ“จํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์•ž์„œ ์–ธ๊ธ‰ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‘ ์ปดํ“จํ„ฐ์˜ RAM ์šฉ๋Ÿ‰์€ 16GB๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ CPU์™€ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” GPU๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๊ฐ™์€ ํ”Œ๋žซํผ, ๊ฐ™์€ ๋ฌธ์ œ

์ตœ์‹  tensorflow ๋ฐ keras๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ. ์—ฌ๊ธฐ ์—์„œ ์ด๊ฒƒ์„ ์‹œ๋„

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  try:
    # Currently, memory growth needs to be the same across GPUs
    for gpu in gpus:
      tf.config.experimental.set_memory_growth(gpu, True)
    logical_gpus = tf.config.experimental.list_logical_devices('GPU')
    print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Memory growth must be set before GPUs have been initialized
    print(e)

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(๋ฌผ๋ฆฌ์  ์žฅ์น˜[0], ์ฐธ)

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(๋ฌผ๋ฆฌ์  ์žฅ์น˜[0], ์ฐธ)

์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

@Samaritan1011001 ๊ท€ํ•˜์˜ ์†”๋ฃจ์…˜์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰