How to get features of shufflenetV2?

No_Yeah: <p>Unlike other networks, it doesn`t have feautres or layers</p>
<p>like</p>
<p>len(model.features())</p>
<p>I tried model.chirldren() but not worked</p>
<p>any other good ideas?</p>
<p>the below is shufflenetV2 structure</p>
<p>[ShuffleNetV2(<br>
(conv1): Sequential(<br>
(0): Conv2d(3, 24, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)<br>
(1): BatchNorm2d(24, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
)<br>
(maxpool): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)<br>
(stage2): Sequential(<br>
(0): InvertedResidual(<br>
(branch1): Sequential(<br>
(0): Conv2d(24, 24, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=24, bias=False)<br>
(1): BatchNorm2d(24, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): Conv2d(24, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(3): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(4): ReLU(inplace=True)<br>
)<br>
(branch2): Sequential(<br>
(0): Conv2d(24, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(58, 58, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=58, bias=False)<br>
(4): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(1): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(58, 58, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=58, bias=False)<br>
(4): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(2): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(58, 58, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=58, bias=False)<br>
(4): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(3): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(58, 58, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=58, bias=False)<br>
(4): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(58, 58, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(58, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
)<br>
(stage3): Sequential(<br>
(0): InvertedResidual(<br>
(branch1): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=116, bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(3): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(4): ReLU(inplace=True)<br>
)<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(1): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(2): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(3): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(4): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(5): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(6): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(7): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(116, 116, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=116, bias=False)<br>
(4): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(116, 116, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(116, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
)<br>
(stage4): Sequential(<br>
(0): InvertedResidual(<br>
(branch1): Sequential(<br>
(0): Conv2d(232, 232, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=232, bias=False)<br>
(1): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(3): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(4): ReLU(inplace=True)<br>
)<br>
(branch2): Sequential(<br>
(0): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(232, 232, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=232, bias=False)<br>
(4): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(1): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(232, 232, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=232, bias=False)<br>
(4): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(2): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(232, 232, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=232, bias=False)<br>
(4): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
(3): InvertedResidual(<br>
(branch1): Sequential()<br>
(branch2): Sequential(<br>
(0): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
(3): Conv2d(232, 232, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=232, bias=False)<br>
(4): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(5): Conv2d(232, 232, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(6): BatchNorm2d(232, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(7): ReLU(inplace=True)<br>
)<br>
)<br>
)<br>
(conv5): Sequential(<br>
(0): Conv2d(464, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)<br>
(1): BatchNorm2d(1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)<br>
(2): ReLU(inplace=True)<br>
)<br>
(fc): Linear(in_features=1024, out_features=1000, bias=True)<br>
)]</p>