Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleOCR
提交
10b54d66
P
PaddleOCR
项目概览
PaddlePaddle
/
PaddleOCR
大约 1 年 前同步成功
通知
1528
Star
32962
Fork
6643
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
108
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleOCR
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
108
Issue
108
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
10b54d66
编写于
11月 15, 2020
作者:
D
Double_V
提交者:
GitHub
11月 15, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1168 from WenmuZhou/dygraph_rc
delete fluid
上级
a40731aa
d4facfe4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
5 addition
and
28 deletion
+5
-28
ppocr/modeling/heads/rec_ctc_head.py
ppocr/modeling/heads/rec_ctc_head.py
+2
-1
ppocr/optimizer/regularizer.py
ppocr/optimizer/regularizer.py
+3
-5
ppocr/postprocess/rec_postprocess.py
ppocr/postprocess/rec_postprocess.py
+0
-22
未找到文件。
ppocr/modeling/heads/rec_ctc_head.py
浏览文件 @
10b54d66
...
...
@@ -24,7 +24,7 @@ from paddle.nn import functional as F
def
get_para_bias_attr
(
l2_decay
,
k
,
name
):
regularizer
=
paddle
.
fluid
.
regularizer
.
L2Decay
(
l2_decay
)
regularizer
=
paddle
.
regularizer
.
L2Decay
(
l2_decay
)
stdv
=
1.0
/
math
.
sqrt
(
k
*
1.0
)
initializer
=
nn
.
initializer
.
Uniform
(
-
stdv
,
stdv
)
weight_attr
=
ParamAttr
(
...
...
@@ -33,6 +33,7 @@ def get_para_bias_attr(l2_decay, k, name):
regularizer
=
regularizer
,
initializer
=
initializer
,
name
=
name
+
"_b_attr"
)
return
[
weight_attr
,
bias_attr
]
class
CTCHead
(
nn
.
Layer
):
def
__init__
(
self
,
in_channels
,
out_channels
,
fc_decay
=
0.0004
,
**
kwargs
):
super
(
CTCHead
,
self
).
__init__
()
...
...
ppocr/optimizer/regularizer.py
浏览文件 @
10b54d66
...
...
@@ -17,7 +17,7 @@ from __future__ import division
from
__future__
import
print_function
from
__future__
import
unicode_literals
from
paddle
import
fluid
import
paddle
class
L1Decay
(
object
):
...
...
@@ -32,8 +32,7 @@ class L1Decay(object):
self
.
regularization_coeff
=
factor
def
__call__
(
self
):
reg
=
fluid
.
regularizer
.
L1Decay
(
regularization_coeff
=
self
.
regularization_coeff
)
reg
=
paddle
.
regularizer
.
L1Decay
(
self
.
regularization_coeff
)
return
reg
...
...
@@ -49,6 +48,5 @@ class L2Decay(object):
self
.
regularization_coeff
=
factor
def
__call__
(
self
):
reg
=
fluid
.
regularizer
.
L2Decay
(
regularization_coeff
=
self
.
regularization_coeff
)
reg
=
paddle
.
regularizer
.
L2Decay
(
self
.
regularization_coeff
)
return
reg
ppocr/postprocess/rec_postprocess.py
浏览文件 @
10b54d66
...
...
@@ -102,7 +102,6 @@ class CTCLabelDecode(BaseRecLabelDecode):
def
__call__
(
self
,
preds
,
label
=
None
,
*
args
,
**
kwargs
):
if
isinstance
(
preds
,
paddle
.
Tensor
):
preds
=
preds
.
numpy
()
# out = self.decode_preds(preds)
preds_idx
=
preds
.
argmax
(
axis
=
2
)
preds_prob
=
preds
.
max
(
axis
=
2
)
...
...
@@ -116,27 +115,6 @@ class CTCLabelDecode(BaseRecLabelDecode):
dict_character
=
[
'blank'
]
+
dict_character
return
dict_character
def
decode_preds
(
self
,
preds
):
probs_ind
=
np
.
argmax
(
preds
,
axis
=
2
)
B
,
N
,
_
=
preds
.
shape
l
=
np
.
ones
(
B
).
astype
(
np
.
int64
)
*
N
length
=
paddle
.
to_tensor
(
l
)
out
=
paddle
.
fluid
.
layers
.
ctc_greedy_decoder
(
preds
,
0
,
length
)
batch_res
=
[
x
[:
idx
[
0
]]
for
x
,
idx
in
zip
(
out
[
0
].
numpy
(),
out
[
1
].
numpy
())
]
result_list
=
[]
for
sample_idx
,
ind
,
prob
in
zip
(
batch_res
,
probs_ind
,
preds
):
char_list
=
[
self
.
character
[
idx
]
for
idx
in
sample_idx
]
valid_ind
=
np
.
where
(
ind
!=
0
)[
0
]
if
len
(
valid_ind
)
==
0
:
continue
conf_list
=
prob
[
valid_ind
,
ind
[
valid_ind
]]
result_list
.
append
((
''
.
join
(
char_list
),
conf_list
))
return
result_list
class
AttnLabelDecode
(
BaseRecLabelDecode
):
""" Convert between text-label and text-index """
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录