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

根据身高推测体重

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>

运行结果

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow.js是一个用于在JavaScript中进行机器学习的开源库。它可以在浏览器和Node.js环境中运行。在Node.js中使用TensorFlow.js,你需要安装适当的包,如引用\[1\]所示。然后,你可以使用TensorFlow.js提供的API来构建和训练模型。 在Node.js中使用TensorFlow.js进行模型训练的示例代码如引用\[2\]所示。这个示例展示了如何创建一个简单的序列模型,并使用随机生成的数据进行训练。训练过程中,还可以使用TensorBoard来可视化训练过程和结果。 另外,引用\[3\]展示了另一个简单模型的训练示例。这个示例中,使用了一个具有100个单元的隐藏层和一个线性输出层的序列模型。 总之,TensorFlow.js提供了丰富的API和工具,可以在Node.js中进行机器学习模型的构建和训练。你可以根据自己的需求选择适合的模型和算法,并使用TensorFlow.js提供的功能进行训练和评估。 #### 引用[.reference_title] - *1* *3* [TensorFlow-JS教程 一、Node.js 设置](https://blog.csdn.net/SE_JW/article/details/122130783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v12^insert_chatgpt"}} ] [.reference_item] - *2* [9 Node 中的 TensorFlow.js](https://blog.csdn.net/SE_JW/article/details/122130779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v12^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值