提交 9828c2c7 编写于 作者: M Macrobull

Merge remote-tracking branch 'upstream/master'

...@@ -8,6 +8,8 @@ X2Paddle支持将Caffe和TensorFlow模型转至PaddlePaddle模型,同时我们 ...@@ -8,6 +8,8 @@ X2Paddle支持将Caffe和TensorFlow模型转至PaddlePaddle模型,同时我们
任何使用问题均可通过[ISSUE](https://github.com/PaddlePaddle/X2Paddle/issues)的方式及时反馈,或者也可直接通过pull request的方式一起更新代码和文档。 任何使用问题均可通过[ISSUE](https://github.com/PaddlePaddle/X2Paddle/issues)的方式及时反馈,或者也可直接通过pull request的方式一起更新代码和文档。
> **目前X2Paddle主要支持CV部分模型,对于NLP模型暂未支持。**
## [caffe2fluid](caffe2fluid) ## [caffe2fluid](caffe2fluid)
1. 支持将Caffe模型转至PaddlePaddle fluid可加载预测模型 1. 支持将Caffe模型转至PaddlePaddle fluid可加载预测模型
2. 提供Caffe-PaddlePaddle常用API的对比文档[[doc](caffe2fluid/doc)] 2. 提供Caffe-PaddlePaddle常用API的对比文档[[doc](caffe2fluid/doc)]
......
...@@ -69,7 +69,23 @@ bash tools/diff.sh alexnet ../../alexnet.prototxt \ ...@@ -69,7 +69,23 @@ bash tools/diff.sh alexnet ../../alexnet.prototxt \
2. 添加`import mylayer``kaffe/custom_layers/__init__.py` 2. 添加`import mylayer``kaffe/custom_layers/__init__.py`
3. 准备你的pycaffe作为你的定制版本(与以前的env准备相同) 3. 准备你的pycaffe作为你的定制版本(与以前的env准备相同)
> 选择一:编译你自己的caffe.proto来代替proto/caffe.proto > 选择一:
1. 编译你自己的caffe.proto来代替proto/caffe.proto
2. 修改./kaffe/caffe/resolver.py
```python
try:
# Try to import PyCaffe first
import caffe
self.caffe = caffe
except ImportError:
# Fall back to the protobuf implementation
self.caffepb = import_caffepb()
show_fallback_warning()
# 将上述代码替换为下列代码:
self.caffepb = import_caffepb()
show_fallback_warning()
```
> 选择二:更换你的pycaffe到特定的版本 > 选择二:更换你的pycaffe到特定的版本
4. 按照之前步骤,将Caffe模型转换为PaddlePaddle模型 4. 按照之前步骤,将Caffe模型转换为PaddlePaddle模型
......
...@@ -72,7 +72,22 @@ In the model conversion, when encounter an unsupported custom layer, users can a ...@@ -72,7 +72,22 @@ In the model conversion, when encounter an unsupported custom layer, users can a
2. Add ```import mylayer``` to `kaffe/custom_layers/__init__.py` 2. Add ```import mylayer``` to `kaffe/custom_layers/__init__.py`
3. Prepare your pycaffe as your customized version(same as previous env prepare) 3. Prepare your pycaffe as your customized version(same as previous env prepare)
- (option1) replace `proto/caffe.proto` with your own caffe.proto and compile it - (option1)
1. replace `proto/caffe.proto` with your own caffe.proto and compile it
2. modify the ./kaffe/caffe/resolver.py
```python
try:
# Try to import PyCaffe first
import caffe
self.caffe = caffe
except ImportError:
# Fall back to the protobuf implementation
self.caffepb = import_caffepb()
show_fallback_warning()
# replace the above code with:
self.caffepb = import_caffepb()
show_fallback_warning()
```
- (option2) change your `pycaffe` to the customized version - (option2) change your `pycaffe` to the customized version
4. Convert the Caffe model to Fluid model 4. Convert the Caffe model to Fluid model
......
...@@ -51,8 +51,8 @@ layer { ...@@ -51,8 +51,8 @@ layer {
top: "out3" top: "out3"
slice_param { slice_param {
axis: 1 # 使用-1效果相同 axis: 1 # 使用-1效果相同
alice_point: 1 slice_point: 1
alice_point: 2 slice_point: 2
} }
} }
# 输出3个数组,第一个shape:(2,1),第二个shape:(2,1),第三个shape:(2,4) # 输出3个数组,第一个shape:(2,1),第二个shape:(2,1),第三个shape:(2,4)
......
...@@ -172,7 +172,7 @@ def load_model(exe, place, net_file, net_name, net_weight, debug): ...@@ -172,7 +172,7 @@ def load_model(exe, place, net_file, net_name, net_weight, debug):
def get_shape(fluid, program, name): def get_shape(fluid, program, name):
for var in program.list_vars(): for var in program.list_vars():
if var.name == 'data': if var.type == 'Input':
return list(var.shape[1:]) return list(var.shape[1:])
raise ValueError('not found shape for input layer[%s], ' raise ValueError('not found shape for input layer[%s], '
......
...@@ -49,7 +49,7 @@ if [[ -z $PYTHON ]];then ...@@ -49,7 +49,7 @@ if [[ -z $PYTHON ]];then
PYTHON=`which python` PYTHON=`which python`
fi fi
$PYTHON ../../convert.py \ $PYTHON ../../convert.py \
$proto_file \ --npy_path $proto_file \
--caffemodel $caffemodel_file \ --caffemodel $caffemodel_file \
--data-output-path $weight_file\ --data-output-path $weight_file\
--code-output-path $net_file --code-output-path $net_file
......
import os import os
import sys import sys
import subprocess
SHARED_CAFFE_RESOLVER = None SHARED_CAFFE_RESOLVER = None
...@@ -9,6 +10,10 @@ def import_caffepb(): ...@@ -9,6 +10,10 @@ def import_caffepb():
p = os.path.dirname(p) p = os.path.dirname(p)
p = os.path.join(p, '../../proto') p = os.path.join(p, '../../proto')
sys.path.insert(0, p) sys.path.insert(0, p)
pb_version = subprocess.getstatusoutput('protoc --version')[1]
ver_str = pb_version.split(' ')[-1].replace('.', '')
ver_int = int(ver_str)
assert vaer_int >= 360, 'The version of protobuf must be larger than 3.6.0!'
import caffe_pb2 import caffe_pb2
return caffe_pb2 return caffe_pb2
......
...@@ -49,13 +49,13 @@ def detectionoutput_layer(inputs, ...@@ -49,13 +49,13 @@ def detectionoutput_layer(inputs,
pbv = fluid.layers.reshape(x=pbv, shape=[-1, 4]) pbv = fluid.layers.reshape(x=pbv, shape=[-1, 4])
mbox_loc = inputs[0] mbox_loc = inputs[0]
mbox_loc = fluid.layers.reshape( mbox_loc = fluid.layers.reshape(
x=mbox_loc, shape=[-1, mbox_conf_flatten.shape[1], 4]) x=mbox_loc, shape=[0, mbox_conf_flatten.shape[1], 4])
default = {"nms_threshold": 0.3, "top_k": 10, "eta": 1.0} default = {"nms_threshold": 0.3, "top_k": 10, "eta": 1.0}
fields = ['eta', 'top_k', 'nms_threshold'] fields = ['eta', 'top_k', 'nms_threshold']
for f in default.keys(): for f in default.keys():
if not nms_param.has_key(f): if f not in nms_param:
nms_param[f] = default[f] nms_param[f] = default[f]
nmsed_outs = fluid.layers.detection_output( nmsed_outs = fluid.layers.detection_output(
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
more info can be found here: http://caffe.berkeleyvision.org/tutorial/layers/flatten.html more info can be found here: http://caffe.berkeleyvision.org/tutorial/layers/flatten.html
""" """
from .register import register from .register import register
from functools import reduce
def flatten_shape(input_shape, axis=1, end_axis=-1): def flatten_shape(input_shape, axis=1, end_axis=-1):
""" calculate the output shape of this layer using input shape """ calculate the output shape of this layer using input shape
...@@ -29,6 +29,8 @@ def flatten_shape(input_shape, axis=1, end_axis=-1): ...@@ -29,6 +29,8 @@ def flatten_shape(input_shape, axis=1, end_axis=-1):
% (start_axis, end_axis) % (start_axis, end_axis)
output_shape = input_shape[0:start_axis] output_shape = input_shape[0:start_axis]
flat_sz = reduce(lambda a, b: a * b, input_shape[start_axis:end_axis]) flat_sz = reduce(lambda a, b: a * b, input_shape[start_axis:end_axis])
if flat_sz < 0:
flat_sz = -1
output_shape += [flat_sz] output_shape += [flat_sz]
output_shape += input_shape[end_axis:-1] output_shape += input_shape[end_axis:-1]
...@@ -52,9 +54,8 @@ def flatten_layer(input, name, axis=1, end_axis=-1): ...@@ -52,9 +54,8 @@ def flatten_layer(input, name, axis=1, end_axis=-1):
input_shape = list(input.shape) input_shape = list(input.shape)
if input_shape[0] == -1: if input_shape[0] == -1:
input_shape[0] = 1 input_shape[0] = 0
output_shape = flatten_shape(input_shape, axis=axis, end_axis=end_axis) output_shape = flatten_shape(input_shape, axis=axis, end_axis=end_axis)
output_shape[0] = -1
else: else:
output_shape = flatten_shape(input_shape, axis=axis, end_axis=end_axis) output_shape = flatten_shape(input_shape, axis=axis, end_axis=end_axis)
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
more info can be found here: http://caffe.berkeleyvision.org/tutorial/layers/reshape.html more info can be found here: http://caffe.berkeleyvision.org/tutorial/layers/reshape.html
""" """
from .register import register from .register import register
from functools import reduce
def import_fluid(): def import_fluid():
...@@ -61,43 +62,6 @@ def reshape_shape(input_sp, shape, axis=0, num_axes=-1): ...@@ -61,43 +62,6 @@ def reshape_shape(input_sp, shape, axis=0, num_axes=-1):
assert len(output_shape) == num_axes_retained + num_new_axes,\ assert len(output_shape) == num_axes_retained + num_new_axes,\
"[Reshape]invalid dims of output shape[%s]" % (str(output_shape)) "[Reshape]invalid dims of output shape[%s]" % (str(output_shape))
inferred_axis = -1
copy_axes = []
constant_count = 1
for i in range(num_new_axes):
top_dim = shape['dim'][i]
if top_dim == 0:
copy_axes.append(i)
copy_axis_index = start_axis + i
output_shape[copy_axis_index] = input_shape[copy_axis_index]
elif top_dim == -1:
assert inferred_axis == -1, "[Reshape]new shape contains multiple -1 dims"
inferred_axis = i
else:
constant_count *= top_dim
if inferred_axis >= 0:
explicit_count = constant_count
l = input_shape[0:start_axis]
if len(l) > 0:
explicit_count *= count(l)
l = input_shape[end_axis:]
if len(l) > 0:
explicit_count *= count(l)
for i in range(len(copy_axes)):
explicit_count *= output_shape[start_axis + copy_axes[i]]
assert input_count % explicit_count == 0, "[Reshape]botom count[%d] "\
"must be divisible by product of the specified dimensions[%d] "\
% (input_count, explicit_count)
output_shape[start_axis + inferred_axis] = input_count / explicit_count
output_count = count(output_shape)
assert output_count == input_count, "[Reshape]output count[%d] must match input count[%d]" % (
output_count, input_count)
return output_shape return output_shape
...@@ -115,19 +79,16 @@ def reshape_layer(input, name, shape, axis=0, num_axes=-1): ...@@ -115,19 +79,16 @@ def reshape_layer(input, name, shape, axis=0, num_axes=-1):
output (variable): output variable for this layer output (variable): output variable for this layer
""" """
fluid = import_fluid() fluid = import_fluid()
input_shape = list(input.shape) input_shape = list(input.shape)
if input_shape[0] == -1: if input_shape[0] == -1:
input_shape[0] = 1 input_shape[0] = 0
output_shape = reshape_shape(input_shape, shape, axis, num_axes) output_shape = reshape_shape(input_shape, shape, axis, num_axes)
output_shape[0] = -1
else: else:
output_shape = reshape_shape(input_shape, shape, axis, num_axes) output_shape = reshape_shape(input_shape, shape, axis, num_axes)
output = fluid.layers.reshape(input, shape=output_shape, name=name) output = fluid.layers.reshape(input, shape=output_shape, name=name)
return output return output
register(kind='Reshape', shape=reshape_shape, layer=reshape_layer) register(kind='Reshape', shape=reshape_shape, layer=reshape_layer)
...@@ -103,7 +103,7 @@ class Network(object): ...@@ -103,7 +103,7 @@ class Network(object):
place = self.paddle_env['place'] place = self.paddle_env['place']
exe = self.paddle_env['exe'] exe = self.paddle_env['exe']
data_dict = np.load(data_path).item() data_dict = np.load(data_path, allow_pickle=True).item()
for op_name in data_dict: for op_name in data_dict:
if op_name == 'caffe2fluid_name_trace': if op_name == 'caffe2fluid_name_trace':
self.name_trace = data_dict[op_name] self.name_trace = data_dict[op_name]
...@@ -441,7 +441,7 @@ class Network(object): ...@@ -441,7 +441,7 @@ class Network(object):
need_transpose = True need_transpose = True
if need_transpose: if need_transpose:
in_order = range(dims) in_order = list(range(dims))
in_order.remove(axis) in_order.remove(axis)
in_order.append(axis) in_order.append(axis)
input = fluid.layers.transpose( input = fluid.layers.transpose(
......
...@@ -3,6 +3,9 @@ from collections import namedtuple ...@@ -3,6 +3,9 @@ from collections import namedtuple
from .errors import KaffeError from .errors import KaffeError
Tensor5DShape = namedtuple('Tensor5DShape',
['batch_size', 'data1', 'daat2', 'data3', 'data4'])
Tensor4DShape = namedtuple('Tensor4DShape', Tensor4DShape = namedtuple('Tensor4DShape',
['batch_size', 'channels', 'height', 'width']) ['batch_size', 'channels', 'height', 'width'])
......
...@@ -103,6 +103,8 @@ tensorflow2fluid在如下tensorflow模型上测试了模型转换前后的diff ...@@ -103,6 +103,8 @@ tensorflow2fluid在如下tensorflow模型上测试了模型转换前后的diff
| | ResNet V1 50 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py) | 1.31E-06 | | | ResNet V1 50 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py) | 1.31E-06 |
| | ResNet V1 101 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py) | 4.74E-07 | | | ResNet V1 101 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py) | 4.74E-07 |
| | Inception V3 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v3.py) | 1.55E-04 | | | Inception V3 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v3.py) | 1.55E-04 |
| | NASNet_Large | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/nasnet/nasnet.py) | - |
| | PNASNet_Large | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/nasnet/pnasnet.py) | - |
| 目标检测 | YOLO-Small | [code](https://github.com/gliese581gg/YOLO_tensorflow) | 1.40E-06 | | 目标检测 | YOLO-Small | [code](https://github.com/gliese581gg/YOLO_tensorflow) | 1.40E-06 |
| | YOLO-V3 | [code](https://github.com/mystic123/tensorflow-yolo-v3) | 6.20E-04 | | | YOLO-V3 | [code](https://github.com/mystic123/tensorflow-yolo-v3) | 6.20E-04 |
| 语义分割 | Unet | [code](https://github.com/jakeret/tf_unet) | 4.17E-07 | | 语义分割 | Unet | [code](https://github.com/jakeret/tf_unet) | 4.17E-07 |
......
...@@ -4,146 +4,145 @@ ...@@ -4,146 +4,145 @@
| 序号 | TensorFlow接口 | PaddlePaddle接口 | 备注 | | 序号 | TensorFlow接口 | PaddlePaddle接口 | 备注 |
| ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | ---- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 1 | [tf.abs](https://www.tensorflow.org/api_docs/python/tf/abs) | [fluid.layers.abs](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#abs) | 功能一致 | | 1 | [tf.abs](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/abs) | [fluid.layers.abs](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#abs) | 功能一致 |
| 2 | [tf.add](https://www.tensorflow.org/api_docs/python/tf/add) | [fluid.layers.elementwise_add](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_add) | 功能一致 | | 2 | [tf.add](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/add) | [fluid.layers.elementwise_add](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_add) | 功能一致 |
| 3 | [tf.argmax](https://www.tensorflow.org/api_docs/python/tf/argmax) | [fluid.layers.argmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#argmax) | 功能一致 | | 3 | [tf.argmax](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/argmax) | [fluid.layers.argmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#argmax) | 功能一致 |
| 4 | [tf.argmin](https://www.tensorflow.org/api_docs/python/tf/argmin) | [fluid.layers.argmin](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#argmin) | 功能一致 | | 4 | [tf.argmin](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/argmin) | [fluid.layers.argmin](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#argmin) | 功能一致 |
| 5 | [tf.assign](https://www.tensorflow.org/api_docs/python/tf/assign) | [fluid.layers.assign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#assign) | 功能一致 | | 5 | [tf.assign](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/assign) | [fluid.layers.assign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#assign) | 功能一致 |
| 6 | [tf.assign_add](https://www.tensorflow.org/api_docs/python/tf/assign_add) | [fluid.layers.increment](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#increment) | 功能一致 | | 6 | [tf.assign_add](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/assign_add) | [fluid.layers.increment](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#increment) | 功能一致 |
| 7 | [tf.case](https://www.tensorflow.org/api_docs/python/tf/case) | [fluid.layers.Switch](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#Switch) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.case.md) | | 7 | [tf.case](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/case) | [fluid.layers.Switch](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#Switch) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.case.md) |
| 8 | [tf.cast](https://www.tensorflow.org/api_docs/python/tf/cast) | [fluid.layers.cast](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#cast) | 功能一致 | | 8 | [tf.cast](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/dtypes/cast) | [fluid.layers.cast](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#cast) | 功能一致 |
| 9 | [tf.clip_by_global_norm](https://www.tensorflow.org/api_docs/python/tf/clip_by_global_norm) | [fluid.clip.GradientClipByGlobalNorm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/clip_cn.html#gradientclipbyglobalnorm) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.clip_by_global_norm.md) | | 9 | [tf.clip_by_global_norm](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/clip_by_global_norm) | [fluid.clip.GradientClipByGlobalNorm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/clip_cn.html#gradientclipbyglobalnorm) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.clip_by_global_norm.md) |
| 10 | [tf.clip_by_norm](https://www.tensorflow.org/api_docs/python/tf/clip_by_norm) | [fluid.layers.clip_by_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.clip_by_norm) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.clip_by_norm.md) | | 10 | [tf.clip_by_norm](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/clip_by_norm) | [fluid.layers.clip_by_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.clip_by_norm) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.clip_by_norm.md) |
| 11 | [tf.clip_by_value](https://www.tensorflow.org/api_docs/python/tf/clip_by_value) | [fluid.layers.clip](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#clip) | 功能一致 | | 11 | [tf.clip_by_value](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/clip_by_value) | [fluid.layers.clip](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#clip) | 功能一致 |
| 12 | [tf.concat](https://www.tensorflow.org/api_docs/python/tf/concat) | [fluid.layers.concat](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.concat) | 功能一致 | | 12 | [tf.concat](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/concat) | [fluid.layers.concat](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.concat) | 功能一致 |
| 13 | [tf.cond](https://www.tensorflow.org/api_docs/python/tf/cond) | [fluid.layers.ifElse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#ifElse) | 功能一致 | | 13 | [tf.cond](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/cond) | [fluid.layers.ifElse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#ifElse) | 功能一致 |
| 14 | [tf.constant](https://www.tensorflow.org/api_docs/python/tf/constant) | [fluid.layers.fill_constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fill_constant) | 功能一致 | | 14 | [tf.constant](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/constant) | [fluid.layers.fill_constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fill_constant) | 功能一致 |
| 15 | [tf.contrib.layers.batch_norm](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/batch_norm) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#batch_norm) | 功能一致 | | 15 | [tf.contrib.layers.batch_norm](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/batch_norm) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#batch_norm) | 功能一致 |
| 16 | [tf.contrib.layers.flatten](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/flatten) | [fluid.layers.flatten](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#flatten) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.contrib.layers.flatten.md) | | 16 | [tf.contrib.layers.flatten](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/flatten) | [fluid.layers.flatten](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#flatten) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.contrib.layers.flatten.md) |
| 17 | [tf.contrib.layers.fully_connected](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/fully_connected) | [fluid.layers.fc](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fc) | 功能一致 | | 17 | [tf.contrib.layers.fully_connected](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/fully_connected) | [fluid.layers.fc](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fc) | 功能一致 |
| 18 | [tf.contrib.layers.one_hot_encoding](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/one_hot_encoding) | [fluid.layers.one_hot](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#one_hot) | 功能一致 | | 18 | [tf.contrib.layers.one_hot_encoding](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/one_hot_encoding) | [fluid.layers.one_hot](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#one_hot) | 功能一致 |
| 19 | [tf.contrib.layers.softmax](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/softmax) | [fluid.layers.softmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax) | 功能一致 | | 19 | [tf.contrib.layers.softmax](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/softmax) | [fluid.layers.softmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax) | 功能一致 |
| 20 | [tf.contrib.layers.xavier_initializer](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/xavier_initializer) | [fluid.initializer.Xavier](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#xavier) | 功能一致 | | 20 | [tf.contrib.layers.xavier_initializer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/xavier_initializer) | [fluid.initializer.Xavier](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#xavier) | 功能一致 |
| 21 | [tf.contrib.rnn.GRUCell](https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/GRUCell) | [fluid.layers.gru_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#gru_unit) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.contrib.rnn.GRUCell.md) | | 21 | [tf.nn.rnn.GRUCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/GRUCell) | [fluid.layers.gru_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#gru_unit) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.contrib.rnn.GRUCell.md) |
| 22 | [tf.contrib.rnn.MultiRNNCell](https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/MultiRNNCell) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.rnn_cell.MultiRNNCell.md) | | 22 | [tf.nn.rnn.MultiRNNCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/MultiRNNCell) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.rnn_cell.MultiRNNCell.md) |
| 23 | [tf.contrib.rnn.static_rnn](https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/static_rnn) | [fluid.layers.DynamicRNN](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamicrnn) | 功能一致 | | 23 | [tf.nn.rnn.static_rnn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/static_rnn) | [fluid.layers.DynamicRNN](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamicrnn) | 功能一致 |
| 24 | [tf.convert_to_tensor](https://www.tensorflow.org/api_docs/python/tf/convert_to_tensor) | [fluid.layers.assign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#assign) | 功能一致 | | 24 | [tf.convert_to_tensor](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/convert_to_tensor) | [fluid.layers.assign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#assign) | 功能一致 |
| 25 | [tf.cos](https://www.tensorflow.org/api_docs/python/tf/cos) | [fluid.layers.cos](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#cos) | 功能一致 | | 25 | [tf.cos](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/cos) | [fluid.layers.cos](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#cos) | 功能一致 |
| 26 | [tf.div](https://www.tensorflow.org/api_docs/python/tf/div) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_div) | 功能一致 | | 26 | [tf.div](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/div) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_div) | 功能一致 |
| 27 | [tf.divide](https://www.tensorflow.org/api_docs/python/tf/divide) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_div) | 功能一致 | | 27 | [tf.divide](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/divide) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_div) | 功能一致 |
| 28 | [tf.dropout](https://www.tensorflow.org/api_docs/python/tf/dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.dropout) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.dropout.md) | | 28 | [tf.dropout](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.dropout) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.dropout.md) |
| 29 | [tf.equal](https://www.tensorflow.org/api_docs/python/tf/equal) | [运算符==](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 | | 29 | [tf.equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/equal) | [运算符==](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 |
| 30 | [tf.exp](https://www.tensorflow.org/api_docs/python/tf/exp) | [fluid.layers.exp](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#exp) | 功能一致 | | 30 | [tf.exp](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/exp) | [fluid.layers.exp](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#exp) | 功能一致 |
| 31 | [tf.expand_dims](https://www.tensorflow.org/api_docs/python/tf/expand_dims) | [fluid.layers.unsqueeze](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#unsqueeze) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.expand_dims.md) | | 31 | [tf.expand_dims](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/expand_dims) | [fluid.layers.unsqueeze](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#unsqueeze) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.expand_dims.md) |
| 32 | [tf.fill](https://www.tensorflow.org/api_docs/python/tf/fill) | [fluid.layers.fill_constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.fill_constant) | 功能一致 | | 32 | [tf.fill](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/fill) | [fluid.layers.fill_constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.fill_constant) | 功能一致 |
| 33 | [tf.floor](https://www.tensorflow.org/api_docs/python/tf/floor) | [fluid.layers.floor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#floor) | 功能一致 | | 33 | [tf.floor](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/floor) | [fluid.layers.floor](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#floor) | 功能一致 |
| 34 | [tf.gather](https://www.tensorflow.org/api_docs/python/tf/gather) | [fluid.layers.gather](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.gather) | 功能一致 | | 34 | [tf.gather](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/gather) | [fluid.layers.gather](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.gather) | 功能一致 |
| 35 | [tf.greater](https://www.tensorflow.org/api_docs/python/tf/greater) | [运算符>](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 | | 35 | [tf.greater](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/greater) | [运算符>](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 |
| 36 | [tf.greater_equal](https://www.tensorflow.org/api_docs/python/tf/greater_equal) | [运算符>=](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 | | 36 | [tf.greater_equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/greater_equal) | [运算符>=](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 |
| 37 | [tf.image.non_max_suppression](https://www.tensorflow.org/api_docs/python/tf/image/non_max_suppression) | [fluid.layers.multiclass_nms](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.multiclass_nms) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.image.non_max_suppression.md) | | 37 | [tf.image.non_max_suppression](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/non_max_suppression) | [fluid.layers.multiclass_nms](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.multiclass_nms) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.image.non_max_suppression.md) |
| 38 | [tf.image.resize_bilinear](https://www.tensorflow.org/api_docs/python/tf/image/resize_bilinear) | [fluid.layers.resize_bilinear](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.resize_bilinear) | 功能一致 | | 38 | [tf.image.resize_bilinear](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/resize_bilinear) | [fluid.layers.resize_bilinear](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.resize_bilinear) | 功能一致 |
| 39 | [tf.image.resize_images](https://www.tensorflow.org/api_docs/python/tf/image/resize_images) | [fluid.layers.image_resize](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.image_resize) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.image.resize_images.md) | | 39 | [tf.image.resize_images](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/resize_images) | [fluid.layers.image_resize](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.image_resize) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.image.resize_images.md) |
| 40 | [tf.image.resize_nearest_neighbor](https://www.tensorflow.org/api_docs/python/tf/image/resize_nearest_neighbor) | [fluid.layers.resize_nearest](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.resize_nearest) | 功能一致 | | 40 | [tf.image.resize_nearest_neighbor](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/resize_nearest_neighbor) | [fluid.layers.resize_nearest](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.resize_nearest) | 功能一致 |
| 41 | [tf.is_finite](https://www.tensorflow.org/api_docs/python/tf/is_finite) | [fluid.layers.isfinite](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#isfinite) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.math.is_finite.md) | | 41 | [tf.is_finite](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/is_finite) | [fluid.layers.isfinite](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#isfinite) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.math.is_finite.md) |
| 42 | [tf.layers.batch_normalization](https://www.tensorflow.org/api_docs/python/tf/layers/batch_normalization) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.batch_norm) | 功能一致 | | 42 | [tf.layers.batch_normalization](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/batch_normalization) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.batch_norm) | 功能一致 |
| 43 | [tf.layers.conv2d](https://www.tensorflow.org/api_docs/python/tf/layers/conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.layers.conv2d.md) | | 43 | [tf.layers.conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.layers.conv2d.md) |
| 44 | [tf.layers.dense](https://www.tensorflow.org/api_docs/python/tf/layers/dense) | [fluid.layers.fc](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fc) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.layers.dense.md) | | 44 | [tf.layers.dense](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/dense) | [fluid.layers.fc](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#fc) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.layers.dense.md) |
| 45 | [tf.layers.dropout](https://www.tensorflow.org/api_docs/python/tf/layers/dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dropout) | 功能一致 | | 45 | [tf.layers.dropout](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dropout) | 功能一致 |
| 46 | [tf.layers.Dropout](https://www.tensorflow.org/api_docs/python/tf/layers/Dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dropout) | 功能一致 | | 46 | [tf.layers.Dropout](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/Dropout) | [fluid.layers.dropout](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dropout) | 功能一致 |
| 47 | [tf.layers.flatten](https://www.tensorflow.org/api_docs/python/tf/layers/flatten) | [fluid.layers.flatten](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.flatten) | 功能一致 | | 47 | [tf.layers.flatten](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/flatten) | [fluid.layers.flatten](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.flatten) | 功能一致 |
| 48 | [tf.less](https://www.tensorflow.org/api_docs/python/tf/less) | [运算符<](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 | | 48 | [tf.less](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/less) | [运算符<](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 |
| 49 | [tf.less_equal](https://www.tensorflow.org/api_docs/python/tf/less_equal) | [运算符<=](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 | | 49 | [tf.less_equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/less_equal) | [运算符<=](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/compare_op.md) | 功能一致 |
| 50 | [tf.log](https://www.tensorflow.org/api_docs/python/tf/log) | [fluid.layers.log](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.log) | 功能一致 | | 50 | [tf.log](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/log) | [fluid.layers.log](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.log) | 功能一致 |
| 51 | [tf.logical_and](https://www.tensorflow.org/api_docs/python/tf/logical_and) | [fluid.layers.logical_and](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_and) | 功能一致 | | 51 | [tf.logical_and](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/logical_and) | [fluid.layers.logical_and](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_and) | 功能一致 |
| 52 | [tf.logical_not](https://www.tensorflow.org/api_docs/python/tf/logical_not) | [fluid.layers.logical_not](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_not) | 功能一致 | | 52 | [tf.logical_not](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/logical_not) | [fluid.layers.logical_not](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_not) | 功能一致 |
| 53 | [tf.logical_or](https://www.tensorflow.org/api_docs/python/tf/logical_or) | [fluid.layers.logical_or](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_or) | 功能一致 | | 53 | [tf.logical_or](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/logical_or) | [fluid.layers.logical_or](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#logical_or) | 功能一致 |
| 54 | [tf.losses.mean_squared_error](https://www.tensorflow.org/api_docs/python/tf/losses/mean_squared_error) | [fluid.layers.square_error_cost](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#square_error_cost) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.losses.mean_and_squared_error.md) | | 54 | [tf.losses.mean_squared_error](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/losses/mean_squared_error) | [fluid.layers.square_error_cost](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#square_error_cost) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.losses.mean_and_squared_error.md) |
| 55 | [tf.losses.sigmoid_cross_entropy](https://www.tensorflow.org/api_docs/python/tf/losses/sigmoid_cross_entropy) | [fluid.layers.sigmoid_cross_entropy_with_logits](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid_cross_entropy_with_logits) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.losses.sigmoid_cross_entropy.md) | | 55 | [tf.losses.sigmoid_cross_entropy](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/losses/sigmoid_cross_entropy) | [fluid.layers.sigmoid_cross_entropy_with_logits](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid_cross_entropy_with_logits) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.losses.sigmoid_cross_entropy.md) |
| 56 | [tf.losses.softmax_cross_entropy](https://www.tensorflow.org/api_docs/python/tf/losses/softmax_cross_entropy) | [fluid.layers.softmax_with_cross_entropy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.softmax_with_cross_entropy) | 功能一致 | | 56 | [tf.losses.softmax_cross_entropy](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/losses/softmax_cross_entropy) | [fluid.layers.softmax_with_cross_entropy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.softmax_with_cross_entropy) | 功能一致 |
| 57 | [tf.matmul](https://www.tensorflow.org/api_docs/python/tf/matmul) | [fluid.layers.matmul](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#matmul) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.matmul.md) | | 57 | [tf.matmul](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/linalg/matmul) | [fluid.layers.matmul](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#matmul) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.matmul.md) |
| 58 | [tf.maximum](https://www.tensorflow.org/api_docs/python/tf/maximum) | [fluid.layers.elementwise_max](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_max) | 功能一致 | | 58 | [tf.maximum](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/maximum) | [fluid.layers.elementwise_max](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_max) | 功能一致 |
| 59 | [tf.metrics.accuracy](https://www.tensorflow.org/api_docs/python/tf/metrics/accuracy) | [fluid.layers.accuracy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.accuracy) | 功能一致 | | 59 | [tf.metrics.accuracy](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/metrics/accuracy) | [fluid.layers.accuracy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.accuracy) | 功能一致 |
| 60 | [tf.metrics.mean](https://www.tensorflow.org/api_docs/python/tf/metrics/mean) | [fluid.layers.mean](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#mean) | 功能一致 | | 60 | [tf.metrics.mean](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/metrics/mean) | [fluid.layers.mean](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#mean) | 功能一致 |
| 61 | [tf.minimum](https://www.tensorflow.org/api_docs/python/tf/minimum) | [fluid.layers.elementwise_min](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_min) | 功能一致 | | 61 | [tf.minimum](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/minimum) | [fluid.layers.elementwise_min](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_min) | 功能一致 |
| 62 | [tf.multiply](https://www.tensorflow.org/api_docs/python/tf/multiply) | [fluid.layers.elementwise_mul](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_mul) | 功能一致 | | 62 | [tf.multiply](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/multiply) | [fluid.layers.elementwise_mul](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#elementwise_mul) | 功能一致 |
| 63 | [tf.nn.avg_pool](https://www.tensorflow.org/api_docs/python/tf/nn/avg_pool) | [fluid.layers.pool2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.pool2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.avg_pool.md) | | 63 | [tf.nn.avg_pool](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/avg_pool) | [fluid.layers.pool2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.pool2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.avg_pool.md) |
| 64 | [tf.nn.batch_normalization](https://www.tensorflow.org/api_docs/python/tf/nn/batch_normalization) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.batch_norm) | 功能一致 | | 64 | [tf.nn.batch_normalization](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/batch_normalization) | [fluid.layers.batch_norm](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.batch_norm) | 功能一致 |
| 65 | [tf.nn.bidirectional_dynamic_rnn](https://www.tensorflow.org/api_docs/python/tf/nn/bidirectional_dynamic_rnn) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.bidirectional_dynamic_rnn.md) | | 65 | [tf.nn.bidirectional_dynamic_rnn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/bidirectional_dynamic_rnn) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.bidirectional_dynamic_rnn.md) |
| 66 | [tf.nn.conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv2d.md) | | 66 | [tf.nn.conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv2d.md) |
| 67 | [tf.nn.conv2d_transpose](https://www.tensorflow.org/api_docs/python/tf/nn/conv2d_transpose) | [fluid.layers.conv2d_transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d_transpose) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv2d_transpose.md) | | 67 | [tf.nn.conv2d_transpose](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv2d_transpose) | [fluid.layers.conv2d_transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d_transpose) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv2d_transpose.md) |
| 68 | [tf.nn.conv3d_transpose](https://www.tensorflow.org/api_docs/python/tf/nn/conv3d_transpose) | [fluid.layers.conv3d_transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d_transpose) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv3d_transpose.md) | | 68 | [tf.nn.conv3d_transpose](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv3d_transpose) | [fluid.layers.conv3d_transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d_transpose) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.conv3d_transpose.md) |
| 69 | [tf.nn.depthwise_conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.depthwise_conv2d.md) | | 69 | [tf.nn.depthwise_conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/depthwise_conv2d) | [fluid.layers.conv2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.conv2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.depthwise_conv2d.md) |
| 70 | [tf.nn.dynamic_rnn](https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn) | [fluid.layers.DynamicRNN](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#DynamicRNN) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.dynamic_rnn.md) | | 70 | [tf.nn.dynamic_rnn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/dynamic_rnn) | [fluid.layers.DynamicRNN](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#DynamicRNN) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.dynamic_rnn.md) |
| 71 | [tf.nn.l2_normalize](https://www.tensorflow.org/api_docs/python/tf/nn/l2_normalize) | [fluid.layers.l2_normalize](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#l2_normalize) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.l2_normalize.md) | | 71 | [tf.nn.l2_normalize](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/l2_normalize) | [fluid.layers.l2_normalize](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#l2_normalize) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.l2_normalize.md) |
| 72 | [tf.nn.leaky_relu](https://www.tensorflow.org/api_docs/python/tf/nn/leaky_relu) | [fluid.layers.leaky_relu](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.leaky_relu) | 功能一致 | | 72 | [tf.nn.leaky_relu](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/leaky_relu) | [fluid.layers.leaky_relu](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.leaky_relu) | 功能一致 |
| 73 | [tf.nn.lrn](https://www.tensorflow.org/api_docs/python/tf/nn/lrn) | [fluid.layers.lrn](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.lrn) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.lrn.md) | | 73 | [tf.nn.lrn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/local_response_normalization) | [fluid.layers.lrn](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.lrn) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.lrn.md) |
| 74 | [tf.nn.max_pool](https://www.tensorflow.org/api_docs/python/tf/nn/max_pool) | [fluid.layers.pool2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.pool2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.max_pool.md) | | 74 | [tf.nn.max_pool](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/max_pool) | [fluid.layers.pool2d](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.pool2d) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.max_pool.md) |
| 75 | [tf.nn.relu](https://www.tensorflow.org/api_docs/python/tf/nn/relu) | [fluid.layers.relu](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#relu) | 功能一致 | | 75 | [tf.nn.relu](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/relu) | [fluid.layers.relu](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#relu) | 功能一致 |
| 76 | [tf.nn.relu6](https://www.tensorflow.org/api_docs/python/tf/nn/relu6) | [fluid.layers.relu6](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.relu6) | 功能一致 | | 76 | [tf.nn.relu6](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/relu6) | [fluid.layers.relu6](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.relu6) | 功能一致 |
| 77 | [tf.nn.rnn_cell.LSTMCell](https://www.tensorflow.org/api_docs/python/tf/nn/rnn_cell/LSTMCell) | [fluid.layers.lstm_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#lstm_unit) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.rnn_cell.LSTMCell.md) | | 77 | [tf.nn.rnn_cell.LSTMCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/LSTMCell) | [fluid.layers.lstm_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#lstm_unit) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.rnn_cell.LSTMCell.md) |
| 78 | [tf.nn.separable_conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.separable_conv2d.md) | | 78 | [tf.nn.separable_conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/separable_conv2d) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.separable_conv2d.md) |
| 79 | [tf.nn.sigmoid](https://www.tensorflow.org/api_docs/python/tf/nn/sigmoid) | [fluid.layers.sigmoid](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid) | 功能一致 | | 79 | [tf.nn.sigmoid](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/sigmoid) | [fluid.layers.sigmoid](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid) | 功能一致 |
| 80 | [tf.nn.sigmoid_cross_entropy_with_logits](https://www.tensorflow.org/api_docs/python/tf/nn/sigmoid_cross_entropy_with_logits) | [fluid.layers.sigmoid_cross_entropy_with_logits](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid_cross_entropy_with_logits) | 功能一致 | | 80 | [tf.nn.sigmoid_cross_entropy_with_logits](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/sigmoid_cross_entropy_with_logits) | [fluid.layers.sigmoid_cross_entropy_with_logits](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid_cross_entropy_with_logits) | 功能一致 |
| 81 | [tf.nn.softmax](https://www.tensorflow.org/api_docs/python/tf/nn/softmax) | [fluid.layers.softmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax) | 功能一致 | | 81 | [tf.nn.softmax](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/softmax) | [fluid.layers.softmax](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax) | 功能一致 |
| 82 | [tf.nn.softmax_cross_entropy_with_logits](https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits) | [fluid.layers.softmax_with_cross_entropy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax_with_cross_entropy) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.softmax_cross_entropy_with_logits.md) | | 82 | [tf.nn.softmax_cross_entropy_with_logits](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/softmax_cross_entropy_with_logits) | [fluid.layers.softmax_with_cross_entropy](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softmax_with_cross_entropy) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.softmax_cross_entropy_with_logits.md) |
| 83 | [tf.nn.softplus](https://www.tensorflow.org/api_docs/python/tf/nn/softplus) | [fluid.layers.softplus](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softplus) | 功能一致 | | 83 | [tf.nn.softplus](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/softplus) | [fluid.layers.softplus](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#softplus) | 功能一致 |
| 84 | [tf.nn.softsign](https://www.tensorflow.org/api_docs/python/tf/nn/softsign) | [fluid.layers.softsign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.softsign) | 功能一致 | | 84 | [tf.nn.softsign](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/softsign) | [fluid.layers.softsign](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.softsign) | 功能一致 |
| 85 | [tf.nn.tanh](https://www.tensorflow.org/api_docs/python/tf/nn/tanh) | [fluid.layers.tanh](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#tanh) | 功能一致 | | 85 | [tf.nn.tanh](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/tanh) | [fluid.layers.tanh](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#tanh) | 功能一致 |
| 86 | [tf.one_hot](https://www.tensorflow.org/api_docs/python/tf/one_hot) | [fluid.layers.one_hot](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.one_hot) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.one_hot.md) | | 86 | [tf.one_hot](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/one_hot) | [fluid.layers.one_hot](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.one_hot) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.one_hot.md) |
| 87 | [tf.ones](https://www.tensorflow.org/api_docs/python/tf/ones) | [fluid.layers.ones](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#ones) | 功能一致 | | 87 | [tf.ones](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/ones) | [fluid.layers.ones](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#ones) | 功能一致 |
| 88 | [tf.ones_initializer](https://www.tensorflow.org/api_docs/python/tf/ones_initializer) | [fluid.initializer.Constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#constant) | 功能一致 | | 88 | [tf.intializers.ones](https://www.tensorflow.org/versions/r1.14/api_docs/python/tf/initializers/ones) | [fluid.initializer.Constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#constant) | 功能一致 |
| 89 | [tf.pad](https://www.tensorflow.org/api_docs/python/tf/pad) | [fluid.layers.pad](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#pad) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.pad.md) | | 89 | [tf.pad](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/pad) | [fluid.layers.pad](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#pad) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.pad.md) |
| 90 | [tf.placeholder](https://www.tensorflow.org/api_docs/python/tf/placeholder) | [fluid.layers.data](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.data) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.placeholder.md) | | 90 | [tf.placeholder](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/placeholder) | [fluid.layers.data](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.data) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.placeholder.md) |
| 91 | [tf.pow](https://www.tensorflow.org/api_docs/python/tf/pow) | [fluid.layers.pow](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#pow) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.pow.md) | | 91 | [tf.pow](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/pow) | [fluid.layers.pow](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#pow) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.pow.md) |
| 92 | [tf.print](https://www.tensorflow.org/api_docs/python/tf/print) | [fluid.layers.print](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#print) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.print.md) | | 92 | [tf.print](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/print) | [fluid.layers.print](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#print) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.print.md) |
| 93 | [tf.py_func](https://www.tensorflow.org/api_docs/python/tf/py_func) | [fluid.layers.py_func](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.py_func) | 功能一致 | | 93 | [tf.py_func](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/py_func) | [fluid.layers.py_func](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.py_func) | 功能一致 |
| 94 | [tf.random_normal](https://www.tensorflow.org/api_docs/python/tf/random_normal) | [fluid.layers.gaussian_random](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.gaussian_random) | 功能一致 | | 94 | [tf.random_normal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/random/normal) | [fluid.layers.gaussian_random](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.gaussian_random) | 功能一致 |
| 95 | [tf.random_normal_initializer](https://www.tensorflow.org/api_docs/python/tf/random_normal_initializer) | [fluid.initializer.Normal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#normal) | 功能一致 | | 95 | [tf.random_normal_initializer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/initializers/random_normal) | [fluid.initializer.Normal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#normal) | 功能一致 |
| 96 | [tf.random_uniform](https://www.tensorflow.org/api_docs/python/tf/random_uniform) | [fluid.layers.uniform_random](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.uniform_random) | 功能一致 | | 96 | [tf.random_uniform](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/random/uniform) | [fluid.layers.uniform_random](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.uniform_random) | 功能一致 |
| 97 | [tf.random_uniform_initializer](https://www.tensorflow.org/api_docs/python/tf/random_uniform_initializer) | [fluid.initializer.UniformInitializer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#uniforminitializer) | 功能一致 | | 97 | [tf.random_uniform_initializer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/initializers/random_uniform) | [fluid.initializer.UniformInitializer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#uniforminitializer) | 功能一致 |
| 98 | [tf.reduce_logsumexp](https://www.tensorflow.org/api_docs/python/tf/reduce_logsumexp) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.reduce_logsumexp.md) | | 98 | [tf.reduce_logsumexp](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_logsumexp) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.reduce_logsumexp.md) |
| 99 | [tf.reduce_max](https://www.tensorflow.org/api_docs/python/tf/reduce_max) | [fluid.layers.reduce_max](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_max) | 功能一致 | | 99 | [tf.reduce_max](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_max) | [fluid.layers.reduce_max](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_max) | 功能一致 |
| 100 | [tf.reduce_mean](https://www.tensorflow.org/api_docs/python/tf/reduce_mean) | [fluid.layers.reduce_mean](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_mean) | 功能一致 | | 100 | [tf.reduce_mean](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_mean) | [fluid.layers.reduce_mean](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_mean) | 功能一致 |
| 101 | [tf.reduce_min](https://www.tensorflow.org/api_docs/python/tf/reduce_min) | [fluid.layers.reduce_min](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_min) | 功能一致 | | 101 | [tf.reduce_min](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_min) | [fluid.layers.reduce_min](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_min) | 功能一致 |
| 102 | [tf.reduce_sum](https://www.tensorflow.org/api_docs/python/tf/reduce_sum) | [fluid.layers.reduce_sum](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_sum) | 功能一致 | | 102 | [tf.reduce_sum](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_sum) | [fluid.layers.reduce_sum](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reduce_sum) | 功能一致 |
| 103 | [tf.reshape](https://www.tensorflow.org/api_docs/python/tf/reshape) | [fluid.layers.reshape](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.reshape) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.reshape.md) | | 103 | [tf.reshape](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reshape) | [fluid.layers.reshape](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.reshape) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.reshape.md) |
| 104 | [tf.reverse](https://www.tensorflow.org/api_docs/python/tf/reverse) | [fluid.layers.reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reverse) | 功能一致 | | 104 | [tf.reverse](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reverse) | [fluid.layers.reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#reverse) | 功能一致 |
| 105 | [tf.reverse_sequence](https://www.tensorflow.org/api_docs/python/tf/reverse_sequence) | [fluid.layers.sequence_reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sequence_reverse) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.reverse_sequence.md) | | 105 | [tf.reverse_sequence](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reverse_sequence) | [fluid.layers.sequence_reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sequence_reverse) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.reverse_sequence.md) |
| 106 | [tf.reverse_v2](https://www.tensorflow.org/api_docs/python/tf/reverse_v2) | [fluid.layers.reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.reverse) | 功能一致 | | 106 | [tf.reverse_v2](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reverse) | [fluid.layers.reverse](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.reverse) | 功能一致 |
| 107 | [tf.round](https://www.tensorflow.org/api_docs/python/tf/round) | [fluid.layers.round](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.round) | 功能一致 | | 107 | [tf.round](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/round) | [fluid.layers.round](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.round) | 功能一致 |
| 108 | [tf.rsqrt](https://www.tensorflow.org/api_docs/python/tf/rsqrt) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.math.rsqrt.md) | | 108 | [tf.rsqrt](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/rsqrt) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.math.rsqrt.md) |
| 109 | [tf.scalar_mul](https://www.tensorflow.org/api_docs/python/tf/scalar_mul) | [fluid.layers.scale](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#scale) | 功能一致 | | 109 | [tf.scalar_mul](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/scalar_mul) | [fluid.layers.scale](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#scale) | 功能一致 |
| 110 | [tf.scatter_update](https://www.tensorflow.org/api_docs/python/tf/scatter_update) | [fluid.layers.scatter](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#scatter) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.scatter_update.md) | | 110 | [tf.scatter_update](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/scatter_update) | [fluid.layers.scatter](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#scatter) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.scatter_update.md) |
| 111 | [tf.sequence_mask](https://www.tensorflow.org/api_docs/python/tf/sequence_mask) | [fluid.layers.sequence_mask](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sequence_mask) | 功能一致 | | 111 | [tf.sequence_mask](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/sequence_mask) | [fluid.layers.sequence_mask](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sequence_mask) | 功能一致 |
| 112 | [tf.shape](https://www.tensorflow.org/api_docs/python/tf/shape) | [fluid.layers.shape](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#shape) | 功能一致 | | 112 | [tf.shape](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/shape) | [fluid.layers.shape](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#shape) | 功能一致 |
| 113 | [tf.sigmoid](https://www.tensorflow.org/api_docs/python/tf/sigmoid) | [fluid.layers.sigmoid](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid) | 功能一致 | | 113 | [tf.sigmoid](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/sigmoid) | [fluid.layers.sigmoid](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sigmoid) | 功能一致 |
| 114 | [tf.sin](https://www.tensorflow.org/api_docs/python/tf/sin) | [fluid.layers.sin](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.sin) | 功能一致 | | 114 | [tf.sin](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/sin) | [fluid.layers.sin](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.sin) | 功能一致 |
| 115 | [tf.slice](https://www.tensorflow.org/api_docs/python/tf/slice) | [fluid.layers.slice](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#slice) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.slice.md) | | 115 | [tf.slice](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/slice) | [fluid.layers.slice](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#slice) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.slice.md) |
| 116 | [tf.split](https://www.tensorflow.org/api_docs/python/tf/split) | [fluid.layers.split](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#split) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.split.md) | | 116 | [tf.split](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/split) | [fluid.layers.split](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#split) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.split.md) |
| 117 | [tf.sqrt](https://www.tensorflow.org/api_docs/python/tf/sqrt) | [fluid.layers.sqrt](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sqrt) | 功能一致 | | 117 | [tf.sqrt](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/sqrt) | [fluid.layers.sqrt](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#sqrt) | 功能一致 |
| 118 | [tf.square](https://www.tensorflow.org/api_docs/python/tf/square) | [fluid.layers.square](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.square) | 功能一致 | | 118 | [tf.square](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/square) | [fluid.layers.square](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.square) | 功能一致 |
| 119 | [tf.squared_difference](https://www.tensorflow.org/api_docs/python/tf/squared_difference) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.squared_difference.md) | | 119 | [tf.squared_difference](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/squared_difference) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.squared_difference.md) |
| 120 | [tf.squeeze](https://www.tensorflow.org/api_docs/python/tf/squeeze) | [fluid.layers.squeeze](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#squeeze) | 功能一致 | | 120 | [tf.squeeze](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/squeeze) | [fluid.layers.squeeze](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#squeeze) | 功能一致 |
| 121 | [tf.stack](https://www.tensorflow.org/api_docs/python/tf/stack) | [fluid.layers.stack](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#stack) | 功能一致 | | 121 | [tf.stack](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/stack) | [fluid.layers.stack](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#stack) | 功能一致 |
| 122 | [tf.stop_gradient](https://www.tensorflow.org/api_docs/python/tf/stop_gradient) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.stop_gradient.md) | | 122 | [tf.stop_gradient](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/stop_gradient) | 无相应接口 | [Paddle实现方法](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.stop_gradient.md) |
| 123 | [tf.subtract](https://www.tensorflow.org/api_docs/python/tf/subtract) | [fluid.layers.elementwise_sub](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_sub) | 功能一致 | | 123 | [tf.subtract](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/subtract) | [fluid.layers.elementwise_sub](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_sub) | 功能一致 |
| 124 | [tf.tanh](https://www.tensorflow.org/api_docs/python/tf/tanh) | [fluid.layers.tanh](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#tanh) | 功能一致 | | 124 | [tf.tanh](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/tanh) | [fluid.layers.tanh](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#tanh) | 功能一致 |
| 125 | [tf.tile](https://www.tensorflow.org/api_docs/python/tf/tile) | [fluid.layers.expand](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.expand) | 功能一致 | | 125 | [tf.tile](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/tile) | [fluid.layers.expand](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.expand) | 功能一致 |
| 126 | [tf.top_k](https://www.tensorflow.org/api_docs/python/tf/top_k) | [fluid.layers.topk](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.topk) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.top_k.md) | | 126 | [tf.top_k](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/top_k) | [fluid.layers.topk](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.topk) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.top_k.md) |
| 127 | [tf.train.AdagradOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/AdagradOptimizer) | [fluid.optimizer.AdagradOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.AdagradOptimizer) | 功能一致 | | 127 | [tf.train.AdagradOptimizer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/AdagradOptimizer) | [fluid.optimizer.AdagradOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.AdagradOptimizer) | 功能一致 |
| 128 | [tf.train.AdamOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/AdamOptimizer) | [fluid.optimizer.Adam](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.Adam) | 功能一致 | | 128 | [tf.train.AdamOptimizer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/AdamOptimizer) | [fluid.optimizer.Adam](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.Adam) | 功能一致 |
| 129 | [tf.train.exponential_decay](https://www.tensorflow.org/api_docs/python/tf/train/exponential_decay) | [fluid.layers.exponential_decay](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.exponential_decay) | 功能一致 | | 129 | [tf.train.exponential_decay](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/exponential_decay) | [fluid.layers.exponential_decay](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.exponential_decay) | 功能一致 |
| 130 | [tf.train.GradientDescentOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/GradientDescentOptimizer) | [fluid.optimizer.SGDOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/optimizer_cn.html#sgdoptimizer) | 功能一致 | | 130 | [tf.train.GradientDescentOptimizer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/GradientDescentOptimizer) | [fluid.optimizer.SGDOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/optimizer_cn.html#sgdoptimizer) | 功能一致 |
| 131 | [tf.train.MomentumOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/MomentumOptimizer) | [fluid.optimizer.MomentumOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/optimizer_cn.html#momentumoptimizer) | 功能一致 | | 131 | [tf.train.MomentumOptimizer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/MomentumOptimizer) | [fluid.optimizer.MomentumOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/optimizer_cn.html#momentumoptimizer) | 功能一致 |
| 132 | [tf.train.polynomial_decay](https://www.tensorflow.org/api_docs/python/tf/train/polynomial_decay) | [fluid.layers.polynomial_decay](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.polynomial_decay) | 功能一致 | | 132 | [tf.train.polynomial_decay](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/polynomial_decay) | [fluid.layers.polynomial_decay](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.polynomial_decay) | 功能一致 |
| 133 | [tf.train.RMSPropOptimizer](https://www.tensorflow.org/api_docs/python/tf/train/RMSPropOptimizer) | [fluid.optimizer.RMSPropOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.RMSPropOptimizer) | 功能一致 | | 133 | [tf.train.RMSPropOptimizer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/train/RMSPropOptimizer) | [fluid.optimizer.RMSPropOptimizer](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.optimizer.RMSPropOptimizer) | 功能一致 |
| 134 | [tf.transpose](https://www.tensorflow.org/api_docs/python/tf/transpose) | [fluid.layers.transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.transpose) | 功能一致 | | 134 | [tf.transpose](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/transpose) | [fluid.layers.transpose](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.transpose) | 功能一致 |
| 135 | [tf.truediv](https://www.tensorflow.org/api_docs/python/tf/truediv) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_div) | 功能一致 | | 135 | [tf.truediv](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/truediv) | [fluid.layers.elementwise_div](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.elementwise_div) | 功能一致 |
| 136 | [tf.truncated_normal](https://www.tensorflow.org/api_docs/python/tf/truncated_normal) | [fluid.initializer.TruncatedNormal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#truncatednormal) | 功能一致 | | 136 | [tf.truncated_normal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/random/truncated_normal) | [fluid.initializer.TruncatedNormal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#truncatednormal) | 功能一致 |
| 137 | [tf.truncated_normal_initializer](https://www.tensorflow.org/api_docs/python/tf/truncated_normal_initializer) | [fluid.initializer.TruncatedNormal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.initializer.TruncatedNormal) | 功能一致 | | 137 | [tf.truncated_normal_initializer](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/initializers/truncated_normal) | [fluid.initializer.TruncatedNormal](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.initializer.TruncatedNormal) | 功能一致 |
| 138 | [tf.unstack](https://www.tensorflow.org/api_docs/python/tf/unstack) | [fluid.layers.unstack](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.unstack) | 功能一致 | | 138 | [tf.unstack](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/unstack) | [fluid.layers.unstack](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#paddle.fluid.layers.unstack) | 功能一致 |
| 139 | [tf.Variable](https://www.tensorflow.org/api_docs/python/tf/Variable) | [fluid.layers.create_parameter](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#create_parameter) | 功能一致 | | 139 | [tf.Variable](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/Variable) | [fluid.layers.create_parameter](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#create_parameter) | 功能一致 |
| 140 | [tf.while_loop](https://www.tensorflow.org/api_docs/python/tf/while_loop) | [fluid.layers.While](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#While) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.while_loop.md) | | 140 | [tf.while_loop](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/while_loop) | [fluid.layers.While](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#While) | [差异对比](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.while_loop.md) |
| 141 | [tf.zeros](https://www.tensorflow.org/api_docs/python/tf/zeros) | [fluid.layers.zeros](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#zeros) | 功能一致 | | 141 | [tf.zeros](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/zeros) | [fluid.layers.zeros](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#zeros) | 功能一致 |
| 142 | [tf.zeros_initializer](https://www.tensorflow.org/api_docs/python/tf/zeros_initializer) | [fluid.initializer.Constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#constant) | 功能一致 | | 142 | [tf.zeros_initializer](https://www.tensorflow.org/versions/r1.14/api_docs/python/tf/zeros_initializer) | [fluid.initializer.Constant](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/initializer_cn.html#constant) | 功能一致 |
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
| TensorFlow接口 | PaddlePaddle接口 | | TensorFlow接口 | PaddlePaddle接口 |
|--------------------------|-------------------------------------------------| |--------------------------|-------------------------------------------------|
|[tf.math.less_equal](https://www.tensorflow.org/api_docs/python/tf/math/less_equal)|运算符`<=`| |[tf.math.less_equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/less_equal)|运算符`<=`|
|[tf.math.greater](https://www.tensorflow.org/api_docs/python/tf/math/greater)|运算符`>`| |[tf.math.greater](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/greater)|运算符`>`|
|[tf.math.greater_equal](https://www.tensorflow.org/api_docs/python/tf/math/greater_equal)|运算符`>=`| |[tf.math.greater_equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/greater_equal)|运算符`>=`|
|[tf.math.equal](https://www.tensorflow.org/api_docs/python/tf/math/equal)|运算符`==`[paddle.fluid.layers.equal](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#permalink-7-equal) | |[tf.math.equal](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/equal)|运算符`==`[paddle.fluid.layers.equal](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#permalink-7-equal) |
|[tf.math.less](https://www.tensorflow.org/api_docs/python/tf/math/less)|运算符`<`[paddle.fluid.layers.less_than](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#permalink-11-less_than) | |[tf.math.less](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/less)|运算符`<`[paddle.fluid.layers.less_than](http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/layers_cn.html#permalink-11-less_than) |
\ No newline at end of file
## tf.case ## tf.case
### [tf.case](https://www.tensorflow.org/api_docs/python/tf/case) ### [tf.case](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/case)
```python ```python
tf.case( tf.case(
...@@ -52,4 +52,4 @@ with fluid.layers.control_flow.Switch() as switch: ...@@ -52,4 +52,4 @@ with fluid.layers.control_flow.Switch() as switch:
with switch.default(): with switch.default():
fluid.layers.tensor.assign(input=lr_0, output=lr) fluid.layers.tensor.assign(input=lr_0, output=lr)
``` ```
\ No newline at end of file
## tf.clip_by_global_norm ## tf.clip_by_global_norm
### [tf.clip_by_global_norm](https://www.tensorflow.org/api_docs/python/tf/clip_by_global_norm) ### [tf.clip_by_global_norm](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/clip_by_global_norm)
```python ```python
tf.clip_by_global_norm( tf.clip_by_global_norm(
...@@ -46,4 +46,4 @@ with fluid.program_guard(main_program=prog_clip): ...@@ -46,4 +46,4 @@ with fluid.program_guard(main_program=prog_clip):
# 执行裁剪并获取结果 # 执行裁剪并获取结果
p_g_clip = fluid.clip.append_gradient_clip_ops(p_g_clip) p_g_clip = fluid.clip.append_gradient_clip_ops(p_g_clip)
``` ```
\ No newline at end of file
## tf.clip_by_norm ## tf.clip_by_norm
### [tf.clip_by_norm](https://www.tensorflow.org/api_docs/python/tf/clip_by_norm) ### [tf.clip_by_norm](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/clip_by_norm)
``` python ``` python
tf.clip_by_norm( tf.clip_by_norm(
...@@ -24,4 +24,4 @@ paddle.fluid.layers.clip_by_norm( ...@@ -24,4 +24,4 @@ paddle.fluid.layers.clip_by_norm(
#### 计算方式 #### 计算方式
TensorFlow: 使用参数`axis`指定的轴计算L2范数`l2-norm`,如若`axis`为None,则表示使用整个输入数据的L2范数; TensorFlow: 使用参数`axis`指定的轴计算L2范数`l2-norm`,如若`axis`为None,则表示使用整个输入数据的L2范数;
PaddlePaddle:使用整个输入数据的L2范数。 PaddlePaddle:使用整个输入数据的L2范数。
\ No newline at end of file
## tf.contrib.layers.flatten ## tf.contrib.layers.flatten
### [tf.contrib.layers.flatten](https://www.tensorflow.org/api_docs/python/tf/contrib/layers/flatten) ### [tf.contrib.layers.flatten](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/contrib/layers/flatten)
```python ```python
tf.contrib.layers.flatten( tf.contrib.layers.flatten(
...@@ -34,4 +34,4 @@ PaddlePaddle:使用`axis`指定两次合并的维度边界,参考下面示 ...@@ -34,4 +34,4 @@ PaddlePaddle:使用`axis`指定两次合并的维度边界,参考下面示
out = fluid.layers.flatten(x, axis=2) out = fluid.layers.flatten(x, axis=2)
out.shape # [2*3, 4*5] out.shape # [2*3, 4*5]
``` ```
\ No newline at end of file
## tf.expand_dims ## tf.expand_dims
### [tf.expand_dims](https://www.tensorflow.org/api_docs/python/tf/expand_dims) ### [tf.expand_dims](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/expand_dims)
``` python ``` python
tf.expand_dims( tf.expand_dims(
input, input,
...@@ -39,5 +38,4 @@ out = fluid.layers.unsqueeze(t, [-1]) ...@@ -39,5 +38,4 @@ out = fluid.layers.unsqueeze(t, [-1])
# 输出 tensor out 的 shape 为[1, 1,3, 4] # 输出 tensor out 的 shape 为[1, 1,3, 4]
out = fluid.layers.unsqueeze(t, [0, 1]) out = fluid.layers.unsqueeze(t, [0, 1])
``` ```
\ No newline at end of file
## tf.image.non_max_suppression ## tf.image.non_max_suppression
### [tf.image.non_max_suppression](https://www.tensorflow.org/api_docs/python/tf/image/non_max_suppression) ### [tf.image.non_max_suppression](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/non_max_suppression)
``` python ``` python
tf.image.non_max_suppression( tf.image.non_max_suppression(
boxes, boxes,
...@@ -54,4 +53,4 @@ selected_boxes = fluid.layers.multiclass_nms( ...@@ -54,4 +53,4 @@ selected_boxes = fluid.layers.multiclass_nms(
nms_top_k=-1, nms_top_k=-1,
keep_top_k=300, keep_top_k=300,
nms_threshold=0.7) nms_threshold=0.7)
``` ```
\ No newline at end of file
## tf.image.resize_images ## tf.image.resize_images
### [tf.image.resize_images](https://www.tensorflow.org/api_docs/python/tf/image/resize_images) ### [tf.image.resize_images](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/image/resize_images)
``` python ``` python
tf.image.resize_images( tf.image.resize_images(
images, images,
...@@ -38,5 +37,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 300, 300], name='inputs') ...@@ -38,5 +37,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 300, 300], name='inputs')
# 输出shape为[3, 400, 500] # 输出shape为[3, 400, 500]
outputs = fluid.layers.image_reisze(inputs, [400, 500]) outputs = fluid.layers.image_reisze(inputs, [400, 500])
``` ```
\ No newline at end of file
## tf.layers.conv2d ## tf.layers.conv2d
### [tf.layers.conv2d](https://www.tensorflow.org/api_docs/python/tf/layers/conv2d) ### [tf.layers.conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/conv2d)
``` python ``` python
tf.layers.conv2d( tf.layers.conv2d(
inputs, inputs,
...@@ -73,7 +72,7 @@ pad_right = pad_size - pad_left ...@@ -73,7 +72,7 @@ pad_right = pad_size - pad_left
PaddlePaddle:`padding`参数表示在输入图像四周padding的size大小。 PaddlePaddle:`padding`参数表示在输入图像四周padding的size大小。
#### 参数差异 #### 参数差异
TensorFlow:深度可分离卷积使用[tf.layers.separable_conv2d](https://www.tensorflow.org/api_docs/python/tf/layers/separable_conv2d)接口; TensorFlow:深度可分离卷积使用[tf.layers.separable_conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/separable_conv2d)接口;
PaddlePaddle: 使用`paddle.fluid.layers.conv2d`,可参考 PaddlePaddle: 使用`paddle.fluid.layers.conv2d`,可参考
[PaddlePaddle对卷积的说明文档](http://paddlepaddle.org/documentation/docs/zh/1.4/api_guides/low_level/layers/conv.html), 同时也可参考[tf.nn.separable_conv2d](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.separable_conv2d.md)中的代码示例。 [PaddlePaddle对卷积的说明文档](http://paddlepaddle.org/documentation/docs/zh/1.4/api_guides/low_level/layers/conv.html), 同时也可参考[tf.nn.separable_conv2d](https://github.com/PaddlePaddle/X2Paddle/blob/master/tensorflow2fluid/doc/tf.nn.separable_conv2d.md)中的代码示例。
...@@ -85,4 +84,4 @@ PaddlePaddle: 使用`paddle.fluid.layers.conv2d`,可参考 ...@@ -85,4 +84,4 @@ PaddlePaddle: 使用`paddle.fluid.layers.conv2d`,可参考
# 卷积核Shape: (5, 3, 4, 4) # 卷积核Shape: (5, 3, 4, 4)
inputs = paddle.fluid.layers.data(dtype='float32', shape=[3, 200, 200], name='inputs) inputs = paddle.fluid.layers.data(dtype='float32', shape=[3, 200, 200], name='inputs)
pad_inputs = paddle.fluid.layers.pad2d(inputs, paddings=[1, 2, 1, 2]) pad_inputs = paddle.fluid.layers.pad2d(inputs, paddings=[1, 2, 1, 2])
outputs = paddle.fluid.layers.conv2d(pad_inputs, 5, [4, 4], (1, 1)) outputs = paddle.fluid.layers.conv2d(pad_inputs, 5, [4, 4], (1, 1))
\ No newline at end of file
## tf.layers.dense ## tf.layers.dense
### [tf.layers.dense](https://www.tensorflow.org/api_docs/python/tf/layers/dense) ### [tf.layers.dense](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/layers/dense)
``` python ``` python
tf.layers.dense( tf.layers.dense(
inputs, inputs,
...@@ -63,4 +62,4 @@ out = fluid.layers.fc(t, size=6, \ ...@@ -63,4 +62,4 @@ out = fluid.layers.fc(t, size=6, \
# size=6, num_flatten_dims=2,输出tensor的shape为[2, 3, 6] # size=6, num_flatten_dims=2,输出tensor的shape为[2, 3, 6]
out = fluid.layers.fc(t, size=6, num_flatten_dims=2) out = fluid.layers.fc(t, size=6, num_flatten_dims=2)
``` ```
\ No newline at end of file
## tf.losses.mean_and_squared_error ## tf.losses.mean_and_squared_error
### [tf.losses.mean_and_squared_error](https://www.tensorflow.org/api_docs/python/tf/losses/mean_squared_error) ### [tf.losses.mean_and_squared_error](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/losses/mean_squared_error)
``` python ``` python
tf.losses.mean_squared_error( tf.losses.mean_squared_error(
...@@ -25,4 +25,4 @@ paddle.fluid.layers.square_error_cost( ...@@ -25,4 +25,4 @@ paddle.fluid.layers.square_error_cost(
#### 计算方式 #### 计算方式
TensorFlow: 提供`weights`参数,通过传入`weights`参数的shape,可实现不同的加权方式; TensorFlow: 提供`weights`参数,通过传入`weights`参数的shape,可实现不同的加权方式;
PaddlePaddle:不支持加权。 PaddlePaddle:不支持加权。
\ No newline at end of file
## tf.losses.sigmoid_cross_entropy ## tf.losses.sigmoid_cross_entropy
### [tf.losses.sigmoid_cross_entropy](https://www.tensorflow.org/api_docs/python/tf/losses/sigmoid_cross_entropy) ### [tf.losses.sigmoid_cross_entropy](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/losses/sigmoid_cross_entropy)
```python ```python
tf.losses.sigmoid_cross_entropy( tf.losses.sigmoid_cross_entropy(
...@@ -53,4 +53,4 @@ PaddlePaddle:通过设置`normalize`,各样本损失函数会除以除去`ig ...@@ -53,4 +53,4 @@ PaddlePaddle:通过设置`normalize`,各样本损失函数会除以除去`ig
out = fluid.layers.sigmoid_cross_entropy_with_logits(x, label) out = fluid.layers.sigmoid_cross_entropy_with_logits(x, label)
``` ```
\ No newline at end of file
## tf.math.is_finite ## tf.math.is_finite
### [tf.math.is_finite](https://www.tensorflow.org/api_docs/python/tf/math/is_finite) ### [tf.math.is_finite](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/is_finite)
``` python ``` python
tf.math.is_finite( tf.math.is_finite(
x, x,
...@@ -31,4 +30,4 @@ result = tf.is_finite(inputs) ...@@ -31,4 +30,4 @@ result = tf.is_finite(inputs)
# 输入[2.1, 3.2, 4.5] # 输入[2.1, 3.2, 4.5]
# 输出True # 输出True
result = fluid.layers.isfinite(inputs) result = fluid.layers.isfinite(inputs)
``` ```
\ No newline at end of file
## tf.math.rsqrt ## tf.math.rsqrt
### [tf.math.rsqrt](https://www.tensorflow.org/api_docs/python/tf/math/rsqrt) ### [tf.math.rsqrt](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/rsqrt)
``` python ``` python
tf.math.rsqrt( tf.math.rsqrt(
x, x,
...@@ -23,4 +23,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[1000], name='inputs') ...@@ -23,4 +23,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[1000], name='inputs')
# 调用上述自定义函数 # 调用上述自定义函数
result = rsqrt(inputs) result = rsqrt(inputs)
``` ```
\ No newline at end of file
## tf.matmul ## tf.matmul
### [tf.matmul](https://www.tensorflow.org/api_docs/python/tf/linalg/matmul) ### [tf.matmul](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/linalg/matmul)
``` python ``` python
tf.matmul( tf.matmul(
a, a,
...@@ -60,4 +59,4 @@ fluid.layers.matmul(x, y) # out: [1] ...@@ -60,4 +59,4 @@ fluid.layers.matmul(x, y) # out: [1]
# x: [M], y: [N] # x: [M], y: [N]
fluid.layers.matmul(x, y, True, True) # out: [M, N] fluid.layers.matmul(x, y, True, True) # out: [M, N]
``` ```
\ No newline at end of file
## tf.nn.avg_pool ## tf.nn.avg_pool
### [tf.nn.avg_pool](https://www.tensorflow.org/versions/r1.10/api_docs/python/tf/nn/avg_pool) ### [tf.nn.avg_pool](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/avg_pool)
``` python ``` python
tf.nn.avg_pool( tf.nn.avg_pool(
......
## tf.nn.bidirectional_dynamic_rnn ## tf.nn.bidirectional_dynamic_rnn
### [tf.nn.bidirectional_dynamic_rnn](https://www.tensorflow.org/api_docs/python/tf/nn/bidirectional_dynamic_rnn) ### [tf.nn.bidirectional_dynamic_rnn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/bidirectional_dynamic_rnn)
```python ```python
tf.nn.bidirectional_dynamic_rnn( tf.nn.bidirectional_dynamic_rnn(
...@@ -71,4 +71,4 @@ rev_rev_out = fluid.layers.sequence_reverse(rev_out) ...@@ -71,4 +71,4 @@ rev_rev_out = fluid.layers.sequence_reverse(rev_out)
# 合并得到最后的输出,其shape为(-1, 32) # 合并得到最后的输出,其shape为(-1, 32)
concat_out = layers.concat([out, rev_rev_out], axis=1) concat_out = layers.concat([out, rev_rev_out], axis=1)
``` ```
\ No newline at end of file
## tf.nn.conv2d ## tf.nn.conv2d
### [tf.nn.conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/conv2d) ### [tf.nn.conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv2d)
```python ```python
tf.nn.conv2d( tf.nn.conv2d(
...@@ -48,4 +48,4 @@ create_kernel = fluid.layers.create_parameters(shape=[5, 3, 2, 2], dtype='float3 ...@@ -48,4 +48,4 @@ create_kernel = fluid.layers.create_parameters(shape=[5, 3, 2, 2], dtype='float3
# PaddlePaddle中可通过相同的参数命名引用同一个参数变量 # PaddlePaddle中可通过相同的参数命名引用同一个参数变量
# 通过指定卷积核参数名(param_attr)为'kernel',引用了create_kernel # 通过指定卷积核参数名(param_attr)为'kernel',引用了create_kernel
result = fluid.layers.conv2d(inputs, 5, [2, 2], param_attr='kernel') result = fluid.layers.conv2d(inputs, 5, [2, 2], param_attr='kernel')
``` ```
\ No newline at end of file
## tf.nn.conv2d_transpose ## tf.nn.conv2d_transpose
### [tf.nn.conv2d_transpose](https://www.tensorflow.org/api_docs/python/tf/nn/conv2d_transpose) ### [tf.nn.conv2d_transpose](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv2d_transpose)
``` python ``` python
tf.nn.conv2d_transpose( tf.nn.conv2d_transpose(
value, value,
...@@ -93,4 +92,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 20, 20], name='inputs) ...@@ -93,4 +92,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 20, 20], name='inputs)
outputs = fluid.layers.conv2d_transpose(pad_inputs, 3, filter_size=[5, 5], outputs = fluid.layers.conv2d_transpose(pad_inputs, 3, filter_size=[5, 5],
padding=[1, 1], stride=[2, 2], bias_attr=False) padding=[1, 1], stride=[2, 2], bias_attr=False)
# 裁剪后结果即为与TensorFlow一致 # 裁剪后结果即为与TensorFlow一致
outputs = fluid.layers.crop(outputs, shape=[-1, 3, 40, 40]) outputs = fluid.layers.crop(outputs, shape=[-1, 3, 40, 40])
\ No newline at end of file
## tf.nn.conv3d_transpose ## tf.nn.conv3d_transpose
### [tf.nn.conv3d_transpose](https://www.tensorflow.org/api_docs/python/tf/nn/conv3d_transpose) ### [tf.nn.conv3d_transpose](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/conv3d_transpose)
``` python ``` python
tf.nn.conv3d_transpose( tf.nn.conv3d_transpose(
value, value,
...@@ -93,4 +92,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 5, 20, 40], name='inputs) ...@@ -93,4 +92,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 5, 20, 40], name='inputs)
outputs = fluid.layers.conv3d(inputs, 7, filter_size=(2, 4, 5), stride=(1, 2, 2), outputs = fluid.layers.conv3d(inputs, 7, filter_size=(2, 4, 5), stride=(1, 2, 2),
padding=(0, 1, 1), bias_attr=False) padding=(0, 1, 1), bias_attr=False)
# 裁剪后结果即为与TensorFlow一致 # 裁剪后结果即为与TensorFlow一致
outputs = fluid.layers.crop(outputs, shape=[-1, 7, 5, 40, 80]) outputs = fluid.layers.crop(outputs, shape=[-1, 7, 5, 40, 80])
\ No newline at end of file
## tf.nn.depthwise_conv2d ## tf.nn.depthwise_conv2d
### [tf.nn.depthwise_conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d) ### [tf.nn.depthwise_conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/depthwise_conv2d)
```python ```python
tf.nn.depthwise_conv2d( tf.nn.depthwise_conv2d(
...@@ -84,4 +84,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 20, 20], name='inputs') ...@@ -84,4 +84,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 20, 20], name='inputs')
inputs = fluid.layers.pad2d(inputs, paddings=[1, 2, 1, 2]) inputs = fluid.layers.pad2d(inputs, paddings=[1, 2, 1, 2])
#输出shape:[-1, 3, 20, 20] #输出shape:[-1, 3, 20, 20]
result = fluid.layers.conv2d(inputs, 3, filter_size=[4, 4], groups=3, bias_attr=False) result = fluid.layers.conv2d(inputs, 3, filter_size=[4, 4], groups=3, bias_attr=False)
``` ```
\ No newline at end of file
## tf.dropout ## tf.dropout
### [tf.nn.dropout](https://www.tensorflow.org/api_docs/python/tf/nn/dropout) ### [tf.nn.dropout](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/dropout)
``` python ``` python
tf.nn.dropout( tf.nn.dropout(
x, x,
...@@ -47,4 +46,4 @@ out = fluid.layers.dropout(t, dropout_prob=0.2, dropout_implementation="upscale_ ...@@ -47,4 +46,4 @@ out = fluid.layers.dropout(t, dropout_prob=0.2, dropout_implementation="upscale_
# inference 时关闭dropout # inference 时关闭dropout
inference_program = fluid.default_main_program().clone(for_test=True) inference_program = fluid.default_main_program().clone(for_test=True)
``` ```
\ No newline at end of file
## tf.nn.dynamic_rnn ## tf.nn.dynamic_rnn
### [tf.nn.dynamic_rnn](https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn) ### [tf.nn.dynamic_rnn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/dynamic_rnn)
``` python ``` python
tf.nn.dynamic_rnn( tf.nn.dynamic_rnn(
cell, cell,
...@@ -75,4 +75,4 @@ state = fluid.layers.sequence_last_step(outputs) ...@@ -75,4 +75,4 @@ state = fluid.layers.sequence_last_step(outputs)
为了简化用户定义动态RNN的过程,paddle有如下op可供选择: 为了简化用户定义动态RNN的过程,paddle有如下op可供选择:
- [paddle.fluid.layers.dynamic_lstm](http://www.paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamic-lstm):相当于 `tf.nn.dynamic_rnn`结合`tf.nn.rnn_cell.LSTMCell` - [paddle.fluid.layers.dynamic_lstm](http://www.paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamic-lstm):相当于 `tf.nn.dynamic_rnn`结合`tf.nn.rnn_cell.LSTMCell`
- [paddle.fluid.layers.dynamic_gru](http://www.paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamic-gru):相当于`tf.nn.dynamic_rnn`结合`tf.nn.rnn_cell.GRUCell` - [paddle.fluid.layers.dynamic_gru](http://www.paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#dynamic-gru):相当于`tf.nn.dynamic_rnn`结合`tf.nn.rnn_cell.GRUCell`
\ No newline at end of file
## tf.nn.l2_normalize ## tf.nn.l2_normalize
### [tf.nn.l2_normalize](https://www.tensorflow.org/api_docs/python/tf/math/l2_normalize) ### [tf.nn.l2_normalize](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/l2_normalize)
```python ```python
tf.math.l2_normalize( tf.math.l2_normalize(
...@@ -38,4 +37,4 @@ PaddlePaddle:计算方式为`output = x / sqrt(sum(x^2) + epsilon))`。 ...@@ -38,4 +37,4 @@ PaddlePaddle:计算方式为`output = x / sqrt(sum(x^2) + epsilon))`。
# out同样是shape[3,2]的张量,axis设置为1,表示将x中每个行向量做归一化 # out同样是shape[3,2]的张量,axis设置为1,表示将x中每个行向量做归一化
out = fluid.layers.l2_normalize(x, axis=1) out = fluid.layers.l2_normalize(x, axis=1)
``` ```
\ No newline at end of file
## tf.nn.lrn ## tf.nn.lrn
### [tf.nn.lrn](https://www.tensorflow.org/api_docs/python/tf/nn/local_response_normalization) ### [tf.nn.lrn](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/local_response_normalization)
```python ```python
tf.nn.local_response_normalization( tf.nn.local_response_normalization(
...@@ -38,4 +37,4 @@ $$output(i,x,y)=input(i,x,y)/(k+\alpha\sum_{j=max(0,i-\frac{n}{2})}^{min(C,i+\fr ...@@ -38,4 +37,4 @@ $$output(i,x,y)=input(i,x,y)/(k+\alpha\sum_{j=max(0,i-\frac{n}{2})}^{min(C,i+\fr
#### 输入格式 #### 输入格式
TensorFlow: 默认输入`NHWC`格式数据; TensorFlow: 默认输入`NHWC`格式数据;
PaddlePaddle: 默认输入`NCHW`格式数据, PaddlePaddle: 默认输入`NCHW`格式数据,
\ No newline at end of file
## tf.nn.max_pool ## tf.nn.max_pool
### [tf.nn.max_pool](https://www.tensorflow.org/api_docs/python/tf/nn/max_pool) ### [tf.nn.max_pool](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/max_pool)
``` python ``` python
tf.nn.max_pool( tf.nn.max_pool(
...@@ -51,4 +51,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 300, 300], name='inputs') ...@@ -51,4 +51,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[3, 300, 300], name='inputs')
# 在最右、最下进行padding # 在最右、最下进行padding
pad_res = fluid.layers.pad2d(inputs, padding=[0, 1, 0, 1]) pad_res = fluid.layers.pad2d(inputs, padding=[0, 1, 0, 1])
conv_res = fluid.layers.pool2d(pad_res, pool_size=3, pool_type='max', pool_stride=2) conv_res = fluid.layers.pool2d(pad_res, pool_size=3, pool_type='max', pool_stride=2)
``` ```
\ No newline at end of file
## tf.math.reduce_logsumexp ## tf.math.reduce_logsumexp
### [tf.math.reduce_logsumexp](https://www.tensorflow.org/api_docs/python/tf/math/reduce_logsumexp) ### [tf.math.reduce_logsumexp](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/reduce_logsumexp)
``` python ``` python
tf.math.log_softmax( tf.math.log_softmax(
logits, logits,
...@@ -26,4 +26,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[1000], name='inputs') ...@@ -26,4 +26,4 @@ inputs = fluid.layers.data(dtype='float32', shape=[1000], name='inputs')
# 调用上述自定义函数 # 调用上述自定义函数
result = reduce_logsumexp(inputs) result = reduce_logsumexp(inputs)
``` ```
\ No newline at end of file
## tf.contrib.rnn.GRUCell ## tf.contrib.rnn.GRUCell
### [tf.contrib.rnn.GRUCell](https://www.tensorflow.org/api_docs/python/tf/nn/rnn_cell/GRUCell) ### [tf.nn.rnn.GRUCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/GRUCell)
```python ```python
tf.contrib.rnn.GRUCell( __init__(
num_units, num_units,
activation=None, activation=None,
reuse=None, reuse=None,
...@@ -13,7 +13,6 @@ tf.contrib.rnn.GRUCell( ...@@ -13,7 +13,6 @@ tf.contrib.rnn.GRUCell(
dtype=None, dtype=None,
**kwargs **kwargs
) )
``` ```
### [paddle.fluid.layers.gru_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#gru-unit) ### [paddle.fluid.layers.gru_unit](http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/layers_cn.html#gru-unit)
......
## tf.nn.rnn_cell.LSTMCell ## tf.nn.rnn_cell.LSTMCell
### [tf.nn.rnn_cell.LSTMCell](https://www.tensorflow.org/api_docs/python/tf/nn/rnn_cell/LSTMCell) ### [tf.nn.rnn_cell.LSTMCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/LSTMCell)
```python ```python
tf.nn.rnn_cell.LSTMCell( tf.nn.rnn_cell.LSTMCell(
...@@ -85,4 +85,4 @@ out = drnn() ...@@ -85,4 +85,4 @@ out = drnn()
# 获取最后时刻的输出 # 获取最后时刻的输出
last = fluid.layers.sequence_last(out) last = fluid.layers.sequence_last(out)
``` ```
\ No newline at end of file
## tf.nn.rnn_cell.MultiRNNCell ## tf.nn.rnn_cell.MultiRNNCell
### [tf.nn.rnn_cell.MultiRNNCell](https://www.tensorflow.org/api_docs/python/tf/nn/rnn_cell/MultiRNNCell) ### [tf.nn.rnn_cell.MultiRNNCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/rnn_cell/MultiRNNCell)
```python ```python
tf.nn.rnn_cell.MultiRNNCell( __init__(
cells, cells,
state_is_tuple=True state_is_tuple=True
) )
......
## tf.nn.separable_conv2d ## tf.nn.separable_conv2d
### [tf.nn.separable_conv2d](https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d) ### [tf.nn.separable_conv2d](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/separable_conv2d)
``` python ``` python
tf.nn.separable_conv2d( tf.nn.separable_conv2d(
input, input,
...@@ -30,4 +30,4 @@ depthwise_result = fluid.layers.conv2d(input, 3, filter_size=[4, 4], ...@@ -30,4 +30,4 @@ depthwise_result = fluid.layers.conv2d(input, 3, filter_size=[4, 4],
pointwise_result = fluid.layers.conv2d(depthwise_result, filter_size=[1, 1], pointwise_result = fluid.layers.conv2d(depthwise_result, filter_size=[1, 1],
stride=[1, 1], bias_attr=False) stride=[1, 1], bias_attr=False)
``` ```
\ No newline at end of file
## tf.nn.softmax_cross_entropy_with_logits ## tf.nn.softmax_cross_entropy_with_logits
### [tf.nn.rnn_cell.MultiRNNCell](https://www.tensorflow.org/api_docs/python/tf/nn/softmax_cross_entropy_with_logits) ### [tf.nn.rnn_cell.MultiRNNCell](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/softmax_cross_entropy_with_logits)
```python ```python
tf.nn.softmax_cross_entropy_with_logits( tf.nn.softmax_cross_entropy_with_logits(
...@@ -20,7 +20,8 @@ paddle.fluid.layers.softmax_with_cross_entropy( ...@@ -20,7 +20,8 @@ paddle.fluid.layers.softmax_with_cross_entropy(
soft_label=False, soft_label=False,
ignore_index=-100, ignore_index=-100,
numeric_stable_mode=False, numeric_stable_mode=False,
return_softmax=False return_softmax=False,
axis=-1
) )
``` ```
......
## tf.nn.top_k ## tf.nn.top_k
### [tf.nn.top_k](https://www.tensorflow.org/api_docs/python/tf/nn/top_k) ### [tf.nn.top_k](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/nn/top_k)
``` python ``` python
tf.math.top_k( tf.math.top_k(
input, input,
...@@ -32,4 +31,4 @@ PaddlePaddle: 对返回的top-k tensor进行降序排序;`k`没有默认值, ...@@ -32,4 +31,4 @@ PaddlePaddle: 对返回的top-k tensor进行降序排序;`k`没有默认值,
# 当k=2时,输出 tensor out 为[[6,3], [8,3]],index为[[1,2],[2,0]] # 当k=2时,输出 tensor out 为[[6,3], [8,3]],index为[[1,2],[2,0]]
out, index = fluid.layers.topk(t, k=1) out, index = fluid.layers.topk(t, k=1)
``` ```
\ No newline at end of file
## tf.one_hot ## tf.one_hot
### [tf.one_hot](https://www.tensorflow.org/api_docs/python/tf/one_hot) ### [tf.one_hot](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/one_hot)
``` python ``` python
tf.one_hot( tf.one_hot(
indices, indices,
...@@ -38,4 +37,4 @@ PaddlePaddle:无对应配置选项,即为默认的`1`和`0`。 ...@@ -38,4 +37,4 @@ PaddlePaddle:无对应配置选项,即为默认的`1`和`0`。
# depth 为3时,输出 tensor out 为[[0, 1, 0], [0, 0, 1]] # depth 为3时,输出 tensor out 为[[0, 1, 0], [0, 0, 1]]
out = fluid.layers.one_hot(t, 3) out = fluid.layers.one_hot(t, 3)
``` ```
\ No newline at end of file
## tf.pad ## tf.pad
### [tf.pad](https://www.tensorflow.org/api_docs/python/tf/pad) ### [tf.pad](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/pad)
``` python ``` python
tf.pad( tf.pad(
tensor, tensor,
...@@ -34,4 +33,4 @@ PaddlePaddle:目前仅支持采用常量进行padding;指定padding长度时 ...@@ -34,4 +33,4 @@ PaddlePaddle:目前仅支持采用常量进行padding;指定padding长度时
# 第0维前面padding长度为0,后面padding长度为1;第1维前面padding长度为1,后面padding长度为2 # 第0维前面padding长度为0,后面padding长度为1;第1维前面padding长度为1,后面padding长度为2
out = fluid.layers.pad(t, paddings=[0,1,1,2]) out = fluid.layers.pad(t, paddings=[0,1,1,2])
``` ```
\ No newline at end of file
## tf.placeholder ## tf.placeholder
### [tf.placeholder](https://www.tensorflow.org/api_docs/python/tf/placeholder) ### [tf.placeholder](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/placeholder)
``` python ``` python
tf.placeholder( tf.placeholder(
dtype, dtype,
...@@ -36,4 +35,4 @@ out = fluid.layers.data('out', shape=[3, 4], dtype='float32') ...@@ -36,4 +35,4 @@ out = fluid.layers.data('out', shape=[3, 4], dtype='float32')
# 创建输入型tensor out,其shape为[3, -1, 4], 数据类型为float32 # 创建输入型tensor out,其shape为[3, -1, 4], 数据类型为float32
out = fluid.layers.data('out', shape=[3, -1, 4], append_batch_size=False, dtype='float32') out = fluid.layers.data('out', shape=[3, -1, 4], append_batch_size=False, dtype='float32')
``` ```
\ No newline at end of file
## tf.pow ## tf.pow
### [tf.pow](https://www.tensorflow.org/api_docs/python/tf/math/pow) ### [tf.pow](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/pow)
```python ```python
tf.math.pow( tf.math.pow(
...@@ -33,4 +33,4 @@ PaddlePaddle:`x`为tensor,`factor`为浮点数,返回值为`x`每个元素 ...@@ -33,4 +33,4 @@ PaddlePaddle:`x`为tensor,`factor`为浮点数,返回值为`x`每个元素
# x为张量 [2, 3] # x为张量 [2, 3]
out = fluid.layers.pow(x, 2.0) # [4,9] out = fluid.layers.pow(x, 2.0) # [4,9]
``` ```
\ No newline at end of file
## tf.print ## tf.print
### [tf.print](https://www.tensorflow.org/api_docs/python/tf/print) ### [tf.print](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/print)
```python ```python
tf.print( tf.print(
...@@ -47,4 +47,4 @@ PaddlePaddle:通过设置`print_phase`,可以控制是否打印`input`的梯 ...@@ -47,4 +47,4 @@ PaddlePaddle:通过设置`print_phase`,可以控制是否打印`input`的梯
# 打印input的内容,如果有梯度的话也将打印梯度 # 打印input的内容,如果有梯度的话也将打印梯度
print(input, message="content of input") print(input, message="content of input")
``` ```
\ No newline at end of file
## tf.reshape ## tf.reshape
### [tf.reshape](https://www.tensorflow.org/api_docs/python/tf/reshape) ### [tf.reshape](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reshape)
``` python ``` python
tf.reshape( tf.reshape(
tensor, tensor,
...@@ -37,5 +36,4 @@ out = fluid.layers.reshape(t, [-1, 6]) ...@@ -37,5 +36,4 @@ out = fluid.layers.reshape(t, [-1, 6])
# 输出 tensor out 的 shape 为[3, 2, 2] # 输出 tensor out 的 shape 为[3, 2, 2]
out = fluid.layers.reshape(t, [0, 2, 2]) out = fluid.layers.reshape(t, [0, 2, 2])
``` ```
\ No newline at end of file
## tf.reverse_sequence ## tf.reverse_sequence
### [tf.reverse_sequence](https://www.tensorflow.org/api_docs/python/tf/reverse_sequence) ### [tf.reverse_sequence](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/reverse_sequence)
```python ```python
tf.reverse_sequence( tf.reverse_sequence(
...@@ -44,4 +44,4 @@ PaddlePaddle:由于`LoDTensor`本身已经携带序列信息,因而不需要 ...@@ -44,4 +44,4 @@ PaddlePaddle:由于`LoDTensor`本身已经携带序列信息,因而不需要
# out[0:2, 6] = x[2:0:-1, 6] # out[0:2, 6] = x[2:0:-1, 6]
# out[2:5, 6] = x[5:2:-1, 6] # out[2:5, 6] = x[5:2:-1, 6]
out = fluid.layers.sequence_reverse(x) out = fluid.layers.sequence_reverse(x)
``` ```
\ No newline at end of file
## tf.scatter_update ## tf.scatter_update
### [tf.scatter_update](https://www.tensorflow.org/api_docs/python/tf/scatter_update) ### [tf.scatter_update](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/scatter_update)
```python ```python
tf.scatter_update( tf.scatter_update(
...@@ -19,7 +19,8 @@ paddle.fluid.layers.scatter( ...@@ -19,7 +19,8 @@ paddle.fluid.layers.scatter(
input, input,
index, index,
updates, updates,
name=None name=None,
overwrite=True
) )
``` ```
...@@ -32,7 +33,7 @@ PaddlePaddle:`index`只支持1-d Variable。 ...@@ -32,7 +33,7 @@ PaddlePaddle:`index`只支持1-d Variable。
#### 其他 #### 其他
Tensorflow:`updates`支持numpy-style broadcasting; Tensorflow:`updates`支持numpy-style broadcasting;
PaddlePaddle:`updates`要求其rank与`input`相同,同时`updates.shape[0]`等于`index.shape[0]` PaddlePaddle:`updates`要求其rank与`input`相同,同时`updates.shape[0]`等于`index.shape[0]`此外`overwrite`参数提供了当存在重复index时,两种不同的梯度更新策略。
### 代码示例 ### 代码示例
``` ```
......
## tf.slice ## tf.slice
### [tf.slice](https://www.tensorflow.org/api_docs/python/tf/slice) ### [tf.slice](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/slice)
``` python ``` python
tf.slice( tf.slice(
input_, input_,
...@@ -40,4 +39,4 @@ out = fluid.layers.slice(t, axes=[0,1], starts=[0,1], ends=[2,3]) ...@@ -40,4 +39,4 @@ out = fluid.layers.slice(t, axes=[0,1], starts=[0,1], ends=[2,3])
# 输出 tensor out 为[[1,2],[5,6],[9,10]] # 输出 tensor out 为[[1,2],[5,6],[9,10]]
out = fluid.layers.slice(t, axes=[1], starts=[1], ends=[3]) out = fluid.layers.slice(t, axes=[1], starts=[1], ends=[3])
``` ```
\ No newline at end of file
## tf.split ## tf.split
### [tf.split](https://www.tensorflow.org/api_docs/python/tf/split) ### [tf.split](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/split)
```python ```python
tf.split( tf.split(
...@@ -39,4 +39,4 @@ x0.shape # [3, 3, 5] ...@@ -39,4 +39,4 @@ x0.shape # [3, 3, 5]
x1.shape # [3, 3, 5] x1.shape # [3, 3, 5]
x2.shape # [3, 3, 5] x2.shape # [3, 3, 5]
``` ```
\ No newline at end of file
## tf.squared_difference ## tf.squared_difference
### [tf.squared_diffenrece](https://www.tensorflow.org/api_docs/python/tf/math/squared_difference) ### [tf.squared_diffenrece](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/math/squared_difference)
``` python ``` python
tf.math.squared_difference( tf.math.squared_difference(
x, x,
...@@ -24,4 +24,4 @@ input_x = fluid.layers.data(dtype='float32', shape=[1000], name='input_x') ...@@ -24,4 +24,4 @@ input_x = fluid.layers.data(dtype='float32', shape=[1000], name='input_x')
input_y = fluid.layers.data(dtype='float32', shape=[1000], name='input_y') input_y = fluid.layers.data(dtype='float32', shape=[1000], name='input_y')
# 调用上述自定义函数 # 调用上述自定义函数
result = squared_difference(input_x, input_y) result = squared_difference(input_x, input_y)
``` ```
\ No newline at end of file
## tf.stop_gradient ## tf.stop_gradient
### [tf.stop_gradient](https://www.tensorflow.org/api_docs/python/tf/stop_gradient) ### [tf.stop_gradient](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/stop_gradient)
``` python ``` python
tf.stop_gradient( tf.stop_gradient(
input, input,
...@@ -15,4 +14,4 @@ TensorFlow中,使用`stop_gradient`表示该tensor不需要进行bp。而在Pa ...@@ -15,4 +14,4 @@ TensorFlow中,使用`stop_gradient`表示该tensor不需要进行bp。而在Pa
## 代码示例 ## 代码示例
```python ```python
# 将tensor t设置成不需要bp # 将tensor t设置成不需要bp
t.stop_gradient = True t.stop_gradient = True
\ No newline at end of file
## tf.while_loop ## tf.while_loop
### [tf.while_loop](https://www.tensorflow.org/api_docs/python/tf/while_loop) ### [tf.while_loop](https://www.tensorflow.org/versions/r1.13/api_docs/python/tf/while_loop)
```python ```python
tf.while_loop( tf.while_loop(
...@@ -53,4 +53,4 @@ with while_op.block(): ...@@ -53,4 +53,4 @@ with while_op.block():
i = layers.increment(x=i, in_place=True) i = layers.increment(x=i, in_place=True)
# 更新条件状态 # 更新条件状态
layers.less_than(x=i, y=limit, cond=cond) layers.less_than(x=i, y=limit, cond=cond)
``` ```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册