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์ ์ฌ์ฉํ์ง ์๋ ํ ์คํธ ์ธ์ ์ ์ฑ๊ณต์ ์ผ๋ก ์คํ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ ๋ด๊ฐ ์ฒ์์ผ๋ก ์ธ๊ธํ 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 ํจํค์ง์์ ์ค์นํ์ต๋๋ค.
tensorflow-gpu
python -c "import tensorflow; print(tensorflow.__version__)"
์ ์ถ๋ ฅ.0.12.head
๋์ค์ ์์ค์์ ์ค์นํ์ต๋๋ค(pip ํจํค์ง๊ฐ ์ ๊ฑฐ๋จ).
git rev-parse HEAD
)d67c09d98a576e1fbf2f3609ddb842e53890f31c
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 ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํ๋์ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ง ์๋ ๋คํธ์ํฌ๊ฐ ๋ฌธ์ ์์ด ์คํ๋๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ฅผ ์์ฑํ์ต๋๋ค.
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)
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)
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)
์คํ:
์์ฒญ์ ๋ฐ๋ผ ๋ ๋ง์ ํต๊ณ๋ฅผ ๋คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋ ๋์์ ๋ ๊ฐ์ ํฐ๋ฏธ๋๋ก ์์ ํ๊ณ ์์๊ณ ๊ฐ์ ๋ฌธ์ ๊ฐ์์์ต๋๋ค. ํ๋์ ํฐ๋ฏธ๋์ ๋ซ์์ ํด๊ฒฐํ์ต๋๋ค.
์ต๊ทผ ํ๋์ด ์์ด์ ์๋์ผ๋ก ๋ซํ๋๋ค. ์๋ก์ด ์ ๋ณด๊ฐ ์์ ๋ ๋ฌธ์ ๋ฅผ ์ ๋ฐ์ดํธํด ์ฃผ์๋ฉด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ฒ ์ต๋๋ค. ๊ฐ์ฌ ํด์!
@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์ผ๋ก ์ ๋ฐ์ดํธํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์์ ์ ์์คํ :
ํด๊ฒฐ ํ ์์คํ :
์ด ๋ฌธ์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ๊ณผ ํ๋์จ์ด ๋ฒ์ ์ด ์ผ์นํ์ง ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์ผ ์ ์์ต๋๋ค. @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
์์? 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 ๋
ธํธ๋ถ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ด GPU ์ฌ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ ์ด ํํ ๋ฆฌ์ผ์ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค: 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๋ฅผ ์คํํ๋ฉด ์ ์๋ํฉ๋๋ค.
๋ณด์๋ค์ํผ GPU๊ฐ ์ฌ์ฉ ์ค์ด๋ฉฐ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ฅด๋ฉด ์ต์ข
์ ํ๋๋ ์์๋๋ก ์ฝ 92%์
๋๋ค.
2) ๊ทธ๋ฌ๋ MNIST_multilayer_CNN.py๋ฅผ ์คํํ๋ฉด ํ์ด์ฌ์ด ์ถฉ๋ํฉ๋๋ค.
์ด์ ์ ์์ ๊ธฐ๋ฐ์ผ๋ก 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:
๋ ๋ฒ์งธ ๊ฒ์ ๋ค์ ์ถ๋ ฅ์ ์์ฑํ์ง๋ง ๊ทธ๋ค ์ค ๋๊ตฌ๋ ์๋ํ์ง ์์์ต๋๋ค.
๋ณด์๋ค์ํผ, tensorflow๋ ๋ถ๋ช ํ ์ฑ๊ณตํ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ฌ๋ฌ ๋ฒ ์๋ํ์ง๋ง(CUBLAS_STATUS_ALLOC_FAILED) CUDNN_STATUS_NOT_INITIALIZED ์ค๋ฅ๊ฐ ๋ํ๋๊ณ ๋ชจ๋ ๊ฒ์ด ๋ค์ ์คํจํฉ๋๋ค.
Btw, ์ด ์ง์นจ์ ๋์ ์๋ ๋์ฒด ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ผ tensorflow๋ฅผ ์ค์นํ์ต๋๋ค. http://www.python36.com/install-tensorflow-gpu-windows/
์ด CUDA ์ค์น ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด .whl ํ์ผ์ ์ฌ์ฉํ์ฌ tensorflow๋ฅผ ์ค์นํ์ต๋๋ค.
๋ค์์ python, pip ๋ฐ conda์ ๋ํ ์ถ๊ฐ ์ ๋ณด์
๋๋ค.
๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ฏธ๋ฆฌ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์๋
ํ์ญ๋๊น,
๋ ๊ฐ์ ๋ค๋ฅธ ์ปดํจํฐ์์ ๋์ผํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ณ ์์ต๋๋ค.
์ค์ 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๋ฅผ ์คํํ ๋๋ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
| 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)
ํ์์ ๊ฒฝ์ฐ(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์ผ๋ก
์ด๊ฒ์ด ๋ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ด์์ต๋๋ค.
์ด๋ฌํ ์ข ๋ฅ์ ๋ฌธ์ ์ ์ง๋ฉดํ๊ธฐ ์์ํ ๋๋ง๋ค 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 ๋ฒ์ ์ด ์ด ํ์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
์ ๊ฒฝ์ฐ์๋ ๋ค๋ฅธ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด 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(๊ตฌ์ฑ=๊ตฌ์ฑ))
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฌํฉ๋๋ค@Codersadis
@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 ๊ทํ์ ์๋ฃจ์ ์ด ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค์์ ์ผ์์ ์ผ๋ก ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ํ ์ถ๊ฐ ์ ๋ณด์ ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ ๋ชจ๋ 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 ํ์ ๋๊ตฌ๋ ์ด๋ฅผ ํ์ธํ์ง ์์์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋น์ทํ ํ๋์ ํ์ธํ ์ ์๋์ง ํ์ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค.