Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
DeepSpeech
提交
2ae94bd2
D
DeepSpeech
项目概览
PaddlePaddle
/
DeepSpeech
大约 2 年 前同步成功
通知
210
Star
8425
Fork
1598
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
245
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
DeepSpeech
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
245
Issue
245
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
2ae94bd2
编写于
10月 12, 2022
作者:
T
tianhao zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
freeze wav2vec2=True, change loss report and update README.md
上级
3d994f5c
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
29 addition
and
3 deletion
+29
-3
examples/librispeech/asr3/README.md
examples/librispeech/asr3/README.md
+6
-0
examples/librispeech/asr3/conf/wav2vec2ASR.yaml
examples/librispeech/asr3/conf/wav2vec2ASR.yaml
+1
-1
paddlespeech/s2t/exps/wav2vec2/model.py
paddlespeech/s2t/exps/wav2vec2/model.py
+22
-2
未找到文件。
examples/librispeech/asr3/README.md
浏览文件 @
2ae94bd2
...
...
@@ -88,6 +88,12 @@ data/
|-- test.meta
`
--
train.meta
```
Stage 0 also downloads the pre-trained
[
wav2vec2
](
https://paddlespeech.bj.bcebos.com/wav2vec/wav2vec2-large-960h-lv60-self.pdparams
)
model.
```
bash
mkdir
-p
exp/wav2vec2
wget
-P
exp/wav2vec2 https://paddlespeech.bj.bcebos.com/wav2vec/wav2vec2-large-960h-lv60-self.pdparams
```
## Stage 1: Model Training
If you want to train the model. you can use stage 1 in
`run.sh`
. The code is shown below.
```
bash
...
...
examples/librispeech/asr3/conf/wav2vec2ASR.yaml
浏览文件 @
2ae94bd2
############################################
# Network Architecture #
############################################
freeze_wav2vec2
:
Fals
e
freeze_wav2vec2
:
Tru
e
normalize_wav
:
True
output_norm
:
True
dnn_blocks
:
2
...
...
paddlespeech/s2t/exps/wav2vec2/model.py
浏览文件 @
2ae94bd2
...
...
@@ -48,6 +48,24 @@ class Wav2Vec2ASRTrainer(Trainer):
super
().
__init__
(
config
,
args
)
self
.
avg_train_loss
=
0
def
update_average
(
self
,
batch_index
,
loss
,
avg_loss
):
"""Update running average of the loss.
Arguments
---------
loss : paddle.tensor
detached loss, a single float value.
avg_loss : float
current running average.
Returns
-------
avg_loss : float
The average loss.
"""
if
paddle
.
isfinite
(
loss
):
avg_loss
-=
avg_loss
/
(
batch_index
+
1
)
avg_loss
+=
float
(
loss
)
/
(
batch_index
+
1
)
return
avg_loss
def
train_batch
(
self
,
batch_index
,
batch
,
msg
):
train_conf
=
self
.
config
start
=
time
.
time
()
...
...
@@ -59,11 +77,11 @@ class Wav2Vec2ASRTrainer(Trainer):
wav
=
wav
[:,
:,
0
]
wav
=
self
.
speech_augmentation
(
wav
,
wavs_lens_rate
)
loss
=
self
.
model
(
wav
,
wavs_lens_rate
,
target
,
target_lens_rate
)
# pring(wav, wavs_lens_rate, target, target_lens_rate)
# loss div by `batch_size * accum_grad`
loss
/=
train_conf
.
accum_grad
losses_np
=
{
'loss'
:
float
(
loss
)
*
train_conf
.
accum_grad
}
self
.
avg_train_loss
=
self
.
update_average
(
batch_index
,
loss
,
self
.
avg_train_loss
)
# loss backward
if
(
batch_index
+
1
)
%
train_conf
.
accum_grad
!=
0
:
...
...
@@ -87,6 +105,8 @@ class Wav2Vec2ASRTrainer(Trainer):
self
.
optimizer
.
clear_grad
()
self
.
lr_scheduler
.
step
()
self
.
iteration
+=
1
losses_np
=
{
'loss'
:
float
(
self
.
avg_train_loss
)
*
train_conf
.
accum_grad
}
iteration_time
=
time
.
time
()
-
start
for
k
,
v
in
losses_np
.
items
():
report
(
k
,
v
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录