농장/인공지능

Tensorflow.js 선형회귀분석 모델 생성과 테스트하기

귤발자 2021. 4. 17. 19:21
728x90
반응형

1. 모델 생성까지의 과정

let X = tf.input({ shape: [1] }); //독립변수 개수
let Y = tf.layers.dense({ units: 1 }).apply(X); //출력될 결과(종속)변수 개수
let model = tf.model({ inputs: X, outputs: Y }); //모델 정의
let compileParam = { optimizer: tf.train.adam()/*방식*/, loss: tf.losses.meanSquaredError/*손실함수*/ }
model.compile(compileParam); //모델 컴파일링

let fitParam = {
  epochs: 2000, //학습횟수
    callbacks:{
    onEpochEnd: function(epoch, logs){
      //매 학습마다 정확도 파악
      console.log('epoch', epoch, logs, '평균제곱근오차: ', Math.sqrt(logs.loss))
    }
  }
}

model.fit(tf.tensor(독립변수 배열), tf.tensor(종속변수(결과) 배열), fitParam).then((result)=> {
	console.log("completed model fit")
});

tf.tensor() 에 들어갈 인자는 배열형식이어야 한다.

 

 

2. 모델 테스트 출력

model.predict(tf.tensor(테스트 할 독립변수 배열)).print()

 

3. 모델 테스트 값 얻기

let result = model.predict(tf.tensor([10])).arraySync()[0][0]

또는 함수식을 이용해 직접 계산하기 / y=가중치*x+편향

let weights = model.getWeights(); //모델로부터 가중치+편향 얻기
let weight = weights[0].arraySync()[0][0]; //가중치
let bias = weights[1].arraySync()[0] //편향

let result = weight * 테스트 할 독립변수 값 + bias

 

 

 

 지난 주간 너무 바빠서 오늘 쉬는 겸 그동안 미뤄온 텐서플로우 강의를 보았는데 꽤 재밌다. 여유있게 새로운 걸 공부한 하루여서 너무 행복하디.

 

 

  • 참고

opentutorials.org/course/4628/29772

728x90
반응형