Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wjd2002
Ncnn
提交
60fedae3
N
Ncnn
项目概览
wjd2002
/
Ncnn
9 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
Ncnn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
60fedae3
编写于
8月 07, 2023
作者:
N
nihui
提交者:
GitHub
8月 07, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix pnnx ghost reshape shape expression inputs, fix intmax overflow on fuse/eval expression (#4923)
上级
0a8cf31a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
14 addition
and
1 deletion
+14
-1
tools/pnnx/src/pass_level1.cpp
tools/pnnx/src/pass_level1.cpp
+2
-0
tools/pnnx/src/pass_level3/fuse_expression.cpp
tools/pnnx/src/pass_level3/fuse_expression.cpp
+3
-0
tools/pnnx/src/pass_level5/eliminate_reshape_shape_expression.cpp
...nx/src/pass_level5/eliminate_reshape_shape_expression.cpp
+4
-1
tools/pnnx/src/pass_level5/eval_expression.cpp
tools/pnnx/src/pass_level5/eval_expression.cpp
+5
-0
未找到文件。
tools/pnnx/src/pass_level1.cpp
浏览文件 @
60fedae3
...
...
@@ -132,6 +132,8 @@ void pass_level1(const torch::jit::Module& mod, const std::shared_ptr<torch::jit
// sub_mod.dump(true, true, true);
op
->
attrs
[
"data"
]
=
sub_mod
.
attr
(
name
).
toTensor
();
op
->
outputs
[
0
]
->
type
=
op
->
attrs
[
"data"
].
type
;
op
->
outputs
[
0
]
->
shape
=
op
->
attrs
[
"data"
].
shape
;
}
}
else
if
(
n
->
kind
()
==
c10
::
prim
::
Constant
)
// || n->kind() == c10::prim::ListConstruct)
...
...
tools/pnnx/src/pass_level3/fuse_expression.cpp
浏览文件 @
60fedae3
...
...
@@ -251,6 +251,9 @@ static void fuse_expression(Graph& graph, Operand* operand, std::string& expr, s
int64_t
v
;
zip
.
read_file
(
operand
->
name
,
(
char
*
)
&
v
);
if
(
v
==
std
::
numeric_limits
<
int64_t
>::
max
())
v
=
INT_MAX
;
if
(
v
==
std
::
numeric_limits
<
int64_t
>::
min
())
v
=
INT_MIN
;
char
tmp
[
32
];
sprintf
(
tmp
,
"%ld"
,
v
);
expr
+=
tmp
;
...
...
tools/pnnx/src/pass_level5/eliminate_reshape_shape_expression.cpp
浏览文件 @
60fedae3
...
...
@@ -165,7 +165,10 @@ void eliminate_reshape_shape_expression(Graph& graph)
if
(
op_expr
->
outputs
[
0
]
->
consumers
.
size
()
==
0
)
{
// remove expression operator
op_expr
->
inputs
[
0
]
->
remove_consumer
(
op_expr
);
for
(
auto
x
:
op_expr
->
inputs
)
{
x
->
remove_consumer
(
op_expr
);
}
Operand
*
op_expr_out
=
op_expr
->
outputs
[
0
];
...
...
tools/pnnx/src/pass_level5/eval_expression.cpp
浏览文件 @
60fedae3
...
...
@@ -193,6 +193,11 @@ static std::string eval_expression(const Operator* op)
if
(
t
==
"int"
)
{
int
r
=
int
(
af
);
if
(
token_is_interger_literal
(
a
))
{
r
=
std
::
stoi
(
a
);
}
exprstack
.
push
(
std
::
to_string
(
r
));
}
if
(
t
==
"abs"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录