Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleClas
提交
de298b1b
P
PaddleClas
项目概览
PaddlePaddle
/
PaddleClas
1 年多 前同步成功
通知
116
Star
4999
Fork
1114
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
19
列表
看板
标记
里程碑
合并请求
6
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleClas
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
19
Issue
19
列表
看板
标记
里程碑
合并请求
6
合并请求
6
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
de298b1b
编写于
9月 04, 2021
作者:
W
weishengyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dbg
上级
4dc175c9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
7 deletion
+13
-7
ppcls/data/__init__.py
ppcls/data/__init__.py
+4
-0
ppcls/data/dataloader/mix_sampler.py
ppcls/data/dataloader/mix_sampler.py
+2
-1
ppcls/data/dataloader/writer_hard_sampler.py
ppcls/data/dataloader/writer_hard_sampler.py
+7
-6
未找到文件。
ppcls/data/__init__.py
浏览文件 @
de298b1b
...
...
@@ -26,9 +26,13 @@ from ppcls.data.dataloader.common_dataset import create_operators
from
ppcls.data.dataloader.vehicle_dataset
import
CompCars
,
VeriWild
from
ppcls.data.dataloader.logo_dataset
import
LogoDataset
from
ppcls.data.dataloader.icartoon_dataset
import
ICartoonDataset
from
ppcls.data.dataloader.mix_dataset
import
MixDataset
from
ppcls.data.dataloader.writer_hard_dataset
import
WriterHardDataset
# sampler
from
ppcls.data.dataloader.DistributedRandomIdentitySampler
import
DistributedRandomIdentitySampler
from
ppcls.data.dataloader.writer_hard_sampler
import
WriterHardSampler
from
ppcls.data.dataloader.mix_sampler
import
MixSampler
from
ppcls.data
import
preprocess
from
ppcls.data.preprocess
import
transform
...
...
ppcls/data/dataloader/mix_sampler.py
浏览文件 @
de298b1b
...
...
@@ -34,10 +34,11 @@ class MixSampler(DistributedBatchSampler):
batch_size_left
=
self
.
batch_size
self
.
iter_list
=
[]
for
i
,
config_i
in
enumerate
(
sample_configs
):
self
.
start_list
.
append
(
dataset_list
[
i
][
1
])
sample_method
=
config_i
.
pop
(
"name"
)
ratio_i
=
config_i
.
pop
(
"ratio"
)
if
i
<
len
(
sample_configs
)
-
1
:
batch_size_i
=
self
.
batch_size
*
ratio_i
batch_size_i
=
int
(
self
.
batch_size
*
ratio_i
)
batch_size_left
-=
batch_size_i
else
:
batch_size_i
=
batch_size_left
...
...
ppcls/data/dataloader/writer_hard_sampler.py
浏览文件 @
de298b1b
...
...
@@ -33,10 +33,11 @@ class WriterHardSampler(DistributedBatchSampler):
- batch_size (int): number of examples in a batch.
"""
def
__init__
(
self
,
dataset
,
batch_size
,
**
args
):
def
__init__
(
self
,
dataset
,
batch_size
,
shuffle
=
True
,
**
args
):
super
(
WriterHardSampler
,
self
).
__init__
(
dataset
,
batch_size
)
self
.
dataset
=
dataset
self
.
batch_size
=
batch_size
self
.
shuffle
=
shuffle
assert
not
self
.
batch_size
%
4
,
"bs of WriterHardSampler should be 3*N"
assert
isinstance
(
dataset
,
WriterHardDataset
),
"WriterHardSampler only support WriterHardDataset"
self
.
num_pids_per_batch
=
self
.
batch_size
//
4
...
...
@@ -45,7 +46,7 @@ class WriterHardSampler(DistributedBatchSampler):
self
.
text_id_map
=
{}
anno_list
=
dataset
.
anno_list
for
i
,
anno_i
in
enumerate
(
anno_list
):
_
,
person_id
,
text_id
=
anno_i
.
split
(
" "
)
_
,
person_id
,
text_id
=
anno_i
.
s
trip
().
s
plit
(
" "
)
if
text_id
!=
"-1"
:
if
random
.
random
()
<
0.5
:
self
.
anchor_list
.
append
([
i
,
person_id
,
text_id
])
...
...
@@ -59,11 +60,11 @@ class WriterHardSampler(DistributedBatchSampler):
self
.
person_id_map
[
person_id
].
append
(
i
)
else
:
self
.
person_id_map
[
person_id
]
=
[
i
]
assert
len
(
self
.
anchor_list
)
<
self
.
batch_size
,
"anchor should be larger than batch_size"
assert
len
(
self
.
anchor_list
)
>
self
.
batch_size
,
"anchor should be larger than batch_size"
def
__iter__
(
self
):
random
.
shuffle
(
self
.
anchor_list
)
if
self
.
shuffle
:
random
.
shuffle
(
self
.
anchor_list
)
for
i
in
range
(
len
(
self
)):
batch_indices
=
[]
for
j
in
range
(
self
.
batch_size
//
4
):
...
...
@@ -79,4 +80,4 @@ class WriterHardSampler(DistributedBatchSampler):
yield
batch_indices
def
__len__
(
self
):
len
(
self
.
anchor_list
)
*
4
//
self
.
batch_size
return
len
(
self
.
anchor_list
)
*
4
//
self
.
batch_size
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录