浏览器端的机器学习 tensorflowjs(4) 定义模型

作者 : 开心源码 本文共1214个字,预计阅读时间需要4分钟 发布时间: 2022-05-14 共219人阅读

cover_002.png

机器学习模型可以简单了解函数,接受一个输入而后经过函数得到一个输出的算法。当使用神经网络时,那么神经网络就是是模型还是算法,个人由于应该算算法。神经网络大家可以将其了解为复杂的模型,这个模型有大量参数,所以需要肯定算力而且神经网络求解过程是简单暴力的。

定义模型

我们先把这次分享完成代码抛出了,而后逐行解释

function createModel() {  // Create a sequential model  const model = tf.sequential();  // Add a single input layer  model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));  // Add an output layer  model.add(tf.layers.dense({units: 1, useBias: true}));  return model;}

初始化一个容器

const model = tf.sequential();

这实例化了一个 tf.Model对象,sequential 有点相似一个容器,我们可以将神经网络的层结构一层一层堆叠到容器,输入的数据会经过这些层后输出一个结果。
也存在多个输入和输出的模型,但在许多情况下,我们的模型将是顺序执行的。

model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));

创立好容器后,我们即可以增加 layer 到的网络中,它自动连接到一个有一个隐藏单元的密集层。

在 Tensorflow 提供事前定义好层,dense layer 全连接层是一种比较简单,假如大家不理解,即可以将其简单了解为一个线性方程,y = wx + b, 不过由于输入一批样本所以, w 通常为一个矩阵(称为权重),输入数据乘以矩阵 w 在加上一个偏置 b ,这里 b 也是一个向量。这样我们就定义好了网络的第一层。

在解释一下参数 inputShape,由于数据只有一个特征作为输入所以 inputShape是[1]。

units 设定了该层中的权重矩阵的大小,它设置为1,表示每个数据的输入特征是 1 所以只有 1 个权重。

提醒:全连接层默认带有一个偏置项,默认情况下 useBias 的值为 true

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

其实这一层是神经网络的输出层,units 设置为 1,输出 1 个数值。

提醒:隐藏层有 1 个单元,实际上没有必要增加最终的输出层,也就是说可以把隐藏层作为输出层。然而,定义一个输出层可以让以后可以修改隐藏层的单元数,仅此而已。

实例化

// Create the modelconst model = createModel();tfvis.show.modelSummary({name: 'Model Summary'}, model)

截屏2021-06-25下午12.36.54.png

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 浏览器端的机器学习 tensorflowjs(4) 定义模型

发表回复