<!DOCTYPE html>
<html>
<head>
<title>TensorFlow.js Tutorial - lemon</title>
<!-- Import TensorFlow.js -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
</head>
<body>
<script>
// 1. 과거의 데이터를 준비합니다.
var 온도 = [20,21,22,23];
var 판매량 = [40,42,44,46];
var 원인 = tf.tensor(온도);
var 결과 = tf.tensor(판매량);
// 2. 모델의 모양을 만듭니다.
var X = tf.input({ shape: [1] });
var Y = tf.layers.dense({ units: 1 }).apply(X);
var model = tf.model({ inputs: X, outputs: Y });
var compileParam = { optimizer: tf.train.adam(), loss: tf.losses.meanSquaredError }
model.compile(compileParam);
// 3. 데이터로 모델을 학습시킵니다.
var fitParam = { epochs: 6000}
// var fitParam = { epochs: 100, callbacks:{onEpochEnd:function(epoch, logs){console.log('epoch', epoch, logs);}}} // loss 추가 예제
model.fit(원인, 결과, fitParam).then(function (result) {
// 4. 모델을 이용합니다.
// 4.1 기존의 데이터를 이용
var 예측한결과 = model.predict(원인);
예측한결과.print();
});
// 4.2 새로운 데이터를 이용
var 다음주온도 = [15,16,17,18,19]
var 다음주원인 = tf.tensor(다음주온도);
var 다음주결과 = model.predict(다음주원인);
다음주결과.print();
</script>
</body>
</html>
tf.tensor(배열)
독립변수(shape:[1])가 하나고 종속변수(units:1)가 하나인 model)
ex) 모델 통인데 입력이 한개이고 출력이 한 개인 통
세번째 인자로 epoch를 걸어 필요한 횟수만큼 반복한다.
ex) 모델 통인데 안에서 이런저런 계산을 통해 입력을 다른 결과로 바꾸는 통
해당 원인인 20,21,22,23을 통해 model을 학습한 결과 거의 40,42,44,46과 같은 값이 나타난다.
tensorflow.js의 경우 브라우저에서 동작하는 방법과 node.js에서 동작하는 방법이 있는데 브라우저의 경우 시간이 너무 많이 든다. 따라서 node.js의 결과에서 보는 것을 추천
// 1. 과거의 데이터를 준비합니다.
var tf = require('@tensorflow/tfjs');
var 온도 = [20,21,22,23];
var 판매량 = [40,42,44,46];
var 원인 = tf.tensor(온도);
var 결과 = tf.tensor(판매량);
// 2. 모델의 모양을 만듭니다.
var X = tf.input({ shape: [1] });
var Y = tf.layers.dense({ units: 1 }).apply(X);
var model = tf.model({ inputs: X, outputs: Y });
var compileParam = { optimizer: tf.train.adam(), loss: tf.losses.meanSquaredError }
model.compile(compileParam);
// 3. 데이터로 모델을 학습시킵니다.
var fitParam = { epochs: 6000}
// var fitParam = { epochs: 100, callbacks:{onEpochEnd:function(epoch, logs){console.log('epoch', epoch, logs);}}} // loss 추가 예제
model.fit(원인, 결과, fitParam).then(function (result) {
// 4. 모델을 이용합니다.
// 4.1 기존의 데이터를 이용
var 예측한결과 = model.predict(원인);
예측한결과.print();
});
node.js의 경우 기본적으로
npm install @tensorflow/tfjs
해당 내용을 터미널에서 실행해야하고 맨앞에 tf에 대한 require이 필요하다.