티스토리 뷰

728x90
반응형

Tensorflow.js는 텐서플로를 자바스크립트 환경(브라우저)에서 사용할 수 있도록 개발된 라이브러이다. 

 

브라우저에서 여러 자바스크립트 라이브러를 불러서 쓰는 방식으로 간단하게 개발 및 활용이 가능하지만
node.js 상에서 개발하기 위해서 관련 라이브러리를 설치하고 사용하는 방식도 많이 쓰인다. 

 

이글은 node.js 상에서 tensorflow.js를 설치하고 이를 활용하기 위한 설정 방법을 따라해보고 샘플 코드를 돌려보는 내용을 소개한다. 

 

node 프로젝트 만들기

다음과 같이 node 프로젝트를 만들기 위해 폴더를 생성하고 폴더 안에서 프로젝트를 세팅(npm init)을 시작한다. 

프로젝트 이름이나 기타 세팅은 테스트용이므로 다 무시하였다.

$ mkdir tfjs-sample
$ cd tfjs-sample
(tfjs-sample)$ npm init

 

tensorflow.js 설치 하기 

(tfjs-sample)$ npm install @tensorflow/tfjs

node용 tensorflow.js 설치하기

(tfjs-sample)$ npm install @tensorflow/tfjs-node

package.json 파일 안에 방금 설치한 tfjs와 tfjs-node가 설치/등록된 사실을 dependencies 항목에서 확인할 수 있다. 

{
  "name": "tfjs-sample",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@tensorflow/tfjs": "^2.7.0",
    "@tensorflow/tfjs-node": "^2.7.0"
  }
}

 

샘플코드 실행

index.js 파일을 생성하고 샘플 코드를 작성한다.

const tf = require('@tensorflow/tfjs');

// Optional Load the binding:
// Use '@tensorflow/tfjs-node-gpu' if running with GPU.
require('@tensorflow/tfjs-node');

// Train a simple model:
const model = tf.sequential();
model.add(tf.layers.dense({units: 100, activation: 'relu', inputShape: [10]}));
model.add(tf.layers.dense({units: 1, activation: 'linear'}));
model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});

const xs = tf.randomNormal([100, 10]);
const ys = tf.randomNormal([100, 1]);

model.fit(xs, ys, {
  epochs: 100,
  callbacks: {
    onEpochEnd: (epoch, log) => console.log(`Epoch ${epoch}: loss = ${log.loss}`)
  }
});
  

 

실행은 node 명령어를 다음과 같이 입력하여 실행한다.

(tfjs-sample)$ node index.js

간단한 fully connected layer를 난수 데이터를 넣어 100번 반복 학습한 결과가 터미널 창에 다음처럼 실행된다.

Epoch 1 / 100
eta=0.0 =========================================================>
61ms 610us/step - loss=1.32
Epoch 0: loss = 1.3196738958358765
..
..
..
Epoch 98 / 100
eta=0.0 =========================================================>
15ms 146us/step - loss=0.520
Epoch 97: loss = 0.519675612449646
Epoch 99 / 100
eta=0.0 =========================================================>
12ms 123us/step - loss=0.516
Epoch 98: loss = 0.5160889029502869
Epoch 100 / 100
eta=0.0 =========================================================>
15ms 147us/step - loss=0.514
Epoch 99: loss = 0.5139230489730835

 

 

참고문헌

www.tensorflow.org/js/tutorials/setup?hl=ko

 

설정  |  TensorFlow.js

브라우저 설정 브라우저 기반 프로젝트에서 TensorFlow.js를 가져 오는 두 가지 주요 방법이 있습니다. 웹 개발을 처음 사용하거나 webpack 또는 parcel과 같은 도구에 대해 들어 본 적이없는 경우 스크

www.tensorflow.org

 

 

 

 

 

728x90
반응형

'Programming > javascript' 카테고리의 다른 글

javascript type coercion (강제 형변환)  (0) 2020.10.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함