Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
hapi
提交
00e77dde
H
hapi
项目概览
PaddlePaddle
/
hapi
通知
11
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hapi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
00e77dde
编写于
4月 27, 2020
作者:
K
Kaipeng Deng
提交者:
GitHub
4月 27, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #58 from heavengate/refine_compose
refine compose
上级
c88f4570
d4c40335
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
36 addition
and
56 deletion
+36
-56
examples/tsm/infer.py
examples/tsm/infer.py
+1
-0
examples/tsm/main.py
examples/tsm/main.py
+1
-0
examples/tsm/transforms.py
examples/tsm/transforms.py
+1
-18
examples/yolov3/main.py
examples/yolov3/main.py
+1
-1
examples/yolov3/transforms.py
examples/yolov3/transforms.py
+0
-32
hapi/datasets/flowers.py
hapi/datasets/flowers.py
+1
-1
hapi/datasets/mnist.py
hapi/datasets/mnist.py
+1
-1
hapi/vision/transforms/transforms.py
hapi/vision/transforms/transforms.py
+30
-3
未找到文件。
examples/tsm/infer.py
浏览文件 @
00e77dde
...
...
@@ -20,6 +20,7 @@ import argparse
import
numpy
as
np
from
hapi.model
import
Input
,
set_device
from
hapi.vision.transforms
import
Compose
from
check
import
check_gpu
,
check_version
from
modeling
import
tsm_resnet50
...
...
examples/tsm/main.py
浏览文件 @
00e77dde
...
...
@@ -24,6 +24,7 @@ from paddle.fluid.dygraph.parallel import ParallelEnv
from
hapi.model
import
Model
,
CrossEntropy
,
Input
,
set_device
from
hapi.metrics
import
Accuracy
from
hapi.vision.transforms
import
Compose
from
modeling
import
tsm_resnet50
from
check
import
check_gpu
,
check_version
...
...
examples/tsm/transforms.py
浏览文件 @
00e77dde
...
...
@@ -21,24 +21,7 @@ import logging
logger
=
logging
.
getLogger
(
__name__
)
__all__
=
[
'GroupScale'
,
'GroupMultiScaleCrop'
,
'GroupRandomCrop'
,
'GroupRandomFlip'
,
'GroupCenterCrop'
,
'NormalizeImage'
,
'Compose'
]
class
Compose
(
object
):
def
__init__
(
self
,
transforms
=
[]):
self
.
transforms
=
transforms
def
__call__
(
self
,
*
data
):
for
f
in
self
.
transforms
:
try
:
data
=
f
(
*
data
)
except
Exception
as
e
:
stack_info
=
traceback
.
format_exc
()
logger
.
info
(
"fail to perform transform [{}] with error: "
"{} and stack:
\n
{}"
.
format
(
f
,
e
,
str
(
stack_info
)))
raise
e
return
data
'GroupRandomFlip'
,
'GroupCenterCrop'
,
'NormalizeImage'
]
class
GroupScale
(
object
):
...
...
examples/yolov3/main.py
浏览文件 @
00e77dde
...
...
@@ -27,7 +27,7 @@ from paddle.io import DataLoader
from
hapi.model
import
Model
,
Input
,
set_device
from
hapi.distributed
import
DistributedBatchSampler
from
hapi.vision.transforms
import
BatchCompose
from
hapi.vision.transforms
import
Compose
,
BatchCompose
from
modeling
import
yolov3_darknet53
,
YoloLoss
from
coco
import
COCODataset
...
...
examples/yolov3/transforms.py
浏览文件 @
00e77dde
...
...
@@ -20,7 +20,6 @@ import traceback
import
numpy
as
np
__all__
=
[
"Compose"
,
'ColorDistort'
,
'RandomExpand'
,
'RandomCrop'
,
...
...
@@ -34,37 +33,6 @@ __all__ = [
]
class
Compose
(
object
):
"""Composes several transforms together.
Args:
transforms (list of ``Transform`` objects): list of transforms to compose.
"""
def
__init__
(
self
,
transforms
):
self
.
transforms
=
transforms
def
__call__
(
self
,
*
data
):
for
f
in
self
.
transforms
:
try
:
data
=
f
(
*
data
)
except
Exception
as
e
:
stack_info
=
traceback
.
format_exc
()
print
(
"fail to perform transform [{}] with error: "
"{} and stack:
\n
{}"
.
format
(
f
,
e
,
str
(
stack_info
)))
raise
e
return
data
def
__repr__
(
self
):
format_string
=
self
.
__class__
.
__name__
+
'('
for
t
in
self
.
transforms
:
format_string
+=
'
\n
'
format_string
+=
' {0}'
.
format
(
t
)
format_string
+=
'
\n
)'
return
format_string
class
ColorDistort
(
object
):
"""Random color distortion.
...
...
hapi/datasets/flowers.py
浏览文件 @
00e77dde
...
...
@@ -121,7 +121,7 @@ class Flowers(Dataset):
image
=
np
.
array
(
Image
.
open
(
io
.
BytesIO
(
image
)))
if
self
.
transform
is
not
None
:
image
,
label
=
self
.
transform
(
image
,
label
)
image
=
self
.
transform
(
image
)
return
image
,
label
...
...
hapi/datasets/mnist.py
浏览文件 @
00e77dde
...
...
@@ -149,7 +149,7 @@ class MNIST(Dataset):
def
__getitem__
(
self
,
idx
):
image
,
label
=
self
.
images
[
idx
],
self
.
labels
[
idx
]
if
self
.
transform
is
not
None
:
image
,
label
=
self
.
transform
(
image
,
label
)
image
=
self
.
transform
(
image
)
return
image
,
label
def
__len__
(
self
):
...
...
hapi/vision/transforms/transforms.py
浏览文件 @
00e77dde
...
...
@@ -29,8 +29,10 @@ import traceback
from
.
import
functional
as
F
if
sys
.
version_info
<
(
3
,
3
):
Sequence
=
collections
.
Sequence
Iterable
=
collections
.
Iterable
else
:
Sequence
=
collections
.
abc
.
Sequence
Iterable
=
collections
.
abc
.
Iterable
__all__
=
[
...
...
@@ -54,20 +56,45 @@ __all__ = [
class
Compose
(
object
):
"""Composes several transforms together.
"""
Composes several transforms together use for composing list of transforms
together for a dataset transform.
Args:
transforms (list of ``Transform`` objects): list of transforms to compose.
Returns:
A compose object which is callable, __call__ for this Compose
object will call each given :attr:`transforms` sequencely.
Examples:
.. code-block:: python
from hapi.datasets import Flowers
from hapi.vision.transforms import Compose, ColorJitter, Resize
transform = Compose([ColorJitter(), Resize(size=608)])
flowers = Flowers(mode='test', transform=transform)
for i in range(10):
sample = flowers[i]
print(sample[0].shape, sample[1])
"""
def
__init__
(
self
,
transforms
):
self
.
transforms
=
transforms
def
__call__
(
self
,
data
):
def
__call__
(
self
,
*
data
):
for
f
in
self
.
transforms
:
try
:
data
=
f
(
data
)
# multi-fileds in a sample
if
isinstance
(
data
,
Sequence
):
data
=
f
(
*
data
)
# single field in a sample, call transform directly
else
:
data
=
f
(
data
)
except
Exception
as
e
:
stack_info
=
traceback
.
format_exc
()
print
(
"fail to perform transform [{}] with error: "
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录