- 전체
- C/C++ 일반
- C/C++ 수학
- C/C++ 그래픽
- C/C++ 자료구조
- C/C++ 인공지능
- C/C++ 인터넷
- wxWidget
- GTK+
- UNIX or LINUX programming
- 리눅스 마스터 - 국가공인자격
- VC++/ MFC
- C#/CLI/.NET
- QT/기타UI
- Boost lib
- 오픈소스 C 분석자료
- MSA (마이크로서비스), Docker, kubernetes
- WSL(windows subsystem linux)
C/C++ 인공지능 [C/C++][tensorflow] tensorflovw 1.x version 텐서플로우 C 예제
2021.11.19 17:19
[C/C++][tensorflow] tensorflovw 1.x version 텐서플로우 C 예제
텐서플로우 C 예제
C언어에서 텐서플로우 API를 사용하는 방법에 대해서 설명드리도록 하겠습니다. 텐서플로우 라이브러리인 libtensorflow 다운로드 후 설치 방법과 예제 소스코드를 사용하여 빌드 후 실행하는 방법에 대해서 함께 설명드리도록 하겠습니다.
지원 환경
텐서플로우 c언어 API는 현재 아래의 플랫폼에서 지원되고 있습니다. 윈도우와 리눅스는 CPU 와 GPU버전을 모두 지원하고 있지만, macOS 환경에서는 CPU 버전만 지원되고 있습니다.
- Linux, 64-bit, x86
- macOS X, Version 10.12.6 (Sierra) or higher
- Windows, 64-bit x86
텐서플로우(libtensorflow) 설치
다운로드
C언어에서 텐서플로우의 API를 사용하기 위해서는 먼저 헤더 파일과 라이브러리등을 설치해 주셔야 합니다. 최신 버전의 텐서플로우 라이브러리 파일인 libtensorflow는 아래 링크에서 다운 받으 실 수 있습니다.
위의 링크는 Linux 버전의 libtensorflow 파일입니다. 다른 버전의 라이브러리 파일을 다운 받기 위해서는 아래의 페이지를 참고해 주시기 바랍니다.
https://www.tensorflow.org/install/lang_c
압축 해제
Linux 또는 macOS 환경일 경우 다운로드 받은 파일을 아래와 같이 /usr/local 디렉터리에 압축 해제 합니다.
$ sudo tar -C /usr/local -xzf libtensorflow-cpu-linux-x86_64-1.14.0.tar.gz
C언어 헤더파일과 라이브러리 파일들이 압축해제 되게 됩니다.
Linker 설정
Linux 또는 macOS 환경에서 /usr/local 와 같은 시스템 디렉터리에 텐서플로우 라이브러리 파일을 압축해제 했을 경우 linker 를 설정하기 위해서 다음과 같은 명령어를 실행해 주시기 바랍니다.
$ sudo ldconfig
만약 ~/mydir 와 같은 시스템 디렉터리가 아닌 위치에 libtensorflow 파일을 해제 했을 경우 아래와 같이 환경 변수를 설정해 주시기 바랍니다.
export LIBRARY_PATH=$LIBRARY_PATH:~/mydir/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mydir/lib
텐서플로우 C 예제
다음과 같은 예제 소스코드를 생성하여, 빌드 후 실행해 보도록 하겠습니다. 파일이름은 hello.c 이라고 설정하도도록 하겠습니다.
#include <stdio.h>
#include <tensorflow/c/c_api.h>
int main() {
printf("TensorFlow C library version %s\n", TF_Version());
return 0;
}
소스코드 빌드, 실행
다음 명령어를 실행하여 소스코드를 빌드합니다.
$ gcc hello.c -ltensorflow -o hello
만약 위의 명령어로 소스코드가 빌드가 되지 않는 다으면, 다음과 같이 헤더 파일과 라이브러리 디렉터리를 명시적으로 지정하면서 빌드 하실 수도 있습니다.
$ gcc -I/usr/local/include -L/usr/local/lib hello.c -ltensorflow -o hello
빌드가 성공적으로 이뤄지게 되면 hello 파일이 생성됩니다. 생성된 hello 파일을 실행하면 다음과 같이 Tensorflow 버전이 출력되는 것을 확인 할 수 있습니다.
텐서플로우 C API와 관련된 보다 자세한 내용은 아래의 페이지를 참고해 주시기 바랍니다.
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/c/c_api.h
[출처] https://hiseon.me/data-analytics/tensorflow/tensorflow-c-api/
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
15 | [C/C++ graphic GUI] An introduction to the Dear ImGui library : Dear ImGui 라이브러리 소개 | 졸리운_곰 | 2023.11.07 | 7 |
14 | [C/C++, graphics] SDL Tutorial Basics | 졸리운_곰 | 2021.05.15 | 51 |
13 | How to Install Dev-C++ and the GLUT Libraries for Compiling OpenGL Programs with ANSI C | 졸리운_곰 | 2021.02.02 | 50 |
12 | CONREC : A Contouring Subroutine 등고선 그리기 | 졸리운_곰 | 2018.01.11 | 344 |
11 | 왼손 / 오른손 좌표계 비교: Left- vs. Right-handed coordinate systems | 졸리운_곰 | 2017.09.24 | 97 |
10 | 3D Graphics with OpenGL | 졸리운_곰 | 2017.09.24 | 871 |
9 | OpenGL의 회전순서 | 졸리운_곰 | 2017.09.24 | 35 |
8 | 통일 D3D 및 OpenGL 좌표 시스템 | 졸리운_곰 | 2017.09.24 | 56 |
7 | [OpenGL] 중심점(pivot)으로 물체 회전하기 | 졸리운_곰 | 2017.06.25 | 890 |
6 | 3D Graphics with OpenGL | 졸리운_곰 | 2017.06.06 | 93 |
5 | OpenGL프로그래밍:간단한 다각형 랜더링 | 졸리운_곰 | 2017.06.06 | 334 |
4 | 기하학 사이트들.. | 졸리운_곰 | 2017.06.06 | 61 |
3 | 기하변환 | 졸리운_곰 | 2017.06.06 | 688 |
2 | assimp : Open Asset Import Library | 졸리운_곰 | 2017.05.14 | 54 |
1 | MeshLab the open source system for processing and editing 3D triangular meshes. | 졸리운_곰 | 2017.05.13 | 69 |