Skip to content

Commit ff264cb

Browse files
authored
Merge pull request #152 from theabhirath/tests
2 parents cab706e + 10903bf commit ff264cb

File tree

5 files changed

+86
-51
lines changed

5 files changed

+86
-51
lines changed

.github/workflows/CI.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
os:
2323
- ubuntu-latest
2424
- macOS-latest
25-
- windows-latest
25+
# - windows-latest
2626
arch:
2727
- x64
2828
steps:
@@ -43,6 +43,8 @@ jobs:
4343
${{ runner.os }}-
4444
- uses: julia-actions/julia-buildpkg@v1
4545
- uses: julia-actions/julia-runtest@v1
46+
with:
47+
coverage: ${{ matrix.version == '1' && matrix.os == 'ubuntu-latest' }}
4648
- uses: julia-actions/julia-processcoverage@v1
4749
if: matrix.version == '1' && matrix.os == 'ubuntu-latest'
4850
- uses: codecov/codecov-action@v2

test/convnets.jl

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,177 +6,201 @@ PRETRAINED_MODELS = []
66

77
@testset "AlexNet" begin
88
model = AlexNet()
9-
@test size(model(rand(Float32, 256, 256, 3, 1))) == (1000, 1)
9+
@test size(model(x_256)) == (1000, 1)
1010
@test_throws ArgumentError AlexNet(pretrain = true)
11-
@test_skip gradtest(model, rand(Float32, 256, 256, 3, 1))
11+
@test gradtest(model, x_256)
1212
end
1313

14+
GC.safepoint()
1415
GC.gc()
1516

1617
@testset "VGG" begin
1718
@testset "VGG($sz, batchnorm=$bn)" for sz in [11, 13, 16, 19], bn in [true, false]
1819
m = VGG(sz, batchnorm = bn)
1920

20-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
21+
@test size(m(x_224)) == (1000, 1)
2122
if (VGG, sz, bn) in PRETRAINED_MODELS
2223
@test (VGG(sz, batchnorm = bn, pretrain = true); true)
2324
else
2425
@test_throws ArgumentError VGG(sz, batchnorm = bn, pretrain = true)
2526
end
26-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
27+
@test gradtest(m, x_224)
28+
GC.safepoint()
29+
GC.gc()
2730
end
2831
end
2932

33+
GC.safepoint()
3034
GC.gc()
3135

3236
@testset "ResNet" begin
3337
@testset "ResNet($sz)" for sz in [18, 34, 50, 101, 152]
3438
m = ResNet(sz)
3539

36-
@test size(m(rand(Float32, 256, 256, 3, 1))) == (1000, 1)
40+
@test size(m(x_256)) == (1000, 1)
3741
if (ResNet, sz) in PRETRAINED_MODELS
3842
@test (ResNet(sz, pretrain = true); true)
3943
else
4044
@test_throws ArgumentError ResNet(sz, pretrain = true)
4145
end
42-
@test_skip gradtest(m, rand(Float32, 256, 256, 3, 2))
46+
@test gradtest(m, x_256)
47+
GC.safepoint()
48+
GC.gc()
4349
end
4450

4551
@testset "Shortcut C" begin
4652
m = Metalhead.resnet(Metalhead.basicblock, :C;
4753
channel_config = [1, 1],
4854
block_config = [2, 2, 2, 2])
4955

50-
@test size(m(rand(Float32, 256, 256, 3, 1))) == (1000, 1)
56+
@test size(m(x_256)) == (1000, 1)
57+
@test gradtest(m, x_256)
5158
end
5259
end
5360

61+
GC.safepoint()
5462
GC.gc()
5563

5664
@testset "ResNeXt" begin
5765
@testset for depth in [50, 101, 152]
5866
m = ResNeXt(depth)
5967

60-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
68+
@test size(m(x_224)) == (1000, 1)
6169
if ResNeXt in PRETRAINED_MODELS
6270
@test (ResNeXt(depth, pretrain = true); true)
6371
else
6472
@test_throws ArgumentError ResNeXt(depth, pretrain = true)
6573
end
66-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 2))
74+
@test gradtest(m, x_224)
75+
GC.safepoint()
76+
GC.gc()
6777
end
6878
end
6979

80+
GC.safepoint()
7081
GC.gc()
7182

7283
@testset "GoogLeNet" begin
7384
m = GoogLeNet()
74-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
85+
@test size(m(x_224)) == (1000, 1)
7586
@test_throws ArgumentError (GoogLeNet(pretrain = true); true)
76-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
87+
@test gradtest(m, x_224)
7788
end
7889

90+
GC.safepoint()
7991
GC.gc()
8092

8193
@testset "Inception3" begin
8294
m = Inception3()
83-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
95+
@test size(m(x_224)) == (1000, 1)
8496
@test_throws ArgumentError Inception3(pretrain = true)
85-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 2))
97+
@test gradtest(m, x_224)
8698
end
8799

100+
GC.safepoint()
88101
GC.gc()
89102

90103
@testset "SqueezeNet" begin
91104
m = SqueezeNet()
92-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
105+
@test size(m(x_224)) == (1000, 1)
93106
@test_throws ArgumentError (SqueezeNet(pretrain = true); true)
94-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
107+
@test gradtest(m, x_224)
95108
end
96109

110+
GC.safepoint()
97111
GC.gc()
98112

99113
@testset "DenseNet" begin
100114
@testset for sz in [121, 161, 169, 201]
101115
m = DenseNet(sz)
102116

103-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
117+
@test size(m(x_224)) == (1000, 1)
104118
if (DenseNet, sz) in PRETRAINED_MODELS
105119
@test (DenseNet(sz, pretrain = true); true)
106120
else
107121
@test_throws ArgumentError DenseNet(sz, pretrain = true)
108122
end
109-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
123+
@test gradtest(m, x_224)
124+
GC.safepoint()
125+
GC.gc()
110126
end
111127
end
112128

129+
GC.safepoint()
113130
GC.gc()
114131

115132
@testset "MobileNet" verbose = true begin
116133
@testset "MobileNetv1" begin
117134
m = MobileNetv1()
118135

119-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
136+
@test size(m(x_224)) == (1000, 1)
120137
if MobileNetv1 in PRETRAINED_MODELS
121138
@test (MobileNetv1(pretrain = true); true)
122139
else
123140
@test_throws ArgumentError MobileNetv1(pretrain = true)
124141
end
125-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
142+
@test gradtest(m, x_224)
126143
end
127144

145+
GC.safepoint()
128146
GC.gc()
129147

130148
@testset "MobileNetv2" begin
131149
m = MobileNetv2()
132150

133-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
151+
@test size(m(x_224)) == (1000, 1)
134152
if MobileNetv2 in PRETRAINED_MODELS
135153
@test (MobileNetv2(pretrain = true); true)
136154
else
137155
@test_throws ArgumentError MobileNetv2(pretrain = true)
138156
end
139-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
157+
@test gradtest(m, x_224)
140158
end
141159

160+
GC.safepoint()
142161
GC.gc()
143162

144163
@testset "MobileNetv3" verbose = true begin
145164
@testset for mode in [:small, :large]
146165
m = MobileNetv3(mode)
147166

148-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
167+
@test size(m(x_224)) == (1000, 1)
149168
if MobileNetv3 in PRETRAINED_MODELS
150169
@test (MobileNetv3(mode; pretrain = true); true)
151170
else
152171
@test_throws ArgumentError MobileNetv3(mode; pretrain = true)
153172
end
154-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
173+
@test gradtest(m, x_224)
155174
end
156175
end
157176
end
158177

178+
GC.safepoint()
159179
GC.gc()
160180

161181
@testset "ConvNeXt" verbose = true begin
162-
@testset for mode in [:tiny, :small, :base, :large] #, :xlarge]
163-
@testset for drop_path_rate in [0.0, 0.5, 0.99]
182+
@testset for mode in [:small, :base, :large] # :tiny, #, :xlarge]
183+
@testset for drop_path_rate in [0.0, 0.5]
164184
m = ConvNeXt(mode; drop_path_rate)
165185

