PART2:A gentle introduction to TensorFlow.js
在本章中,以一个简单的下载时间预测问题为动力示例,我们将介绍完整的机器学习模型的主要组成部分。 我们将从实用的角度介绍张量,建模和优化,以便您可以直观地了解张量,它们如何工作以及如何正确使用它们。
1 使用TensorFlow.js预测下载时间
首先,我们将访问我们的培训数据。 在机器学习中,数据可以从磁盘读取、在网络上下载、生成或简单地硬编码。在这个例子中我们采用最后一种方法是因为它很方便,并且我们只处理一小部分数据量。其次,我们将数据转换为张量,以便将它们输入到我们的模型中。 下一步是创建一个模型,就像我们在第1章中看到的那样,该模型类似于设计适当的可训练函数:将输入数据映射到我们要预测的事物的函数。在这种情况下,输入数据和预测目标都是数字。 一旦我们的模型和数据可用,我们将对模型进行训练,并随时监控其报告的指标。 最后,我们将使用经过训练的模型对尚未见到的数据进行预测,并评估模型的准确性。我们将通过复制和粘贴可运行代码片段以及有关理论和工具的解释来完成每个阶段。本文中的代码将以两种格式显示。 第一种格式,代码清单,提供了在参考代码存储库中可以找到的结构代码。 每清单中有标题和数字。 例如,清单2.1包含非常简短的HTML您可以将逐字复制到文件上的摘要(例如/tmp/tmp.html)您的计算机,然后在Web浏览器中打开文件:///tmp/tmp.html,它本身不会做很多事情。代码的第二种格式是控制台交互。
2.模型
其中,kernel和Bias是可调的,创造模型时,它们是随机产生的。所以我们需要在训练过程中,找到最适合我们这个工程的k和b,那么我们需要两个条件:
1.一个可以评价现在权重表现情况方法;
2.一个更新权重的方法,以优化权重。
那么,就引出了模型编译步骤:
1.损失函数(loss function):通过误差来评价目前模型的表现好坏,越小,表现越好,如果我们的模型训练很长时间,并且损失没有减少,这可能意味着我们的模型没有学会拟合数据;
2.优化器(optimizer):神经网络通过它来更新权值,这是基于数据和损失函数的。
举例(loss function):
平均绝对误差:meanAbsoluteError = average( absolute(model_Output - targets) )
举例(opimizer):
随机梯度下降:stochastic gradient descent-sgd.简而言之,这意味着我们将使用微积分来确定应对权重进行哪些调整,以减少损失; 然后我们将进行这些调整并重复该过程。
3.训练
.