【webAI】用deeplearn.js预测线性方程的参数

Github


目标方程

  • y = 3 * x + 2
  • 3 为 Weights
  • 2 为 Baises

代码

/**
 * 预测线性方程 y = 3x + 2 的参数
 * 其中 3 为 Weights, 2 为 Biases 
 */

// 创建数据集,这里创建5个x,和5个y
const x_data = dl.tensor1d([0, 1, 2, 3, 4]);
const a = dl.scalar(3)
const b = dl.scalar(2)
const y_data = x_data.mul(a).add(b)

// 接着生成我们要求解的两个参数Weights和Biases
const Weights = dl.variable(dl.randomUniform([1]))
const Biases = dl.variable(dl.zeros([1]))

// 接着定义预测的y值,损失函数和optimizer
// 损失函数指的是预测值与实际值之间的差别
// 神经网络的重点就是通过优化器来减少误差,提升参数的准确度
// 这里用平方差值作为损失函数,用gradient descent作为优化器
const f = x => Weights.mul(x).add(Biases);
const loss = (pred, label) => pred.sub(label).square().mean()
const learningRate = 0.01
const optimizer = dl.train.sgd(learningRate)

// 训练模型,训练500次
for (let i = 0; i < 500; i++) {
    optimizer.minimize(() => loss(f(x_data), y_data))
}

// 预测出参数Weights和Biases
console.log(
    `Weights: ${Weights.dataSync()}, Biases: ${Biases.dataSync()}`
)

效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值