Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
1a5e4a8a
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看板
提交
1a5e4a8a
编写于
9月 05, 2019
作者:
C
channingss
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug for (import torch)
上级
88858561
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
45 addition
and
35 deletion
+45
-35
x2paddle/convert.py
x2paddle/convert.py
+11
-11
x2paddle/core/op_mapper.py
x2paddle/core/op_mapper.py
+23
-0
x2paddle/core/util.py
x2paddle/core/util.py
+0
-24
x2paddle/decoder/onnx_decoder.py
x2paddle/decoder/onnx_decoder.py
+11
-0
未找到文件。
x2paddle/convert.py
浏览文件 @
1a5e4a8a
...
@@ -139,17 +139,6 @@ def caffe2paddle(proto, weight, save_dir, caffe_proto):
...
@@ -139,17 +139,6 @@ def caffe2paddle(proto, weight, save_dir, caffe_proto):
def
onnx2paddle
(
model_path
,
save_dir
):
def
onnx2paddle
(
model_path
,
save_dir
):
# check onnx installation and version
# check onnx installation and version
try
:
import
torch
version
=
torch
.
__version__
if
'1.2.0'
not
in
version
:
print
(
"torch==1.2.0 is required"
)
return
except
:
print
(
"we use caffe2 to inference graph, please use
\"
pip install torch==1.2.0
\"
."
)
return
try
:
try
:
import
onnx
import
onnx
version
=
onnx
.
version
.
version
version
=
onnx
.
version
.
version
...
@@ -193,6 +182,17 @@ def main():
...
@@ -193,6 +182,17 @@ def main():
assert
args
.
framework
is
not
None
,
"--framework is not defined(support tensorflow/caffe/onnx)"
assert
args
.
framework
is
not
None
,
"--framework is not defined(support tensorflow/caffe/onnx)"
assert
args
.
save_dir
is
not
None
,
"--save_dir is not defined"
assert
args
.
save_dir
is
not
None
,
"--save_dir is not defined"
try
:
import
paddle
v0
,
v1
,
v2
=
paddle
.
__version__
.
split
(
'.'
)
if
int
(
v0
)
!=
1
or
int
(
v1
)
<
5
:
print
(
"paddlepaddle>=1.5.0 is required"
)
return
except
:
print
(
"paddlepaddle not installed, use
\"
pip install paddlepaddle
\"
"
)
assert
args
.
framework
is
not
None
,
"--framework is not defined(support tensorflow/caffe/onnx)"
assert
args
.
save_dir
is
not
None
,
"--save_dir is not defined"
if
args
.
framework
==
"tensorflow"
:
if
args
.
framework
==
"tensorflow"
:
assert
args
.
model
is
not
None
,
"--model should be defined while translating tensorflow model"
assert
args
.
model
is
not
None
,
"--model should be defined while translating tensorflow model"
without_data_format_optimization
=
False
without_data_format_optimization
=
False
...
...
x2paddle/core/op_mapper.py
浏览文件 @
1a5e4a8a
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
import
paddle.fluid
as
fluid
from
paddle.fluid.proto
import
framework_pb2
from
paddle.fluid.proto
import
framework_pb2
from
x2paddle.core.util
import
*
from
x2paddle.core.util
import
*
import
inspect
import
inspect
...
@@ -46,6 +47,28 @@ def export_paddle_param(param, param_name, dir):
...
@@ -46,6 +47,28 @@ def export_paddle_param(param, param_name, dir):
fp
.
close
()
fp
.
close
()
# This func will copy to generate code file
def
run_net
(
param_dir
=
"./"
):
import
os
inputs
,
outputs
=
x2paddle_net
()
for
i
,
out
in
enumerate
(
outputs
):
if
isinstance
(
out
,
list
):
for
out_part
in
out
:
outputs
.
append
(
out_part
)
del
outputs
[
i
]
exe
=
fluid
.
Executor
(
fluid
.
CPUPlace
())
exe
.
run
(
fluid
.
default_startup_program
())
def
if_exist
(
var
):
b
=
os
.
path
.
exists
(
os
.
path
.
join
(
param_dir
,
var
.
name
))
return
b
fluid
.
io
.
load_vars
(
exe
,
param_dir
,
fluid
.
default_main_program
(),
predicate
=
if_exist
)
class
OpMapper
(
object
):
class
OpMapper
(
object
):
def
__init__
(
self
):
def
__init__
(
self
):
self
.
paddle_codes
=
""
self
.
paddle_codes
=
""
...
...
x2paddle/core/util.py
浏览文件 @
1a5e4a8a
...
@@ -11,8 +11,6 @@
...
@@ -11,8 +11,6 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
import
paddle.fluid
as
fluid
import
numpy
import
numpy
import
math
import
math
import
os
import
os
...
@@ -20,25 +18,3 @@ import os
...
@@ -20,25 +18,3 @@ import os
def
string
(
param
):
def
string
(
param
):
return
"
\'
{}
\'
"
.
format
(
param
)
return
"
\'
{}
\'
"
.
format
(
param
)
# This func will copy to generate code file
def
run_net
(
param_dir
=
"./"
):
import
os
inputs
,
outputs
=
x2paddle_net
()
for
i
,
out
in
enumerate
(
outputs
):
if
isinstance
(
out
,
list
):
for
out_part
in
out
:
outputs
.
append
(
out_part
)
del
outputs
[
i
]
exe
=
fluid
.
Executor
(
fluid
.
CPUPlace
())
exe
.
run
(
fluid
.
default_startup_program
())
def
if_exist
(
var
):
b
=
os
.
path
.
exists
(
os
.
path
.
join
(
param_dir
,
var
.
name
))
return
b
fluid
.
io
.
load_vars
(
exe
,
param_dir
,
fluid
.
default_main_program
(),
predicate
=
if_exist
)
x2paddle/decoder/onnx_decoder.py
浏览文件 @
1a5e4a8a
...
@@ -271,6 +271,17 @@ class ONNXGraph(Graph):
...
@@ -271,6 +271,17 @@ class ONNXGraph(Graph):
return
value_info
return
value_info
def
get_results_of_inference
(
self
,
model
,
shape
):
def
get_results_of_inference
(
self
,
model
,
shape
):
try
:
import
torch
version
=
torch
.
__version__
if
'1.1.0'
not
in
version
:
print
(
"your model have dynamic graph, torch==1.1.0 is required"
)
return
except
:
print
(
"your model have dynamic graph, we use caff2 to inference graph, please use
\"
pip install torch==1.1.0
\"
."
)
return
from
x2paddle.decoder.onnx_backend
import
prepare
from
x2paddle.decoder.onnx_backend
import
prepare
np_images
=
np
.
random
.
rand
(
shape
[
0
],
shape
[
1
],
shape
[
2
],
np_images
=
np
.
random
.
rand
(
shape
[
0
],
shape
[
1
],
shape
[
2
],
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录