머신러닝야학2기 - 텐서플로우 Javascript (2)
DAY 2 : ~나의 모델 만들기
강의 1
-
과거의 데이터 준비
var 온도 = [20,21,22,23];
var 판매량 = [40,42,44,46];
텐서플로우는 배열을 ‘텐서’로 변환해야 한다.
var 원인 = tf.tensor(온도);
var 결과 = tf.tensor(판매량);
-
모델의 모양을 만든다
var X = tf.input({ shape: [1] });
var Y = tf.layers.dense( { units: 1 } ).apply(x);
var model = tf.model({ inputs: X, outputs: Y });
var complieParam = {optimizer: tf.train.adam), loss: tf.losses.meanSquaredError}
model.compile(compileParam);
-
데이터로 모델을 학습(FIT) 한다.
var fitParam = {epochs:100}
model.fit(원인, 결과, ).then(funtion(result){
var 다음주온도 = [15,16,17,18,19]
var 다음주원인 = tf.tensor(다음주온도,[다음주온도.length,1]);
var 다음주결과 = model.predict(다음주원인);
다음주결과.print();
});
-
모델을 이용한다.
강의 2
강의 3
지도학습을 하기 위해서는 데이터를 원인(독립변수)과 결과(종속변수)로 구분해야 한다
코드로는 이렇게 표현한다.
var 온도 = [20,21,22,23];
var 판매량 = [40,42,44,46];
텐서플로우에서는 이렇게 변환해줘야한다.
var 원인 = tf.tensor(온도);
var 결과 = tf.tensor(판매량);
// 1. 과거의 데이터를 준비합니다.
var 온도 = [20,21,22,23];
var 판매량 = [40,42,44,46];
var 원인 = tf.tensor(온도);
var 결과 = tf.tensor(판매량);
강의 4
모델의 모양 만들기
// 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);
강의 5
모델의 실제 내용이 되는 수학적 공식 만들기 - FIT
epochs 값만큼 학습을 반복한다.
// 3. 데이터로 모델을 학습시킵니다.
var fitParam = { epochs: 100}
var fitParam = { epochs: 100, callbacks:{onEpochEnd:function(epoch, logs){console.log('epoch', epoch, logs);}}} // loss 추가 예제
model.fit(원인, 결과, fitParam).then(function (result) {
});
강의 6
predict(원인)에 우리가 학습 시킬 때 사용했던 온도 데이터를 넣어준다.
// 3. 데이터로 모델을 학습시킵니다.
var fitParam = { epochs: 100}
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();