tensorflow.js

여러개의 변수

수업소개

독립변수와 종속변수의 숫자가 여러개일 때는 어떻게 학습을 시켜야 하는 것일까요? 

 

 

 

강의1

 

 

 

강의2

 

 

 

강의3

 

10.3.html

<!DOCTYPE html>
<html>

<head>
    <title>TensorFlow.js Tutorial - boston housing </title>

    <!-- Import TensorFlow.js -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
    <script src="10.3.js"></script>
</head>

<body>
    <script>
        /*
        var 보스톤_원인 = [
            [0.00632,18,2.31,0,0.538,6.575,65.2,4.09,1,296,15.3,396.9,4.98],
            [0.02731,0,7.07,0,0.469,6.421,78.9,4.9671,2,242,17.8,396.9,9.14]
        ];
        var 보스톤_결과 = [
            [24], 
            [21.6]
        ];
        */
    
        // 1. 과거의 데이터를 준비합니다. 
        var 원인 = tf.tensor(보스톤_원인);
        var 결과 = tf.tensor(보스톤_결과);

        // 2. 모델의 모양을 만듭니다. 
        var X = tf.input({ shape: [13] });
        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: 100}
        var fitParam = { 
          epochs: 100, 
          callbacks:{
            onEpochEnd:
              function(epoch, logs){
                console.log('epoch', epoch, logs, 'RMSE=>', Math.sqrt(logs.loss));
              }
          }
        } // 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>

 

10.3.js

https://raw.githubusercontent.com/egoing/tensorflow.js-1/master/10.3.js

 

 

강의4

 

10.4.html

<!DOCTYPE html>
<html>

<head>
    <title>TensorFlow.js Tutorial - boston housing</title>

    <!-- Import TensorFlow.js -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js"></script>
    <script src="10.4.js"></script>
</head>

<body>
    <script>
    
        // 1. 과거의 데이터를 준비합니다. 
        var 원인 = tf.tensor(보스톤_원인);
        var 결과 = tf.tensor(보스톤_결과);

        // 2. 모델의 모양을 만듭니다. 
        var X = tf.input({ shape: [12] });
        var Y = tf.layers.dense({ units: 2 }).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: 100}
        var fitParam = { 
          epochs: 100, 
          callbacks:{
            onEpochEnd:
              function(epoch, logs){
                console.log('epoch', epoch, logs, 'RMSE=>', Math.sqrt(logs.loss));
              }
          }
        } // 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>


10.4.js

https://raw.githubusercontent.com/egoing/tensorflow.js-1/master/10.4.js

댓글

댓글 본문
  1. Mark Kim
    이론상 학습 횟수를 훨씬 큰값으로 늘리고 컴퓨터 성능이 뒷받침 된다면 오차는 줄어들 수 있습니다. 하지만, 실제 데이터를 다룰 때에는 학습 데이터와의 오차를 줄이는 것은 목표가 아니랍니다.. 오히려 학습 데이터와 오차를 최소화 하는 것은 모델을 과적합 상태로 만들어서 필요없는 모델을 만드는 것과 같습니다. 궁극적으로 모델 학습을 통해서 원하는 것은 학습 데이터가 아닌 학습 데이터에서 관측되지 않은 새로운 데이터에 대한 예측 정확성을 높이는 것이기 떄문에, 학습을 통해 학습 데이터와의 오차를 최소화 하는 것은 무의미하고, 적당한 학습 횟수를 찾아 학습한 뒤, 새로운 데이터에 대한 예측 정확성을 높이는 것을 목표로 하여 모델을 학습 시키게 됩니다.
    대화보기
    • Mark Kim
      꾸준히 공부하는 것도 상당한 노력이 필요한것 같아요 ㅎㅎ 1년전에는 끝까지 못갔지만 이번에는 7월 안에 끝까지 가볼 생각입니다.모두 화이팅!
    • Hotbrains
      완료~ 감사합니다.
    • 21-03-29 컴퓨터 느려서 epochs: 5000 하니까 시간이 많이 걸리긴 했지만...
      완료!!
    • JJ Lee
      여기 댓글창까지 오는데 스크롤 압박^^; 질문있습니다. 생각보다, 예측값이 오차가 큰데 더 예측값을 높히기 위해선 학습데이터가 더 충분히 준비되면 될까요? 왜냐면 아무 많이 학습횟수를 높혀도 더이상 오차가 좁혀지지 않잖아요.
    • Newbiecoder
      완료!!!
    • 바이크
      완료
    • 뭄수
      완료
    • submit
      완료!!
    • 박지웅
      완료
    • 완료
    • 박병진
      2021.01.14 완료
    • ok
    • 이민지
      완료
    • 완료!!
    • 김현우
      21.01.12 수강완료
    • RickyU
      getWeight 뒤에 괄호 안붙였다가 한참 헤멨습니다=_=).. 그래도 수업 완료!

      p.s. 위의 데이터는 접을 수 있게 해주시면 감사하겠습니다, 여기까지 스크롤하는게 살짝 번거롭네요.
    • 라온
      레몬 예측값으로 여러개의 독립변수를 지나 2개의 종속 변수까지 대단한 일들 덕분에 경험하네요 감사합니다.
    • CrashOverride
      4일차 완료
    • 해피쌤
      완료
    • 녹차먹고쿠우
      완료
    • 코코딩
      마지막에 표를 하위계층의 독립변수인 범죄율을 보며 생각이 많아지네요...
    • 건형팍
      완료!!
    • ukmadang
      열심히 듣겠습니다! 완료!
    • hungryoon
      항상 감사합니다~!
    • 바른생활
    • 바른생활
      강의 1 영상의 2:22의 y=....x에 x=2인 경우의 y값은 왜 -2.09832가 되죠??? 오타 아닌지...
    버전 관리
    egoing
    현재 버전
    선택 버전
    graphittie 자세히 보기