Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
9828c2c7
X
X2Paddle
项目概览
PaddlePaddle
/
X2Paddle
大约 1 年 前同步成功
通知
328
Star
698
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
26
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
X2Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
26
Issue
26
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
9828c2c7
编写于
7月 05, 2019
作者:
M
Macrobull
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/master'
上级
5cb28ed2
c9f10e2b
变更
60
展开全部
隐藏空白更改
内联
并排
Showing
60 changed file
with
300 addition
and
317 deletion
+300
-317
README.md
README.md
+2
-0
caffe2fluid/README.md
caffe2fluid/README.md
+17
-1
caffe2fluid/README_en.md
caffe2fluid/README_en.md
+16
-1
caffe2fluid/doc/Slice.md
caffe2fluid/doc/Slice.md
+2
-2
caffe2fluid/examples/imagenet/infer.py
caffe2fluid/examples/imagenet/infer.py
+1
-1
caffe2fluid/examples/imagenet/tools/diff.sh
caffe2fluid/examples/imagenet/tools/diff.sh
+1
-1
caffe2fluid/kaffe/caffe/resolver.py
caffe2fluid/kaffe/caffe/resolver.py
+5
-0
caffe2fluid/kaffe/custom_layers/detection_out.py
caffe2fluid/kaffe/custom_layers/detection_out.py
+2
-2
caffe2fluid/kaffe/custom_layers/flatten.py
caffe2fluid/kaffe/custom_layers/flatten.py
+4
-3
caffe2fluid/kaffe/custom_layers/reshape.py
caffe2fluid/kaffe/custom_layers/reshape.py
+3
-42
caffe2fluid/kaffe/paddle/network.py
caffe2fluid/kaffe/paddle/network.py
+2
-2
caffe2fluid/kaffe/shapes.py
caffe2fluid/kaffe/shapes.py
+3
-0
tensorflow2fluid/README.md
tensorflow2fluid/README.md
+2
-0
tensorflow2fluid/doc/ReadMe.md
tensorflow2fluid/doc/ReadMe.md
+142
-143
tensorflow2fluid/doc/compare_op.md
tensorflow2fluid/doc/compare_op.md
+5
-5
tensorflow2fluid/doc/tf.case.md
tensorflow2fluid/doc/tf.case.md
+2
-2
tensorflow2fluid/doc/tf.clip_by_global_norm.md
tensorflow2fluid/doc/tf.clip_by_global_norm.md
+2
-2
tensorflow2fluid/doc/tf.clip_by_norm.md
tensorflow2fluid/doc/tf.clip_by_norm.md
+2
-2
tensorflow2fluid/doc/tf.contrib.layers.flatten.md
tensorflow2fluid/doc/tf.contrib.layers.flatten.md
+2
-2
tensorflow2fluid/doc/tf.expand_dims.md
tensorflow2fluid/doc/tf.expand_dims.md
+2
-4
tensorflow2fluid/doc/tf.image.non_max_suppression.md
tensorflow2fluid/doc/tf.image.non_max_suppression.md
+2
-3
tensorflow2fluid/doc/tf.image.resize_images.md
tensorflow2fluid/doc/tf.image.resize_images.md
+2
-4
tensorflow2fluid/doc/tf.layers.conv2d.md
tensorflow2fluid/doc/tf.layers.conv2d.md
+3
-4
tensorflow2fluid/doc/tf.layers.dense.md
tensorflow2fluid/doc/tf.layers.dense.md
+2
-3
tensorflow2fluid/doc/tf.losses.mean_and_squared_error.md
tensorflow2fluid/doc/tf.losses.mean_and_squared_error.md
+2
-2
tensorflow2fluid/doc/tf.losses.sigmoid_cross_entropy.md
tensorflow2fluid/doc/tf.losses.sigmoid_cross_entropy.md
+2
-2
tensorflow2fluid/doc/tf.math.is_finite.md
tensorflow2fluid/doc/tf.math.is_finite.md
+2
-3
tensorflow2fluid/doc/tf.math.rsqrt.md
tensorflow2fluid/doc/tf.math.rsqrt.md
+2
-2
tensorflow2fluid/doc/tf.matmul.md
tensorflow2fluid/doc/tf.matmul.md
+2
-3
tensorflow2fluid/doc/tf.nn.avg_pool.md
tensorflow2fluid/doc/tf.nn.avg_pool.md
+1
-1
tensorflow2fluid/doc/tf.nn.bidirectional_dynamic_rnn.md
tensorflow2fluid/doc/tf.nn.bidirectional_dynamic_rnn.md
+2
-2
tensorflow2fluid/doc/tf.nn.conv2d.md
tensorflow2fluid/doc/tf.nn.conv2d.md
+2
-2
tensorflow2fluid/doc/tf.nn.conv2d_transpose.md
tensorflow2fluid/doc/tf.nn.conv2d_transpose.md
+2
-3
tensorflow2fluid/doc/tf.nn.conv3d_transpose.md
tensorflow2fluid/doc/tf.nn.conv3d_transpose.md
+2
-3
tensorflow2fluid/doc/tf.nn.depthwise_conv2d.md
tensorflow2fluid/doc/tf.nn.depthwise_conv2d.md
+2
-2
tensorflow2fluid/doc/tf.nn.dropout.md
tensorflow2fluid/doc/tf.nn.dropout.md
+2
-3
tensorflow2fluid/doc/tf.nn.dynamic_rnn.md
tensorflow2fluid/doc/tf.nn.dynamic_rnn.md
+2
-2
tensorflow2fluid/doc/tf.nn.l2_normalize.md
tensorflow2fluid/doc/tf.nn.l2_normalize.md
+2
-3
tensorflow2fluid/doc/tf.nn.lrn.md
tensorflow2fluid/doc/tf.nn.lrn.md
+2
-3
tensorflow2fluid/doc/tf.nn.max_pool.md
tensorflow2fluid/doc/tf.nn.max_pool.md
+2
-2
tensorflow2fluid/doc/tf.nn.reduce_logsumexp.md
tensorflow2fluid/doc/tf.nn.reduce_logsumexp.md
+2
-2
tensorflow2fluid/doc/tf.nn.rnn.GRUCell.md
tensorflow2fluid/doc/tf.nn.rnn.GRUCell.md
+2
-3
tensorflow2fluid/doc/tf.nn.rnn_cell.LSTMCell.md
tensorflow2fluid/doc/tf.nn.rnn_cell.LSTMCell.md
+2
-2
tensorflow2fluid/doc/tf.nn.rnn_cell.MultiRNNCell.md
tensorflow2fluid/doc/tf.nn.rnn_cell.MultiRNNCell.md
+2
-2
tensorflow2fluid/doc/tf.nn.separable_conv2d.md
tensorflow2fluid/doc/tf.nn.separable_conv2d.md
+2
-2
tensorflow2fluid/doc/tf.nn.softmax_cross_entropy_with_logits.md
...flow2fluid/doc/tf.nn.softmax_cross_entropy_with_logits.md
+3
-2
tensorflow2fluid/doc/tf.nn.top_k.md
tensorflow2fluid/doc/tf.nn.top_k.md
+2
-3
tensorflow2fluid/doc/tf.one_hot.md
tensorflow2fluid/doc/tf.one_hot.md
+2
-3
tensorflow2fluid/doc/tf.pad.md
tensorflow2fluid/doc/tf.pad.md
+2
-3
tensorflow2fluid/doc/tf.placeholder.md
tensorflow2fluid/doc/tf.placeholder.md
+2
-3
tensorflow2fluid/doc/tf.pow.md
tensorflow2fluid/doc/tf.pow.md
+2
-2
tensorflow2fluid/doc/tf.print.md
tensorflow2fluid/doc/tf.print.md
+2
-2
tensorflow2fluid/doc/tf.reshape.md
tensorflow2fluid/doc/tf.reshape.md
+2
-4
tensorflow2fluid/doc/tf.reverse_sequence.md
tensorflow2fluid/doc/tf.reverse_sequence.md
+2
-2
tensorflow2fluid/doc/tf.scatter_update.md
tensorflow2fluid/doc/tf.scatter_update.md
+4
-3
tensorflow2fluid/doc/tf.slice.md
tensorflow2fluid/doc/tf.slice.md
+2
-3
tensorflow2fluid/doc/tf.split.md
tensorflow2fluid/doc/tf.split.md
+2
-2
tensorflow2fluid/doc/tf.squared_difference.md
tensorflow2fluid/doc/tf.squared_difference.md
+2
-2
tensorflow2fluid/doc/tf.stop_gradient.md
tensorflow2fluid/doc/tf.stop_gradient.md
+2
-3
tensorflow2fluid/doc/tf.while_loop.md
tensorflow2fluid/doc/tf.while_loop.md
+2
-2
未找到文件。
README.md
浏览文件 @
9828c2c7
...
@@ -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
)
]
...
...
caffe2fluid/README.md
浏览文件 @
9828c2c7
...
@@ -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模型
...
...
caffe2fluid/README_en.md
浏览文件 @
9828c2c7
...
@@ -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
...
...
caffe2fluid/doc/Slice.md
浏览文件 @
9828c2c7
...
@@ -51,8 +51,8 @@ layer {
...
@@ -51,8 +51,8 @@ layer {
top: "out3"
top: "out3"
slice_param {
slice_param {
axis: 1 # 使用-1效果相同
axis: 1 # 使用-1效果相同
a
lice_point: 1
s
lice_point: 1
a
lice_point: 2
s
lice_point: 2
}
}
}
}
# 输出3个数组,第一个shape:(2,1),第二个shape:(2,1),第三个shape:(2,4)
# 输出3个数组,第一个shape:(2,1),第二个shape:(2,1),第三个shape:(2,4)
...
...
caffe2fluid/examples/imagenet/infer.py
浏览文件 @
9828c2c7
...
@@ -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], '
...
...
caffe2fluid/examples/imagenet/tools/diff.sh
浏览文件 @
9828c2c7
...
@@ -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
...
...
caffe2fluid/kaffe/caffe/resolver.py
浏览文件 @
9828c2c7
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
...
...
caffe2fluid/kaffe/custom_layers/detection_out.py
浏览文件 @
9828c2c7
...
@@ -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
(
...
...
caffe2fluid/kaffe/custom_layers/flatten.py
浏览文件 @
9828c2c7
...
@@ -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
)
...
...
caffe2fluid/kaffe/custom_layers/reshape.py
浏览文件 @
9828c2c7
...
@@ -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
)
caffe2fluid/kaffe/paddle/network.py
浏览文件 @
9828c2c7
...
@@ -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
(
...
...
caffe2fluid/kaffe/shapes.py
浏览文件 @
9828c2c7
...
@@ -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'
])
...
...
tensorflow2fluid/README.md
浏览文件 @
9828c2c7
...
@@ -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 |
...
...
tensorflow2fluid/doc/ReadMe.md
浏览文件 @
9828c2c7
此差异已折叠。
点击以展开。
tensorflow2fluid/doc/compare_op.md
浏览文件 @
9828c2c7
...
@@ -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
tensorflow2fluid/doc/tf.case.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.clip_by_global_norm.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.clip_by_norm.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.contrib.layers.flatten.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.expand_dims.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.image.non_max_suppression.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.image.resize_images.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.layers.conv2d.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.layers.dense.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.losses.mean_and_squared_error.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.losses.sigmoid_cross_entropy.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.math.is_finite.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.math.rsqrt.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.matmul.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.avg_pool.md
浏览文件 @
9828c2c7
## tf.nn.avg_pool
## tf.nn.avg_pool
### [tf.nn.avg_pool](https://www.tensorflow.org/versions/r1.1
0
/api_docs/python/tf/nn/avg_pool)
### [tf.nn.avg_pool](https://www.tensorflow.org/versions/r1.1
3
/api_docs/python/tf/nn/avg_pool)
```
python
```
python
tf
.
nn
.
avg_pool
(
tf
.
nn
.
avg_pool
(
...
...
tensorflow2fluid/doc/tf.nn.bidirectional_dynamic_rnn.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.conv2d.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.conv2d_transpose.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.conv3d_transpose.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.depthwise_conv2d.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.dropout.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.dynamic_rnn.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.l2_normalize.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.lrn.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.max_pool.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.reduce_logsumexp.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.
contrib
.rnn.GRUCell.md
→
tensorflow2fluid/doc/tf.
nn
.rnn.GRUCell.md
浏览文件 @
9828c2c7
## 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)
...
...
tensorflow2fluid/doc/tf.nn.rnn_cell.LSTMCell.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.rnn_cell.MultiRNNCell.md
浏览文件 @
9828c2c7
## 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
)
)
...
...
tensorflow2fluid/doc/tf.nn.separable_conv2d.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.nn.softmax_cross_entropy_with_logits.md
浏览文件 @
9828c2c7
## 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
)
)
```
```
...
...
tensorflow2fluid/doc/tf.nn.top_k.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.one_hot.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.pad.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.placeholder.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.pow.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.print.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.reshape.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.reverse_sequence.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.scatter_update.md
浏览文件 @
9828c2c7
## 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时,两种不同的梯度更新策略。
### 代码示例
### 代码示例
```
```
...
...
tensorflow2fluid/doc/tf.slice.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.split.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.squared_difference.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.stop_gradient.md
浏览文件 @
9828c2c7
## 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
tensorflow2fluid/doc/tf.while_loop.md
浏览文件 @
9828c2c7
## 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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录