TensorFlow是一个由谷歌开发并于2015年开放的库,它使得构建和训练机器学习模型变得非常容易。
我们接下来要建立的模型会自动将公里数转换为英里数在这个例子中,我们将创建一个可以学习如何进行转换的模型我们将为该模型提供一个CSV文件作为输入,其中已经执行了29组公里和英里之间的转换基于这些数据,我们的模型将学会自动执行这样的转换
我们将使用监督学习算法,因为我们知道数据的输入和输出结果并使用Python作为编程语言Python提供了一系列与机器学习相关的方便的库和工具在这个例子中,所有的步骤都是使用谷歌Colab执行的谷歌Colab允许我们在零配置的浏览器中编写和执行Python代码
导入所需的库。
我们首先导入将在我们的示例中使用的库。。
importtensorflowimportpandaaspportseabornas nsimporttaplotlib我们将导入张量流来创建我们的机器学习模型我们还将导入熊猫库来读取包含公里和英里转换数据的CSV文件最后,我们将导入Seaborn和Matlotlib库来绘制不同的结果加载样本数据
要从Google Colab读取文件,可以使用不同的方法在这个例子中,我直接将CSV文件上传到我的Google Colab上的sample_data文件夹中,但是您可以从URL读取该文件
上传到谷歌Colab的问题是,运行时重启时数据会丢失。
数据框是二维可变大小的各种表格数据。
df=pd.read_csvdf.info
示例数据信息
绘制数据框。
我们会的searborn图书馆散点图,导入并命名为sns,然后使用这个库来绘制上面的图形它显示了x和y之间对应关系的图形表示
print # onceweloadseaborintsection,everytime amaplotlibplotesecuted,seaborn ' s faultcustomization sareaddedsns . distribute plot,df)plt.show()
公里和英里之间的相关性。
我们定义数据帧的输入和输出来训练模型:
x是输入,y是输出。
Printeandoutput (y)变量')x _ train=df('公里')y _ train=df('英里')来创建神经网络。
现在,让我们用喀拉斯Sequential方法创建一个神经网络layers每一层都有逐步提取输入数据以获得所需输出的功能Keras是一个用Python编写的库我们创建神经网络并使用不同的机器学习框架,例如TensorFlow
接下来,我们将使用add方法向模型中添加一个层。
model=TF . keras . sequential()model . add(TF . keras . layers . density(units=1,input _ shape=(1))来创建神经网络。
编译模型
在训练我们的模型之前,我们将在编译步骤中添加一些额外的设置。
我们将建立一个优化器和损失函数,它将衡量我们模型的准确性Adam优化是一种基于第一和第二矩自适应预算的随机梯度下降算法
因此,我们将使用基于均值方差的损失函数,它测量我们预测的均值方差。
我们的模型旨在最小化这个函数。
我们将使用拟合来训练我们的模特首先,我们引入自变量或输入变量(X—公里)和目标变量(Y—英里)
另一方面,我们预测纪元的价值在本例中,历元值为250一个时期是遍历所提供的完整的x和y数据
历元值越小,误差越大相反,历元值越大,误差越小如果epoch的值越大,算法的执行速度就会越慢
训练模型控制台。
评价模型
现在,我们评估创建的模型在这个模型中,我们可以观察到损耗伴随着遍历次数(历元)的增加而减少如果训练集数据是有意义的,并且是一个足够大的组,那么它是符合逻辑的
print print(Epoch s _ hist . history . keys())# graph PLT . PLT(Epoch s _ history . history('损失'))PLT . title(' evolutionoferrassociatedthmodel ')PLT . xlabel(' Epoch ')PLT . ylabel(' TrainingLoss ')PLT . legend(' TrainingLoss ')PLT . show()
从图中我们可以看出,模型训练250次并没有什么帮助,第50次遍历后误差也没有减小因此,训练算法的最佳遍历数约为50
做预测。
既然我们已经训练了我们的模型,我们可以用它来做预测。
在这个例子中,我们给模型的输入变量赋值100,然后模型将返回:的预测里程。
公里=100 predicatedmiles=model . predict)打印('版本romnofilomerestomelisasfollow s 3360 ' str(predicatedmiles))
公里到英里的换算是62.133785。
考试成绩milesbyformula=公里* 0.6214print)差值=miles byformula—预测里程print('预测误差3360' str(差值))。
使用该公式,公里到英里的转换值为3:3737373035预测误差为0.00621414。
总结
通过这个例子,我们知道了如何使用TensorFlow库来创建模型这个模型学会了自动将公里转换成英里,误差很小
张量流执行这个过程的数学非常简单基本上,这个例子使用线性回归来创建模型,因为输入变量和输出变量是线性相关的在机器学习中,过程中最耗时的部分通常是准备数据
伴随着时间的推移,我们获得了一些经验,可以帮助我们选择最合适的算法及其设置,但一般来说,这是一项分析,测试和改进的任务。IT之家9月2日消息今日上午,SensorTower发布报告称,全球AppStore和GooglePlay玩家在DreamGames《RoyalMatch》上的付费超过1亿美元,使得该游戏成为过去半年收入增长最快的解谜手游。
郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。