虚幻引擎4官方文档,虚幻引擎文档下载

  虚幻引擎4官方文档,虚幻引擎文档下载

  预制估值器

  本文档介绍了TensorFlow编程环境,并展示了如何使用made估计器来解决虹膜分类问题。

  第一条。TensorFlow编程环境介绍2。虹膜分类问题1.1虹膜数据集介绍1.2分类算法1.3预测3。使用估计器编程实现虹膜分类3.1创建输入函数3.2定义特征列3.3实例化估计器3。4.训练、评估和预测。培训模式评估。训练好的模型用于预测和总结推理。

  安装所需的软件包

  在运行本文中的代码之前,您需要安装以下软件包:

  安装TensorFlow。如果您在virtualenv或Anaconda中安装了TensorFlow,请激活您的TensorFlow环境。运行下面的代码来安装和更新pandas包:pip install pandas来获取本文的代码。

  通过以下步骤获得本文的代码:

  使用以下命令在本地克隆TensorFlow模型库:git clone https://github.com/tensorflow/models将目录剪切到本文使用的代码所在的位置:CD models/samples/core/get _ started/本文使用的代码是premade_estimator.py这个程序使用iris_data.py代码来获取训练数据。

  运行本文的代码。

  使用下面的方法运行本文中的代码。例如:

  Python premade_estimator.py程序会在训练过程中输出训练日志,然后程序会输出测试集上的测试结果。

  .预测为 setosa (99.6%),预期 setosa 预测为 versicolor (99.8%),预期 versicolor 预测为 virginica (97.9%),预期 virginica 。如果程序运行不正确,请进行如下检查。

  TensorFlow安装有问题吗?TensorFlow的版本是否正确激活?1.TensorFlow编程环境介绍?在使用TensorFlow进行编程之前,我们先来研究一下TF编程环境。如下图所示,TensorFlow提供了一个包含多个API层的编程堆栈:

  我们强烈建议使用以下API编写TF程序:

  评估者:代表一个完整的模型。Estimator API提供了一些训练模型、评估模型性能和生成预测的方法。数据集:构建数据输入管道。Dataset API提供了一些方法来加载数据(E)、操作数据(T)和将数据输入到模型中(L)。数据集API与估算器API完全兼容。注意:构建数据输入管道的过程实际上就是构建ETL的过程。2.虹膜分类问题虹膜数据集包含三种鸢尾的150个样本,每个样本包含四个虹膜特征值:雄蕊长(cm)、雄蕊宽(cm)、花瓣长(cm)和花瓣宽(cm)。

  从左至右:刚毛鸢尾、杂色鸢尾、海滨鸢尾。1.1 iris数据集介绍

  虹膜数据集包含4个特征和1个标签。这四个特征是:

  萼片长度,萼片宽度,花瓣长度,花瓣宽度标签表明鸢尾的品种。有三个品种:

  刚毛鸢尾(0)杂色鸢尾(1)海滨鸢尾(2)下表是数据集的片段:

  雄蕊长(厘米)雄蕊宽(厘米)花瓣长(厘米)花瓣宽(厘米)品种(标签)5.13.31.70.50(刚毛)5.02.33.31.01(杂色)6.42.85.62.22

  两个隐藏层。每个隐藏层包含10个节点特征、隐藏层和预测值,如下图所示:

  1.3在对模型进行预测和训练之后,我们可以使用训练好的模型来预测具有未知标签的鸢尾的品种。例如,预测结果的格式如下:

  鸢尾为0.03,杂色鸢尾为0.95,海滨鸢尾为0.02。预测结果表明,花为杂色的概率为95%。3.利用Estimator编程实现虹膜分类Estimator是TensorFlow中的一个高级API。它将处理初始化、日志记录、保存、恢复和其他细节,以便研究人员可以专注于模型。

  估算器API中有许多内置的估算器。当然,除了这些内置的估算器,您还可以定制估算器。建议在解决问题时使用内置的估计器作为基线。

  当使用内置估计器解决问题时,通常遵循以下过程:

  创建一个或多个输入函数。定义模型的特征列。实例化估计器,并指定特性列和各种超级参数。调用Estimator对象的一个或多个方法,将适当的输入函数作为数据源传递。以下是如何使用内置估计器解决虹膜分类问题的详细描述。

  3.1创建输入函数首先,创建输入函数,为训练、评估和预测过程提供数据。

  输入函数的返回值是tf.data.Dataset对象,它输出一个两元素元组:

  Features-Python字典,其中:每个键是一个特性的名称。每个值都是一个数组,包含该特性的所有值。label-包含每个样本的标签值的数组。为了向您展示输入函数的格式,请查看下面的简单实现:

  def input _ evaluation _ set():features={ SepalLength :NP . array([6.4,5.0]), SepalWidth: np.array([2.8,2.3]), PetalLength :NP . array([2.2,1.0])} labels=np.array ([2,1])返回特征,labels输入函数可以在不过我们推荐使用TensorFlow的Dataset API,可以解析各种数据。作为一个高级API,数据集API包含以下类:

  每个类别如下:

  数据集:创建和转换数据集的方法的基类。还可以通过该类从内存数据或Python生成器初始化数据集。TextLineDataset:从文本文件中读取行。TFRecordDataset:从TFRecord文件中读取记录。FixedLengthRecordDataset:从二进制文件中读取固定大小的记录。迭代器:提供一次访问一个数据集元素的方法。数据集API可以为您处理许多常见情况。例如,使用Dataset API,可以轻松实现并行数据读取,并将它们组合成单个数据流。为了简化这个例子,我们使用pandas将数据从csv文件加载到内存中,然后从内存构建数据输入管道。

  下面是本文中的例子在训练过程中使用的输入函数。详见iris_data.py。

  def train_input_fn(features,labels,batch_size): 用于训练的输入函数 #将输入转换为数据集。dataset=TF . data . dataset . from _ tensor _ slices((dict(features),Labels)) # features这里是一个pandas DataFrame,Labels是一个pandas Series # Shuffle,repeat,batch例子。返回数据集。洗牌(1000)。重复()。batch (batch _ size) 3.2定义要素列要素列是一个对象,它解释了模型应该如何使用要素字典中的原始输入数据。当您构建估计器模型时,您将向它传递一个包含您希望模型使用的每个特性的特性列列表。tf.feature_column模块提供了许多向模型表示数据的选项。

  对于Iris,四个原始特征是数值,因此我们将构建一个特征列列表,告诉估计器模型将所有四个特征表示为32位浮点值。因此,创建feature列的代码如下:

  # featurecolumns描述如何使用input . my _ feature _ columns=[]for key in train _ x . keys():my _ feature _ columns . append(TF . feature _ column . numeric _ column(key=key))feature column的功能远不止上面的例子。我们后面会有详细的介绍。

  我们已经介绍了我们希望模型如何表示原始特征,现在我们可以构建估计器了。

  3.3实例化估计量Iris分类问题是一个经典的分类问题。TensorFlow内置了许多分类估计器,包括:

  tf.estimator.DNNClassifier rtf . estimator . dnnlinacombineclassifier rtf . estimator .线性分类器TF . estimator . dnnclassifier似乎是虹膜问题的最佳选择。

  #建立一个具有2个隐藏层和每个隐藏层中10个节点的DNN .分类器=TF。估计者。dnn分类器(特征列=我的特征列,#两个各有10个节点的隐藏层hidden_units=[10,10],#模型必须在3个类中进行选择n _ class=3)3.4训练、评估及预测我们已经有一个估计量对象,现在可以调用方法来执行下列操作:

  训练模型评估经过训练的模型使用经过训练的模型进行预测训练模型通过调用估计量的火车方法来训练模型:

  # 训练模型分类器。训练(input _ fn=lambda:iris _ data。train _ input _ fn(train _ x,train_y,args.batch_size),steps=args.train_steps)在上面,我们使用希腊字母的第11个来对输入_fn函数进行了包装100 .步骤参数用来告诉火车方法在指定的培训步骤后停止训练。

  评估经过训练的模型模型已经过训练,现在我们可以对模型性能进行一些统计。

  # 评估模型eval _ result=分类器evaluate(input _ fn=lambda:iris _ data。eval _ input _ fn(test _ x,test_y,args。batch _ size))打印( n测试设置精度:{精度:0.3f}n .格式(* *评估结果))与火车方法的调用不同,我们没有给评价传递步伐参数。因为我们的评估输入【数学】函数只生成一个世的数据。

  运行上面的代码,可以得到下面的结果:

  测试集精度:0.967评估结果字典也包含了平均损失(每个样品的平均损失)、损失(每个小批量的平均损失)和估计量的全局_步骤(它经历的训练迭代次数).

  使用经过训练的模型进行预测(推论)我们已经有一个经过训练的模型(在测试集有比较好的效果)。我们现在可以使用训练好的模型去预测彩虹女神花的品种。与训练、评估类似,我们通过调用预测方法来进行预测:

  # 使用训练好的模型产生预测expected=[Setosa , Versicolor , Virginica ]predict _ x={ SepalLength :[5.1,5.9,6.9], SepalWidth: [3.3,3.0,3.1], PetalLength: [1.7,4.2,5.4], PetalWidth: [0.5,1.5,2.1],}预测=分类器。预测(input _ fn=lambda:iris _ data。评估输入fn(中方法返回一个计算机编程语言迭代器,给每一个例子生成一个预测结果字典。

  template=( n预测为 { } ({:1f } %),预期{})for pred_dict,expec in zip(预测,预期):class _ id=pred _ dict[ class _ ids ][0]probability=pred _ dict[ probabilities ][class _ id]print(template。格式(iris _ data .物种[class_id],100 *概率,expec))运行上面的代码,产生下面的结果:

  .预测为“濑户”(99.6%)、预期的"濑户"预测为“云芝”(99.8%),预期的“云芝”预测为《弗吉尼亚》(97.9%)、预期的“弗吉尼亚”总结使用内置估计量可以快速创建出一个基础模型。

  关于估计器,我们推荐以下阅读资料:

  检查点:了解如何保存和恢复模型数据集:了解如何将数据导入模型中创建自定义估算器:了解如何针对特定问题,编写自定义评估员。

虚幻引擎4官方文档,虚幻引擎文档下载