未验证 提交 a2f24762 编写于 作者: G Guanghua Yu 提交者: GitHub

fix voc dataset collact_batch (#4966)

上级 1f8f8539
...@@ -111,8 +111,12 @@ class Trainer(object): ...@@ -111,8 +111,12 @@ class Trainer(object):
if self.mode == 'eval': if self.mode == 'eval':
self._eval_batch_sampler = paddle.io.BatchSampler( self._eval_batch_sampler = paddle.io.BatchSampler(
self.dataset, batch_size=self.cfg.EvalReader['batch_size']) self.dataset, batch_size=self.cfg.EvalReader['batch_size'])
self.loader = create('{}Reader'.format(self.mode.capitalize()))( reader_name = '{}Reader'.format(self.mode.capitalize())
self.dataset, cfg.worker_num, self._eval_batch_sampler) # If metric is VOC, need to be set collate_batch=False.
if cfg.metric == 'VOC':
cfg[reader_name]['collate_batch'] = False
self.loader = create(reader_name)(self.dataset, cfg.worker_num,
self._eval_batch_sampler)
# TestDataset build after user set images, skip loader creation here # TestDataset build after user set images, skip loader creation here
# build optimizer in train mode # build optimizer in train mode
...@@ -444,6 +448,9 @@ class Trainer(object): ...@@ -444,6 +448,9 @@ class Trainer(object):
paddle.io.BatchSampler( paddle.io.BatchSampler(
self._eval_dataset, self._eval_dataset,
batch_size=self.cfg.EvalReader['batch_size']) batch_size=self.cfg.EvalReader['batch_size'])
# If metric is VOC, need to be set collate_batch=False.
if self.cfg.metric == 'VOC':
self.cfg['EvalReader']['collate_batch'] = False
self._eval_loader = create('EvalReader')( self._eval_loader = create('EvalReader')(
self._eval_dataset, self._eval_dataset,
self.cfg.worker_num, self.cfg.worker_num,
......
...@@ -19,7 +19,7 @@ from __future__ import print_function ...@@ -19,7 +19,7 @@ from __future__ import print_function
import paddle import paddle
import paddle.nn as nn import paddle.nn as nn
from paddle import ParamAttr from paddle import ParamAttr
from paddle.nn import AdaptiveAvgPool2D, BatchNorm, Conv2D, Dropout, Linear from paddle.nn import AdaptiveAvgPool2D, Conv2D
from paddle.regularizer import L2Decay from paddle.regularizer import L2Decay
from paddle.nn.initializer import KaimingNormal from paddle.nn.initializer import KaimingNormal
...@@ -81,7 +81,7 @@ class ConvBNLayer(nn.Layer): ...@@ -81,7 +81,7 @@ class ConvBNLayer(nn.Layer):
weight_attr=ParamAttr(initializer=KaimingNormal()), weight_attr=ParamAttr(initializer=KaimingNormal()),
bias_attr=False) bias_attr=False)
self.bn = BatchNorm2D( self.bn = nn.BatchNorm2D(
num_filters, num_filters,
weight_attr=ParamAttr(regularizer=L2Decay(0.0)), weight_attr=ParamAttr(regularizer=L2Decay(0.0)),
bias_attr=ParamAttr(regularizer=L2Decay(0.0))) bias_attr=ParamAttr(regularizer=L2Decay(0.0)))
......
...@@ -19,7 +19,8 @@ from __future__ import print_function ...@@ -19,7 +19,8 @@ from __future__ import print_function
import paddle import paddle
import paddle.nn as nn import paddle.nn as nn
from paddle import ParamAttr from paddle import ParamAttr
from paddle.nn import Conv2D, MaxPool2D, AdaptiveAvgPool2D, BatchNorm import paddle.nn.functional as F
from paddle.nn import Conv2D, MaxPool2D, AdaptiveAvgPool2D, BatchNorm2D
from paddle.nn.initializer import KaimingNormal from paddle.nn.initializer import KaimingNormal
from paddle.regularizer import L2Decay from paddle.regularizer import L2Decay
...@@ -55,6 +56,8 @@ class ConvBNLayer(nn.Layer): ...@@ -55,6 +56,8 @@ class ConvBNLayer(nn.Layer):
out_channels, out_channels,
weight_attr=ParamAttr(regularizer=L2Decay(0.0)), weight_attr=ParamAttr(regularizer=L2Decay(0.0)),
bias_attr=ParamAttr(regularizer=L2Decay(0.0))) bias_attr=ParamAttr(regularizer=L2Decay(0.0)))
if act == "hard_swish":
act = 'hardswish'
self.act = act self.act = act
def forward(self, inputs): def forward(self, inputs):
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册