Open
Description
// DCNv2.cu
for (int ibatch = 0; ibatch < data.num_; ++ibatch) {
_T* maskWorkspacePtr = (_T*)workspace + (maskSize + im2colSize) * ibatch;
_T* im2colWorkspacePtr = (_T*)workspace + (maskSize + im2colSize) * ibatch + maskSize;
// 比如我这里的input的是(1,128,175175),om是(1,27,88,88),这里的inputMask指向的是om的(1,18,88,88)后面的9个维度的指针吗?那这里的maskSize不是与inputMask的大小不一样吗?maskSize的大小是127*127*3*3,不太懂这里的sigmod,这里的maskSize不是应该是9*88*88来表示吗?
_T* inputMask = om.ptr<_T>(ibatch, om.channel_ / 3 * 2);
ExecuteKernel(maskSize, sigmoidKernel, stream)(inputMask, maskWorkspacePtr, maskSize);
_T* datainput = data.ptr<_T>(ibatch);
_T* offset = om.ptr<_T>(ibatch);
ExecuteKernel(im2colSize, DCNIm2colKernel, stream)(
datainput, offset, maskWorkspacePtr, data.height_, data.width_, kernel_size, kernel_size, 1, 1, 1, 1, 1, 1, data.channel_, data.num_, data.channel_, deformable_group,
out.height_, out.width_, im2colWorkspacePtr, im2colSize);
Metadata
Metadata
Assignees
Labels
No labels
Activity