ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tensorflow.js基本使用 线性回归(一)

2022-06-29 14:01:58  阅读:165  来源: 互联网

标签:const tensor js tf 线性 tensorflow model div sub


根据身高推测体重

const $ = require('jquery');
const tf = require('@tensorflow/tfjs');
const tfvis = require('@tensorflow/tfjs-vis');

/* 根据身高推测体重 */

//把数据处理成符合模型要求的格式
function getData() {
//学习数据
const heights = [150, 151, 160, 161, 166, 170, 177, 180, 183, 190, 196];
const weights = [45, 43, 50, 61, 68, 60, 70, 70, 65, 89, 98];

//验证数据
const testh = [183, 160, 151, 166, 183, 177, 170];
const testw = [67, 61, 43, 67, 80, 77, 70];

//归一化数据
const inputs = tf.tensor(heights).sub(150).div(50);
const labels = tf.tensor(weights).sub(40).div(60);

const xs = tf.tensor(testh).sub(150).div(50);
const ys = tf.tensor(testw).sub(40).div(60);

//绘制图表
tfvis.render.scatterplot(
{ name: '身高体重' },
//x轴身高,y轴体重
{ values: heights.map((x, i) => ({ x, y: weights[i] })) },
//设置x轴范围,设置y轴范围
{ xAxisDomain: [140, 200], yAxisDomain: [40, 110] }
);

return { inputs, labels, xs, ys };
}


$(async () => {
const { inputs, labels, xs, ys } = getData();

//设置连续模型
const model = tf.sequential();

//设置全连接层
model.add(tf.layers.dense({
units: 10,
inputShape: [1]
}));

model.add(tf.layers.dense({
units: 1
}));

//设置损失函数,优化函数学习速率为0.1
model.compile({
loss: tf.losses.meanSquaredError,
optimizer: tf.train.adam(0.1)
});

await model.fit(inputs, labels, {
batchSize: 1,
epochs: 20,
//设置验证集
validationData: [xs, ys],
callbacks: tfvis.show.fitCallbacks(
{ name: '训练过程' },
['loss', 'val_loss', 'acc', 'val_acc'],
{ callbacks: ['onEpochEnd'] }
)
});

//对身高180的体重进行推测
let res = model.predict(tf.tensor([180]).sub(150).div(50));
console.log(res.mul(60).add(40).dataSync()[0]);

//保存模型
window.download = async () => {
await model.save('downloads://my-model');
}
});
html部分

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button onclick="download()">保存模型</button>
</body>
<script src="./t1.js"></script>
</html>
运行结果

 

 


————————————————
版权声明:本文为CSDN博主「(; ̄ェ ̄)。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35496811/article/details/122527040

标签:const,tensor,js,tf,线性,tensorflow,model,div,sub
来源: https://www.cnblogs.com/chinasoft/p/16423117.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有