studies/Back-end
Tensorflow.js ์ ํํ๊ท๋ถ์ ๋ชจ๋ธ ์์ฑ๊ณผ ํ ์คํธํ๊ธฐ
Vada Kim
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
์ง๋ ์ฃผ๊ฐ ๋๋ฌด ๋ฐ๋น ์ ์ค๋ ์ฌ๋ ๊ฒธ ๊ทธ๋์ ๋ฏธ๋ค์จ ํ ์ํ๋ก์ฐ ๊ฐ์๋ฅผ ๋ณด์๋๋ฐ ๊ฝค ์ฌ๋ฐ๋ค. ์ฌ์ ์๊ฒ ์๋ก์ด ๊ฑธ ๊ณต๋ถํ ํ๋ฃจ์ฌ์ ๋๋ฌด ํ๋ณตํ๋.
- ์ฐธ๊ณ
728x90
๋ฐ์ํ