166-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
167-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
186+
@test size(m(x_224)) == (1000, 1)
187+
@test gradtest(m, x_224)
188+
GC.safepoint()
189+
GC.gc()
168190
end
169-
GC.gc()
170191
end
171192
end
172193

194+
GC.safepoint()
173195
GC.gc()
174196

175197
@testset "ConvMixer" verbose = true begin
176-
@testset for mode in [:base, :large, :small]
198+
@testset for mode in [:small, :base, :large]
177199
m = ConvMixer(mode)
178200

179-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
180-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
201+
@test size(m(x_224)) == (1000, 1)
202+
@test gradtest(m, x_224)
203+
GC.safepoint()
204+
GC.gc()
181205
end
182206
end

test/other.jl

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,37 @@ using Metalhead, Test
22
using Flux
33

44
@testset "MLPMixer" begin
5-
@testset for mode in [:small, :base, :large, :huge]
6-
@testset for drop_path_rate in [0.0, 0.5, 0.99]
5+
@testset for mode in [:small, :base, :large] # :huge]
6+
@testset for drop_path_rate in [0.0, 0.5]
77
m = MLPMixer(mode; drop_path_rate)
8-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
9-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
8+
@test size(m(x_224)) == (1000, 1)
9+
@test gradtest(m, x_224)
10+
GC.safepoint()
11+
GC.gc()
1012
end
11-
GC.gc()
1213
end
1314
end
1415

1516
@testset "ResMLP" begin
16-
@testset for mode in [:small, :base, :large, :huge]
17-
@testset for drop_path_rate in [0.0, 0.5, 0.99]
17+
@testset for mode in [:small, :base, :large] # :huge]
18+
@testset for drop_path_rate in [0.0, 0.5]
1819
m = ResMLP(mode; drop_path_rate)
19-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
20-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
20+
@test size(m(x_224)) == (1000, 1)
21+
@test gradtest(m, x_224)
22+
GC.safepoint()
23+
GC.gc()
2124
end
22-
GC.gc()
2325
end
2426
end
2527

2628
@testset "gMLP" begin
27-
@testset for mode in [:small, :base, :large, :huge]
28-
@testset for drop_path_rate in [0.0, 0.5, 0.99]
29+
@testset for mode in [:small, :base, :large] # :huge]
30+
@testset for drop_path_rate in [0.0, 0.5]
2931
m = gMLP(mode; drop_path_rate)
30-
@test size(m(rand(Float32, 224, 224, 3, 1))) == (1000, 1)
31-
@test_skip gradtest(m, rand(Float32, 224, 224, 3, 1))
32+
@test size(m(x_224)) == (1000, 1)
33+
@test gradtest(m, x_224)
34+
GC.safepoint()
35+
GC.gc()
3236
end
33-
GC.gc()
3437
end
3538
end

test/runtests.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,23 @@ function gradtest(model, input)
1010
return true
1111
end
1212

13+
x_224 = rand(Float32, 224, 224, 3, 1)
14+
x_256 = rand(Float32, 256, 256, 3, 1)
15+
1316
# CNN tests
1417
@testset verbose = true "ConvNets" begin
1518
include("convnets.jl")
1619
end
1720

21+
GC.safepoint()
1822
GC.gc()
1923

2024
# Other tests
2125
@testset verbose = true "Other" begin
2226
include("other.jl")
2327
end
2428

29+
GC.safepoint()
2530
GC.gc()
2631

2732
# ViT tests

test/vit-based.jl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ using Metalhead, Test
22
using Flux
33

44
@testset "ViT" begin
5-
for mode in [:tiny, :small, :base, :large] #,:huge, :giant, :gigantic]
5+
for mode in [:small, :base, :large] # :tiny, #,:huge, :giant, :gigantic]
66
m = ViT(mode)
7-
@test size(m(rand(Float32, 256, 256, 3, 1))) == (1000, 1)
8-
@test_skip gradtest(m, rand(Float32, 256, 256, 3, 1))
7+
@test size(m(x_256)) == (1000, 1)
8+
@test gradtest(m, x_256)
9+
GC.safepoint()
10+
GC.gc()
911
end
10-
GC.gc()
1112
end

0 commit comments

Comments
 (0)