Merge branch 'master' of https://github.com/wang-xinyu/tensorrtx
This commit is contained in:
commit
1f73c63ef3
@ -30,8 +30,9 @@ Following models are implemented, each one also has a readme inside.
|
||||
|[googlenet](./googlenet)| GoogLeNet (Inception v1) |
|
||||
|[inception](./inceptionv3)| Inception v3 |
|
||||
|[mnasnet](./mnasnet)| MNASNet with depth multiplier of 0.5 from the paper |
|
||||
|[mobilenet](./mobilenetv2)| MobileNet V2 |
|
||||
|[mobilenet](./mobilenetv2)| MobileNet V2, V3-small, V3-large. |
|
||||
|[resnet](./resnet)| resnet-18, resnet-50 and resnext50-32x4d are implemented |
|
||||
|[senet](./senet)| se_resnet50 |
|
||||
|[shufflenet](./shufflenetv2)| ShuffleNetV2 with 0.5x output channels |
|
||||
|[squeezenet](./squeezenet)| SqueezeNet 1.1 model |
|
||||
|[vgg](./vgg)| VGG 11-layer model |
|
||||
@ -53,4 +54,5 @@ Some tricky operations encountered in these models, already solved, but might ha
|
||||
|leaky relu| I wrote a leaky relu plugin, but PRelu in `NvInferPlugin.h` can be used, see yolov3. |
|
||||
|yolo layer| yolo layer is implemented as a plugin, see yolov3. |
|
||||
|upsample| replaced by a deconvolution layer, see yolov3. |
|
||||
|hsigmoid| hard sigmoid is implemented as a plugin, hsigmoid and hswish are used in mobilenetv3 |
|
||||
|
||||
|
||||
@ -1,23 +1,20 @@
|
||||
# mobilenet v2
|
||||
# SENet
|
||||
|
||||
MobileNetV2 architecture from
|
||||
"MobileNetV2: Inverted Residuals and Linear Bottlenecks" <https://arxiv.org/abs/1801.04381>.
|
||||
An implementation of SENet, proposed in Squeeze-and-Excitation Networks by Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu
|
||||
|
||||
For the Pytorch implementation, you can refer to [pytorchx/mobilenet](https://github.com/wang-xinyu/pytorchx/tree/master/mobilenet)
|
||||
[https://arxiv.org/abs/1709.01507](https://arxiv.org/abs/1709.01507)
|
||||
|
||||
Following tricks are used in this mobilenet,
|
||||
For the Pytorch implementation, you can refer to [wang-xinyu/senet.pytorch](https://github.com/wang-xinyu/senet.pytorch).
|
||||
|
||||
- Relu6 is used in mobilenet v2. We use `Relu6(x) = Relu(x) - Relu(x-6)` in tensorrt.
|
||||
- Batchnorm layer, implemented by scale layer.
|
||||
|
||||
```
|
||||
// 1. generate mobilenet.wts from [pytorchx/mobilenet](https://github.com/wang-xinyu/pytorchx/tree/master/mobilenet)
|
||||
// 1. generate se_resnet50.wts from [wang-xinyu/senet.pytorch](https://github.com/wang-xinyu/senet.pytorch)
|
||||
|
||||
// 2. put mobilenet.wts into tensorrtx/mobilenet
|
||||
// 2. put se_resnet50.wts into tensorrtx/senet
|
||||
|
||||
// 3. build and run
|
||||
|
||||
cd tensorrtx/mobilenet
|
||||
cd tensorrtx/senet
|
||||
|
||||
mkdir build
|
||||
|
||||
@ -27,11 +24,10 @@ cmake ..
|
||||
|
||||
make
|
||||
|
||||
sudo ./mobilenet -s // serialize model to plan file i.e. 'mobilenet.engine'
|
||||
sudo ./se_resnet -s // serialize model to plan file i.e. 'se_resnet50.engine'
|
||||
|
||||
sudo ./mobilenet -d // deserialize plan file and run inference
|
||||
sudo ./se_resnet -d // deserialize plan file and run inference
|
||||
|
||||
// 4. see if the output is same as pytorchx/mobilenet
|
||||
// 4. see if the output is same as [wang-xinyu/senet.pytorch]
|
||||
```
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user