Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

[OP] 3d conv + 3d pool #2585

Merged
merged 11 commits into from
Jul 8, 2016
Merged

[OP] 3d conv + 3d pool #2585

merged 11 commits into from
Jul 8, 2016

Conversation

antinucleon
Copy link
Contributor

@antinucleon antinucleon commented Jun 30, 2016

Important changes:

  • Pooling shape: Need to manually change pooling pad to work with old inception models (done).
  • C++11 flags: Break support of CUDA 7.0, 6.5

@antinucleon antinucleon changed the title [WIP] 3d conv + 3d pool 3d conv + 3d pool Jun 30, 2016
@antinucleon antinucleon changed the title 3d conv + 3d pool [OP] 3d conv + 3d pool Jun 30, 2016
@piiswrong
Copy link
Contributor

breaking all previous models seems really bad...

@antinucleon
Copy link
Contributor Author

Only break Inception family. I have fixed symbols and pretrained model.

@piiswrong
Copy link
Contributor

does it affect vgg?

@antinucleon
Copy link
Contributor Author

I think vgg is ok

@antinucleon
Copy link
Contributor Author

@tqchen @piiswrong please check this. If it is ok we can merge this first because it fix travis.

@@ -17,7 +17,7 @@ def DownsampleFactory(data, ch_3x3, mirror_attr):
# conv 3x3
conv = ConvFactory(data=data, kernel=(3, 3), stride=(2, 2), num_filter=ch_3x3, pad=(1, 1), mirror_attr=mirror_attr)
# pool
pool = mx.symbol.Pooling(data=data, kernel=(3, 3), stride=(2, 2), pool_type='max', attr=mirror_attr)
pool = mx.symbol.Pooling(data=data, kernel=(3, 3), stride=(2, 2), pad=(1, 1), pool_type='max', attr=mirror_attr)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about inception v3?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

V3 is OK

@tqchen
Copy link
Member

tqchen commented Jul 5, 2016

what is the status on this PR?

@antinucleon
Copy link
Contributor Author

Will do pairtest with Torch today

@tqchen
Copy link
Member

tqchen commented Jul 6, 2016

please let me know if it is ready to merg

@piiswrong
Copy link
Contributor

@tqchen looks like dmlc/any.h broke windows build

@tqchen
Copy link
Member

tqchen commented Jul 7, 2016

will push a fix

@antinucleon
Copy link
Contributor Author

I am working on CUDNN tuning. Will be finished very soon.

@antinucleon
Copy link
Contributor Author

antinucleon commented Jul 7, 2016

@piiswrong @tqchen It is done. There is a possible refactor, but I think we can refactor it after we fix deepmark

@@ -11,6 +11,7 @@
namespace mxnet {
namespace op {
#if MXNET_USE_CUDNN == 1
// TODO(xxx): Refactor with Init CuDNN function, remove redandent code in initalization
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did this intentionally so that it would be easier to isolate this into it's own tune class

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But many initialization code are exactly same, this part should be refactored.

@tqchen
Copy link
Member

tqchen commented Jul 8, 2016

@antinucleon I have updated dmlc-core so that any should be compatible with windows build

@tqchen
Copy link
Member

tqchen commented Jul 8, 2016

any updates?

@antinucleon
Copy link
Contributor Author

Wait me 1 hour,
On Fri, Jul 8, 2016 at 10:49 Tianqi Chen [email protected] wrote:

any updates?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#2585 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/ABM13vRAd8Yx-313y7egViruPunq_tDRks5qTo2TgaJpZM4JCfHe
.

Sent from mobile phone

@antinucleon
Copy link
Contributor Author

@tqchen If it is OK, merge it then I will update pretrained model

@antinucleon antinucleon merged commit 5532511 into apache:master Jul 8, 2016
oshape[2] = 1;
oshape[3] = 1;
} else {
oshape[2] = 1 + (dshape[2] + 2 * param_.pad[0] - param_.kernel[0]) / param_.stride[0];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, I got some problem when testing old code with new pooling interface as the datatype used here is unsigned int. Maybe we need some more fool proof stuff here. This issue can be fixed if I claim it as global_pool.

  • given input shape of 6 and kernel size 7. it can exit with alert of "kernel size exceed input".
  • given input shape of 6 and kernel size 8, you can sneak through this check with 4294967296(max value of unsigned int).

@Lorrainexun
Copy link

It still cant work well with inception-BN model. COULD anyone fix this? It really cause me headache... Thanks a lot!

@antinucleon
Copy link
Contributor Author

@Lorrainexun I have fixed the pretrained model symbol. It is because change of pooling shape.

@WesleyZhang1991
Copy link

Hi,all. I compiled the latest mxnet with cudnn 5 and thus can use 3D conv. The vgg and alexnet in deepmark are ok. However, when I try to run c3d.py I met a problem:

mxnet.base.MXNetError: Error in operator pooling4: [11:50:48] src/operator/./pooling-inl.h:232: Check failed: param_.kernel[0] < dshape[2] + 2 * param_.pad[
0] (2 vs. 2) kernel size exceeds input

This can be seen whenever I want to collapse the last two frames into one in other C3D models.
Any suggestions? Thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants