『TensorFlow』0.x_&_1.x版本框架改动汇总

时间:2023-12-30 13:56:26

基本数值运算

  • 除法和模运算符(/,//,%)现在匹配 Python(flooring)语义。这也适用于 [tf.div] 和 [tf.mod]。要获取基于强制整数截断的行为,可以使用 [tf.truncatediv] 和 [tf.truncatemod]。

  • 现在推荐使用 [tf.divide()] 作为除法函数。[tf.div()] 将保留,但它的语义不会回应 Python 3 或 [from future] 机制

  • [tf.mul,tf.sub ] 和 [tf.neg] 不再使用,改为 [tf.multiply],[tf.subtract] 和 [tf.negative]。
  • tf.complex_abs已从Python界面中删除。 tf.abs支持复杂张量,现在应该使用 tf.abs。

tensorboard相关

  • 分别替换tf.scalar_summary,tf.histogram_summary,tf.audio_summary,tf.image_summary与tf.summary.scalar,tf.summary.histogram,tf.summary.audio,tf.summary.image。新的摘要ops以名字而不是标签作为它们的第一个参数,意味着摘要ops现在尊重TensorFlow名称范围。

  • 使用tf.summary.FileWriter和tf.summary.FileWriterCache替换tf.train.SummaryWriter和tf.train.SummaryWriterCache。

参数名修改

以下Python函数的参数在引用特定域时,全部改为使用 [axis]。目前仍将保持旧的关键字参数的兼容性,但计划在 1.0 最终版完成前删除。

  • tf.argmax: dimension 变为 axis

  • tf.argmin: dimension 变为 axis

  • tf.count_nonzero: reduction_indices 变为 axis

  • tf.expand_dims: dim 变为 axis

  • tf.reduce_all: reduction_indices 变为 axis

  • tf.reduce_any: reduction_indices 变为 axis

  • tf.reduce_join: reduction_indices 变为 axis

  • tf.reduce_logsumexp: reduction_indices 变为 axis

  • tf.reduce_max: reduction_indices 变为 axis

  • tf.reduce_mean: reduction_indices 变为 axis

  • tf.reduce_min: reduction_indices 变为 axis

  • tf.reduce_prod: reduction_indices 变为 axis

  • tf.reduce_sum: reduction_indices 变为 axis

  • tf.reverse_sequence: batch_dim 变为 batch_axis, seq_dim 变为 seq_axis

  • tf.sparse_concat: concat_dim 变为 axis

  • tf.sparse_reduce_sum: reduction_axes 变为 axis

  • tf.sparse_reduce_sum_sparse: reduction_axes 变为 axis

  • tf.sparse_split: split_dim 变为 axis

其他

其他暂时接触不多的API修改

  • TensorFlow / models已经被移动到一个单独的github库。

  • tf.reverse() 现在取轴的索引要反转。例如 [tf.reverse(a,[True,False,True])] 现在必须写为 [tf.reverse(a,[0,2])]。 [tf.reverse_v2()] 将保持到 TensorFlow 1.0 最终版。

  • [tf.pack] 和 [tf.unpack] 弃用,改为 [tf.stack] 和 [tf.unstack]。

  • [TensorArray.pack] 和 [TensorArray.unpack] 在弃用过程中,将来计划启用 [TensorArray.stack] 和 [TensorArray.unstack]。

  • tf.listdiff 已重命名为 tf.setdiff1d 以匹配 NumPy 命名。

  • tf.inv 已被重命名为 tf.reciprocal(组件的倒数),以避免与 np.inv 的混淆,后者是矩阵求逆。

  • tf.round 现在使用 banker 的舍入(round to even)语义来匹配 NumPy。

  • tf.split现在以相反的顺序并使用不同的关键字接受参数。我们现在将NumPy order 匹配为tf.split(value,num_or_size_splits,axis)。

  • tf.sparse_split现在采用相反顺序的参数,并使用不同的关键字。我们现在将NumPy order 匹配为tf.sparse_split(sp_input,num_split,axis)。注意:我们暂时要求 tf.sparse_split 需要关键字参数。

  • tf.concat现在以相反的顺序并使用不同的关键字接受参数。特别地,我们现在将NumPy order匹配为tf.concat(values,axis,name)。

  • 默认情况下,tf.image.decode_jpeg使用更快的DCT方法,牺牲一点保真度来提高速度。通过指定属性dct_method ='INTEGER_ACCURATE',可以恢复到旧版行为。

  • Template.var_scope属性重命名为.variable_scope

  • SyncReplicasOptimizer已删除,SyncReplicasOptimizerV2重命名为SyncReplicasOptimizer。

  • tf.zeros_initializer()和tf.ones_initializer()现在返回一个必须用initializer参数调用的可调用值,在代码中用tf.zeros_initializer()替换tf.zeros_initializer。

  • SparseTensor.shape已重命名为SparseTensor.dense_shape。与SparseTensorValue.shape相同。

  • 从公共API中删除RegisterShape。使用C++形状函数注册。

  • Python API 中的 _ref dtypes 已经弃用。

  • 在C++ API(in tensorflow/cc)中,Input,Output等已经从tensorflow::ops命名空间移动到tensorflow。

  • 将{softmax,sparse_softmax,sigmoid} _cross_entropy_with_logits的arg order更改为(labels,predictions),并强制使用已命名的args。