텐서플로우 GPU 버전 설치 후

 

# -*- coding: utf-8 -*-
 
# TensorFlow 라이브러리를 추가한다.
import tensorflow as tf

# 그래프를 생성합니다.
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)
# log_device_placement을 True로 설정하여 세션을 만듭니다.
sess = tf.Session()
# op를 실행합니다.
print(sess.run(c))

 

를 실행해보면

 

 

프로그램에서 GPU에 메모리를 할당하다 에러를 발생시킨다.

 

구글링 내용으로는 GPU에서 사용 가능한 메모리가 부족해서 그렇다고 하는데

 

# log_device_placement을 True로 설정하여 세션을 만듭니다.
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

 

Session 시작 전에 GPUOptions 항목을 추가해주면 CUDA_OUT_OF_MEMORY 에러가 제거된다. 우선 내 PC의 GPU 메모리는 4기가 남은 용량은 3.2기가로 나오나 0.4 이상인 경우 에러 발생한다. 수치는 적절한 값을 테스트해보면서 찾으면 될것 같다.

 

Posted by cookydice

TensorFlow의 경우 아직 Window용 C++ 라이브러리가 제한적이라고 한다.

 

http://blog.naver.com/atelierjpro/220965925819 홍정모 교수님께서 2015로 C++용

 

라이브러리 컴파일 방법을 올려주셨는데 MSVC 2017의 경우에는 빌드시

 

기존 (MSVC 2015 환경) : --toolset=msvc-14.0

변경 (MSVC 2017 환경) : --toolset=msvc-14.1

 

으로 변경 후 컴파일하면 된다.

 

(추가)

ANACONDA prompt에서 ANACONDA 환경 파일 활성화 후

 

pip install --ignore-installed --upgrade tensorflow/tensorflow-gpu(선택)

 

한 후에 Bootstrap.bat 실행해야 tensorflow import 명령이 처리되는 것 같음.

 

추가하지 않고 lib 생성하면

 

const py::object tf_ = py::import("tensorflow");

 

명령 수행 시 에러 발생 함

Posted by cookydice

CMake-GUI에서 Tensorflow를 C++로 Cunfigure할 경우에

 

CMake Error at tf_core_framework.cmake:215 (list): list sub-command REMOVE_ITEM requires two or more arguments.

 

라는 에러 코드가 발생한다.

 

해결을 위해서 tf_core_framework.cmake 파일을 열어서

 

기존 : "${tensorflow_source_dir}/tensorflow/core/platform/default/gpu_tracer.cc")

변경 : "${tensorflow_source_dir}/tensorflow/core/platform/default/device_tracer.cc")

 

으로 변경 후 configuration을 다시 실행하면 에러는 발생하지 않는다.

 

Posted by cookydice


티스토리 툴바