Skip to content

Commit 537b258

Browse files
committed
Add MobileNet v2 and v3 artifact urls
* Add models to PRETRAINED_MODELS to enable acctest * Update pretrained status in README
1 parent 01c6e0d commit 537b258

File tree

6 files changed

+19
-10
lines changed

6 files changed

+19
-10
lines changed

Artifacts.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,23 @@ lazy = true
44

55
[[mobilenet_v2.download]]
66
sha256 = "24d8afb8897cb82825c51e65c7a02f4b2117581294de25ac7fd5222bbc15ae6e"
7-
url = ""
7+
url = "https://huggingface.co/FluxML/mobilenet/resolve/ccf1ffc5bbb4f2d3b9b7fb7e1285e52de337774e/mobilenet_v2-IMAGENET1K_V2.tar.gz"
88

99
[mobilenet_v3_small]
1010
git-tree-sha1 = "9b1f0550051c731056cda7739fcdd115c36c04ad"
1111
lazy = true
1212

1313
[[mobilenet_v3_small.download]]
1414
sha256 = "35b7f6d733bfbd1621349a0ec27391c2714add7ca80006fb4032d8bc66629c97"
15-
url = ""
15+
url = "https://huggingface.co/FluxML/mobilenet/resolve/ccf1ffc5bbb4f2d3b9b7fb7e1285e52de337774e/mobilenet_v3_small-IMAGENET1K_V1.tar.gz"
1616

1717
[mobilenet_v3_large]
1818
git-tree-sha1 = "49971ff8327bc591885e78ff94140ee472f77329"
1919
lazy = true
2020

2121
[[mobilenet_v3_large.download]]
2222
sha256 = "555fcb5f4f6574d77b603b2fc6672ab437ef60a1a20bc2f951122c91aaaf2f69"
23-
url = ""
23+
url = "https://huggingface.co/FluxML/mobilenet/resolve/ccf1ffc5bbb4f2d3b9b7fb7e1285e52de337774e/mobilenet_v3_large-IMAGENET1K_V2.tar.gz"
2424

2525
[resnet101]
2626
git-tree-sha1 = "68d563526ab34d3e5aa66b7d96278d2acde212f9"

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ To contribute new models, see our [contributing docs](https://fluxml.ai/Metalhea
3737
| [InceptionResNet-v2](https://arxiv.org/abs/1602.07261) | [`InceptionResNetv2`](https://fluxml.ai/Metalhead.jl/dev/api/inception/#Metalhead.InceptionResNetv2) | N |
3838
| [MLPMixer](https://arxiv.org/pdf/2105.01601) | [`MLPMixer`](https://fluxml.ai/Metalhead.jl/dev/api/mixers/#Metalhead.MLPMixer) | N |
3939
| [MobileNetv1](https://arxiv.org/abs/1704.04861) | [`MobileNetv1`](https://fluxml.ai/Metalhead.jl/dev/api/mobilenet/#Metalhead.MobileNetv1) | N |
40-
| [MobileNetv2](https://arxiv.org/abs/1801.04381) | [`MobileNetv2`](https://fluxml.ai/Metalhead.jl/dev/api/mobilenet/#Metalhead.MobileNetv2) | N |
41-
| [MobileNetv3](https://arxiv.org/abs/1905.02244) | [`MobileNetv3`](https://fluxml.ai/Metalhead.jl/dev/api/mobilenet/#Metalhead.MobileNetv3) | N |
40+
| [MobileNetv2](https://arxiv.org/abs/1801.04381) | [`MobileNetv2`](https://fluxml.ai/Metalhead.jl/dev/api/mobilenet/#Metalhead.MobileNetv2) | Y |
41+
| [MobileNetv3](https://arxiv.org/abs/1905.02244) | [`MobileNetv3`](https://fluxml.ai/Metalhead.jl/dev/api/mobilenet/#Metalhead.MobileNetv3) | Y |
4242
| [MNASNet](https://arxiv.org/abs/1807.11626) | [`MNASNet`](https://fluxml.ai/Metalhead.jl/dev/api/efficientnet/#Metalhead.MNASNet) | N |
4343
| [ResMLP](https://arxiv.org/abs/2105.03404) | [`ResMLP`](https://fluxml.ai/Metalhead.jl/dev/api/mixers/#Metalhead.ResMLP) | N |
4444
| [ResNet](https://arxiv.org/abs/1512.03385) | [`ResNet`](https://fluxml.ai/Metalhead.jl/dev/api/resnet/#Metalhead.ResNet) | Y |

src/convnets/mobilenets/mobilenetv2.jl

+3
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ function MobileNetv2(width_mult::Real = 1; pretrain::Bool = false,
6969
layers = mobilenetv2(width_mult; inchannels, nclasses)
7070
model = MobileNetv2(layers)
7171
if pretrain
72+
if width_mult != 1.0
73+
throw(ArgumentError("No pre-trained weights available for width_mult=$width_mult."))
74+
end
7275
loadpretrain!(model, "mobilenet_v2")
7376
end
7477
return model

src/convnets/mobilenets/mobilenetv3.jl

+3
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ function MobileNetv3(config::Symbol; width_mult::Real = 1, pretrain::Bool = fals
9090
layers = mobilenetv3(config; width_mult, inchannels, nclasses)
9191
model = MobileNetv3(layers)
9292
if pretrain
93+
if width_mult != 1.0
94+
throw(ArgumentError("No pre-trained weights available for width_mult=$width_mult."))
95+
end
9396
loadpretrain!(model, string("mobilenet_v3_", config))
9497
end
9598
return model

test/convnet_tests.jl

+4-4
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,9 @@ end
307307
m = MobileNetv2(width_mult) |> gpu
308308
@test size(m(x_224)) == (1000, 1)
309309
if (MobileNetv2, width_mult) in PRETRAINED_MODELS
310-
@test acctest(MobileNetv2(; pretrain = true))
310+
@test acctest(MobileNetv2(width_mult; pretrain = true))
311311
else
312-
@test_throws ArgumentError MobileNetv2(pretrain = true)
312+
@test_throws ArgumentError MobileNetv2(width_mult; pretrain = true)
313313
end
314314
@test gradtest(m, x_224)
315315
end
@@ -321,9 +321,9 @@ end
321321
m = MobileNetv3(config; width_mult) |> gpu
322322
@test size(m(x_224)) == (1000, 1)
323323
if (MobileNetv3, config, width_mult) in PRETRAINED_MODELS
324-
@test acctest(MobileNetv3(config; pretrain = true))
324+
@test acctest(MobileNetv3(config; width_mult, pretrain = true))
325325
else
326-
@test_throws ArgumentError MobileNetv3(config; pretrain = true)
326+
@test_throws ArgumentError MobileNetv3(config; width_mult, pretrain = true)
327327
end
328328
@test gradtest(m, x_224)
329329
_gc()

test/model_tests.jl

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@ const PRETRAINED_MODELS = [
2424
# (DenseNet, 161),
2525
# (DenseNet, 169),
2626
# (DenseNet, 201),
27+
(MobileNetv2, 1.0),
28+
(MobileNetv3, :small, 1.0),
29+
(MobileNetv3, :large, 1.0),
2730
(ResNet, 18),
2831
(ResNet, 34),
2932
(ResNet, 50),
@@ -85,4 +88,4 @@ end
8588

8689
const x_224 = rand(Float32, 224, 224, 3, 1) |> gpu
8790
const x_256 = rand(Float32, 256, 256, 3, 1) |> gpu
88-
end
91+
end

0 commit comments

Comments
 (0)