页面树结构

2017-11-09 ApacheCN 开源组织,第二期邀请成员活动,一起走的更远 : http://www.apachecn.org/member/209.html


MachineLearning 优酷地址 : http://i.youku.com/apachecn

转至元数据结尾
转至元数据起始

语义版本2.0

TensorFlow遵循其公共API的语义版本2.0(semver)。每个版本的TensorFlow都具有这种形式MAJOR.MINOR.PATCH。对每个数字的更改具有以下含义:

  • 主要:向后不兼容的更改。与以前的主要版本一起使用的代码和数据不一定适用于新版本。然而,在某些情况下,现有的TensorFlow数据(图形,检查点和其他原型)可能可迁移到较新版本; 有关数据兼容性的详细信息,请参见下文。

  • MINOR:向后兼容的功能,提高速度等的代码和数据,与之前的次要版本的工作,并只决定了公共API将继续努力保持不变。有关什么是和不是公共API的详细信息,请参见下文。

  • PATCH:向后兼容的错误修复。

 

什么是覆盖

只有TensorFlow的公共API才能在次要版本和补丁版本之间向后兼容。公共API包括

  • 记录的公共Python API,不包括tf.contrib。这包括_tensorflow模块及其子模块中的所有公共函数和类(其名称不以起始 )。请注意,examples/to tools/目录中的代码不能通过tensorflow Python模块访问,因此不兼容性保证。

如果一个符号可以通过张量流Python模块或其子模块,但没有记录,那么它被认为是公共API的一部分。

 

什么没有涵盖

一些API函数被明确地标记为“实验性”,并且可以在次要版本之间以向后兼容的方式进行更改。这些包括:

  • 实验APItf.contribPython中的模块及其子模块,C API中的任何函数或协议缓冲区中的明确注释为实验性的字段。

  • 其他语言:Python语言和C语言中的TensorFlow API,如:

  • C ++(通过头文件暴露 tensorflow/cc)。

  • Java
  • 复合操作的细节: Python中的许多公共功能扩展到图形中的几个原始操作,这些细节将作为保存到磁盘的任何图形的一部分GraphDef。对于次要版本,这些详细信息可以更改。特别地,即使图形的行为不变,现有的检查点仍然可以工作,检查图形之间的精确匹配的回归测试可能会在次要版本中破裂。

  • 浮点数值细节:由ops计算的特定浮点值可能随时变化:用户只能依赖于近似精度和数值稳定性,而不是依赖于计算的特定位。在次要和补丁版本中对数值公式的更改应导致可比较或改进的准确性,而在机器学习中改进特定公式的准确性可能会导致整个系统的精度差。

  • 随机数:随机操作计算的特定随机数 可以随时改变:用户应仅依赖于近似正确的分布和统计强度,而不是计算的特定位。然而,我们将对随机位进行更改,理想情况下,修补程序版本不会更改,所有这些预期的更改都将被记录。

  • 分布式Tensorflow:不支持在单个群集中运行两个不同版本的TensorFlow。不能保证线路协议的向后兼容性。

此外,1.0版本中标记为“已弃用”的API方法可以在任何后续的次要版本中删除。

 

图形和检查点的兼容性

TensorFlow的许多用户将将图形和训练模型保存到磁盘中,以便稍后进行评估或进行更多培训,通常会在此过程中更改TensorFlow的版本。首先,遵循以下主题,使用一个版本的TensorFlow写出的任何图形或检查点都可以使用具有相同主要版本的更高版本的TensorFlow进行加载和评估。但是,尽可能在主要版本上尽可能保持向后兼容,以便长时间使用序列化文件。

保存的TensorFlow数据有两个主要类别:图形和检查点。图形描述了在训练和推理期间运行的操作的数据流图,检查点包含图中变量的保存的张量值。

图通过GraphDef协议缓冲区进行序列化。为了方便(罕见)向后不兼容的图形更改,每个GraphDef都有一个与TensorFlow版本分离的整数版本。语义是:

  • 每个版本的TensorFlow支持GraphDef版本间隔。这个间隔在补丁版本之间是不变的,只会在次要版本中增长。GraphDef减少对版本的支持将仅发生在TensorFlow的主要版本中。

  • 新创建的图表使用最新GraphDef版本。

  • 如果给定版本的TensorFlow支持GraphDef图形版本,它将以与写出的相同的行为(除了浮点数字细节和随机数字)的相同的行为进行加载和评估,无论TensorFlow的主要版本如何。特别地,所有检查点文件将是兼容的。

  • 如果GraphDef在(次要)释放中上限增加到X,则将下限至少六个月增加到X.

例如(数字和版本假设),TensorFlow 1.2可能支持 GraphDef版本4至7.TensorFlow 1.3可以添加GraphDef版本8并支持版本4至8.至少六个月后,TensorFlow 2.0.0可能会放弃对版本4至7的支持,只剩下版本8。

最后,当GraphDef版本的支持被删除时,我们将尝试提供自动将图形转换为较新 GraphDef版本的工具。

有关版本控制的开发人员级详细信息GraphDef,包括如何演变版本以解决更改,请参阅 TensorFlow数据版本控制

 

  • 无标签