Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
SOLOv2-pytorch
Commits
2f758e90
Commit
2f758e90
authored
Mar 24, 2021
by
Seonho Oh
Browse files
Fix compilation issue on PyTorch > 1.4
parent
0c689aec
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
32 additions
and
32 deletions
+32
-32
mmdet/ops/dcn/src/deform_conv_cuda.cpp
mmdet/ops/dcn/src/deform_conv_cuda.cpp
+21
-21
mmdet/ops/dcn/src/deform_pool_cuda.cpp
mmdet/ops/dcn/src/deform_pool_cuda.cpp
+3
-3
mmdet/ops/masked_conv/src/masked_conv2d_cuda.cpp
mmdet/ops/masked_conv/src/masked_conv2d_cuda.cpp
+2
-2
mmdet/ops/nms/src/nms_cuda.cpp
mmdet/ops/nms/src/nms_cuda.cpp
+1
-1
mmdet/ops/roi_align/src/roi_align_cuda.cpp
mmdet/ops/roi_align/src/roi_align_cuda.cpp
+2
-2
mmdet/ops/roi_pool/src/roi_pool_cuda.cpp
mmdet/ops/roi_pool/src/roi_pool_cuda.cpp
+2
-2
mmdet/ops/sigmoid_focal_loss/src/sigmoid_focal_loss.cpp
mmdet/ops/sigmoid_focal_loss/src/sigmoid_focal_loss.cpp
+1
-1
No files found.
mmdet/ops/dcn/src/deform_conv_cuda.cpp
View file @
2f758e90
...
...
@@ -63,26 +63,26 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
at
::
Tensor
weight
,
int
kH
,
int
kW
,
int
dH
,
int
dW
,
int
padH
,
int
padW
,
int
dilationH
,
int
dilationW
,
int
group
,
int
deformable_group
)
{
A
T_CHECK
(
weight
.
ndimension
()
==
4
,
T
ORCH
_CHECK
(
weight
.
ndimension
()
==
4
,
"4D weight tensor (nOutputPlane,nInputPlane,kH,kW) expected, "
"but got: %s"
,
weight
.
ndimension
());
A
T_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
T
ORCH
_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
A
T_CHECK
(
kW
>
0
&&
kH
>
0
,
T
ORCH
_CHECK
(
kW
>
0
&&
kH
>
0
,
"kernel size should be greater than zero, but got kH: %d kW: %d"
,
kH
,
kW
);
A
T_CHECK
((
weight
.
size
(
2
)
==
kH
&&
weight
.
size
(
3
)
==
kW
),
T
ORCH
_CHECK
((
weight
.
size
(
2
)
==
kH
&&
weight
.
size
(
3
)
==
kW
),
"kernel size should be consistent with weight, "
,
"but got kH: %d kW: %d weight.size(2): %d, weight.size(3): %d"
,
kH
,
kW
,
weight
.
size
(
2
),
weight
.
size
(
3
));
A
T_CHECK
(
dW
>
0
&&
dH
>
0
,
T
ORCH
_CHECK
(
dW
>
0
&&
dH
>
0
,
"stride should be greater than zero, but got dH: %d dW: %d"
,
dH
,
dW
);
A
T_CHECK
(
T
ORCH
_CHECK
(
dilationW
>
0
&&
dilationH
>
0
,
"dilation should be greater than 0, but got dilationH: %d dilationW: %d"
,
dilationH
,
dilationW
);
...
...
@@ -98,7 +98,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
dimw
++
;
}
A
T_CHECK
(
ndim
==
3
||
ndim
==
4
,
"3D or 4D input tensor expected but got: %s"
,
T
ORCH
_CHECK
(
ndim
==
3
||
ndim
==
4
,
"3D or 4D input tensor expected but got: %s"
,
ndim
);
long
nInputPlane
=
weight
.
size
(
1
)
*
group
;
...
...
@@ -110,7 +110,7 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
long
outputWidth
=
(
inputWidth
+
2
*
padW
-
(
dilationW
*
(
kW
-
1
)
+
1
))
/
dW
+
1
;
A
T_CHECK
(
nInputPlane
%
deformable_group
==
0
,
T
ORCH
_CHECK
(
nInputPlane
%
deformable_group
==
0
,
"input channels must divide deformable group size"
);
if
(
outputWidth
<
1
||
outputHeight
<
1
)
...
...
@@ -120,27 +120,27 @@ void shape_check(at::Tensor input, at::Tensor offset, at::Tensor *gradOutput,
nInputPlane
,
inputHeight
,
inputWidth
,
nOutputPlane
,
outputHeight
,
outputWidth
);
A
T_CHECK
(
input
.
size
(
1
)
==
nInputPlane
,
T
ORCH
_CHECK
(
input
.
size
(
1
)
==
nInputPlane
,
"invalid number of input planes, expected: %d, but got: %d"
,
nInputPlane
,
input
.
size
(
1
));
A
T_CHECK
((
inputHeight
>=
kH
&&
inputWidth
>=
kW
),
T
ORCH
_CHECK
((
inputHeight
>=
kH
&&
inputWidth
>=
kW
),
"input image is smaller than kernel"
);
A
T_CHECK
((
offset
.
size
(
2
)
==
outputHeight
&&
offset
.
size
(
3
)
==
outputWidth
),
T
ORCH
_CHECK
((
offset
.
size
(
2
)
==
outputHeight
&&
offset
.
size
(
3
)
==
outputWidth
),
"invalid spatial size of offset, expected height: %d width: %d, but "
"got height: %d width: %d"
,
outputHeight
,
outputWidth
,
offset
.
size
(
2
),
offset
.
size
(
3
));
A
T_CHECK
((
offset
.
size
(
1
)
==
deformable_group
*
2
*
kH
*
kW
),
T
ORCH
_CHECK
((
offset
.
size
(
1
)
==
deformable_group
*
2
*
kH
*
kW
),
"invalid number of channels of offset"
);
if
(
gradOutput
!=
NULL
)
{
A
T_CHECK
(
gradOutput
->
size
(
dimf
)
==
nOutputPlane
,
T
ORCH
_CHECK
(
gradOutput
->
size
(
dimf
)
==
nOutputPlane
,
"invalid number of gradOutput planes, expected: %d, but got: %d"
,
nOutputPlane
,
gradOutput
->
size
(
dimf
));
A
T_CHECK
((
gradOutput
->
size
(
dimh
)
==
outputHeight
&&
T
ORCH
_CHECK
((
gradOutput
->
size
(
dimh
)
==
outputHeight
&&
gradOutput
->
size
(
dimw
)
==
outputWidth
),
"invalid size of gradOutput, expected height: %d width: %d , but "
"got height: %d width: %d"
,
...
...
@@ -191,7 +191,7 @@ int deform_conv_forward_cuda(at::Tensor input, at::Tensor weight,
long
outputHeight
=
(
inputHeight
+
2
*
padH
-
(
dilationH
*
(
kH
-
1
)
+
1
))
/
dH
+
1
;
A
T_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
"invalid batch size of offset"
);
T
ORCH
_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
"invalid batch size of offset"
);
output
=
output
.
view
({
batchSize
/
im2col_step
,
im2col_step
,
nOutputPlane
,
outputHeight
,
outputWidth
});
...
...
@@ -298,7 +298,7 @@ int deform_conv_backward_input_cuda(at::Tensor input, at::Tensor offset,
long
outputHeight
=
(
inputHeight
+
2
*
padH
-
(
dilationH
*
(
kH
-
1
)
+
1
))
/
dH
+
1
;
A
T_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
3
,
"invalid batch size of offset"
);
T
ORCH
_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
3
,
"invalid batch size of offset"
);
gradInput
=
gradInput
.
view
({
batchSize
,
nInputPlane
,
inputHeight
,
inputWidth
});
columns
=
at
::
zeros
(
{
nInputPlane
*
kW
*
kH
,
im2col_step
*
outputHeight
*
outputWidth
},
...
...
@@ -414,7 +414,7 @@ int deform_conv_backward_parameters_cuda(
long
outputHeight
=
(
inputHeight
+
2
*
padH
-
(
dilationH
*
(
kH
-
1
)
+
1
))
/
dH
+
1
;
A
T_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
"invalid batch size of offset"
);
T
ORCH
_CHECK
((
offset
.
size
(
0
)
==
batchSize
),
"invalid batch size of offset"
);
columns
=
at
::
zeros
(
{
nInputPlane
*
kW
*
kH
,
im2col_step
*
outputHeight
*
outputWidth
},
...
...
@@ -494,8 +494,8 @@ void modulated_deform_conv_cuda_forward(
const
int
pad_h
,
const
int
pad_w
,
const
int
dilation_h
,
const
int
dilation_w
,
const
int
group
,
const
int
deformable_group
,
const
bool
with_bias
)
{
A
T_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
A
T_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
T
ORCH
_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
T
ORCH
_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
at
::
DeviceGuard
guard
(
input
.
device
());
const
int
batch
=
input
.
size
(
0
);
...
...
@@ -576,8 +576,8 @@ void modulated_deform_conv_cuda_backward(
int
kernel_h
,
int
kernel_w
,
int
stride_h
,
int
stride_w
,
int
pad_h
,
int
pad_w
,
int
dilation_h
,
int
dilation_w
,
int
group
,
int
deformable_group
,
const
bool
with_bias
)
{
A
T_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
A
T_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
T
ORCH
_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
T
ORCH
_CHECK
(
weight
.
is_contiguous
(),
"weight tensor has to be contiguous"
);
at
::
DeviceGuard
guard
(
input
.
device
());
const
int
batch
=
input
.
size
(
0
);
...
...
mmdet/ops/dcn/src/deform_pool_cuda.cpp
View file @
2f758e90
...
...
@@ -33,7 +33,7 @@ void deform_psroi_pooling_cuda_forward(
at
::
Tensor
top_count
,
const
int
no_trans
,
const
float
spatial_scale
,
const
int
output_dim
,
const
int
group_size
,
const
int
pooled_size
,
const
int
part_size
,
const
int
sample_per_part
,
const
float
trans_std
)
{
A
T_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
T
ORCH
_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
at
::
DeviceGuard
guard
(
input
.
device
());
const
int
batch
=
input
.
size
(
0
);
...
...
@@ -59,8 +59,8 @@ void deform_psroi_pooling_cuda_backward(
const
int
no_trans
,
const
float
spatial_scale
,
const
int
output_dim
,
const
int
group_size
,
const
int
pooled_size
,
const
int
part_size
,
const
int
sample_per_part
,
const
float
trans_std
)
{
A
T_CHECK
(
out_grad
.
is_contiguous
(),
"out_grad tensor has to be contiguous"
);
A
T_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
T
ORCH
_CHECK
(
out_grad
.
is_contiguous
(),
"out_grad tensor has to be contiguous"
);
T
ORCH
_CHECK
(
input
.
is_contiguous
(),
"input tensor has to be contiguous"
);
at
::
DeviceGuard
guard
(
input
.
device
());
const
int
batch
=
input
.
size
(
0
);
...
...
mmdet/ops/masked_conv/src/masked_conv2d_cuda.cpp
View file @
2f758e90
...
...
@@ -17,9 +17,9 @@ int MaskedCol2imForwardLaucher(const at::Tensor col, const int height,
const
at
::
Tensor
mask_w_idx
,
const
int
mask_cnt
,
at
::
Tensor
im
);
#define CHECK_CUDA(x)
A
T_CHECK(x.
type().
is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CUDA(x) T
ORCH
_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \
A
T_CHECK(x.is_contiguous(), #x, " must be contiguous ")
T
ORCH
_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \
CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x)
...
...
mmdet/ops/nms/src/nms_cuda.cpp
View file @
2f758e90
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
#include <torch/extension.h>
#define CHECK_CUDA(x)
A
T_CHECK(x.
type().
is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CUDA(x) T
ORCH
_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
at
::
Tensor
nms_cuda
(
const
at
::
Tensor
boxes
,
float
nms_overlap_thresh
);
...
...
mmdet/ops/roi_align/src/roi_align_cuda.cpp
View file @
2f758e90
...
...
@@ -19,9 +19,9 @@ int ROIAlignBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois,
const
int
pooled_height
,
const
int
pooled_width
,
at
::
Tensor
bottom_grad
);
#define CHECK_CUDA(x)
A
T_CHECK(x.
type().
is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CUDA(x) T
ORCH
_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \
A
T_CHECK(x.is_contiguous(), #x, " must be contiguous ")
T
ORCH
_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \
CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x)
...
...
mmdet/ops/roi_pool/src/roi_pool_cuda.cpp
View file @
2f758e90
...
...
@@ -16,9 +16,9 @@ int ROIPoolBackwardLaucher(const at::Tensor top_grad, const at::Tensor rois,
const
int
num_rois
,
const
int
pooled_h
,
const
int
pooled_w
,
at
::
Tensor
bottom_grad
);
#define CHECK_CUDA(x)
A
T_CHECK(x.
type().
is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CUDA(x) T
ORCH
_CHECK(x.is_cuda(), #x, " must be a CUDAtensor ")
#define CHECK_CONTIGUOUS(x) \
A
T_CHECK(x.is_contiguous(), #x, " must be contiguous ")
T
ORCH
_CHECK(x.is_contiguous(), #x, " must be contiguous ")
#define CHECK_INPUT(x) \
CHECK_CUDA(x); \
CHECK_CONTIGUOUS(x)
...
...
mmdet/ops/sigmoid_focal_loss/src/sigmoid_focal_loss.cpp
View file @
2f758e90
...
...
@@ -30,7 +30,7 @@ at::Tensor SigmoidFocalLoss_backward(const at::Tensor &logits,
const
at
::
Tensor
&
d_losses
,
const
int
num_classes
,
const
float
gamma
,
const
float
alpha
)
{
if
(
logits
.
type
().
is_cuda
())
{
if
(
logits
.
is_cuda
())
{
return
SigmoidFocalLoss_backward_cuda
(
logits
,
targets
,
d_losses
,
num_classes
,
gamma
,
alpha
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment