-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpretrained.py
More file actions
86 lines (52 loc) · 1.81 KB
/
pretrained.py
File metadata and controls
86 lines (52 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import h5py
import mxnet as mx
import numpy as np
vgg16 = dict()
vgg16['layer_29'] = 'conv5_3'
vgg16['layer_27'] = 'conv5_2'
vgg16['layer_25'] = 'conv5_1'
vgg16['layer_22'] = 'conv4_3'
vgg16['layer_20'] = 'conv4_2'
vgg16['layer_18'] = 'conv4_1'
vgg16['layer_15'] = 'conv3_3'
vgg16['layer_13'] = 'conv3_2'
vgg16['layer_11'] = 'conv3_1'
vgg16['layer_8'] = 'conv2_2'
vgg16['layer_6'] = 'conv2_1'
vgg16['layer_3'] = 'conv1_2'
vgg16['layer_1'] = 'conv1_1'
vgg19 = dict()
vgg19['layer_1'] = 'conv1_1'
vgg19['layer_3'] = 'conv1_2'
vgg19['layer_6'] = 'conv2_1'
vgg19['layer_8'] = 'conv2_2'
vgg19['layer_11'] = 'conv3_1'
vgg19['layer_13'] = 'conv3_2'
vgg19['layer_15'] = 'conv3_3'
vgg19['layer_17'] = 'conv3_4'
vgg19['layer_20'] = 'conv4_1'
vgg19['layer_22'] = 'conv4_2'
vgg19['layer_24'] = 'conv4_3'
vgg19['layer_26'] = 'conv4_4'
vgg19['layer_29'] = 'conv5_1'
vgg19['layer_31'] = 'conv5_2'
vgg19['layer_33'] = 'conv5_3'
vgg19['layer_35'] = 'conv5_4'
def load_keras_pretrained(pretrained, args, ctx, model):
vgg = vgg19 if model == 'vgg19' else vgg16
grad = dict()
with h5py.File(pretrained) as f:
for k in vgg.keys():
args['w' + vgg[k]] = mx.nd.array(np.array(f[k]['param_0']), ctx)
args['b' + vgg[k]] = mx.nd.array(np.array(f[k]['param_1']), ctx)
grad['w' + vgg[k]] = mx.nd.zeros_like(data = args['w' + vgg[k]])
grad['b' + vgg[k]] = mx.nd.zeros_like(data = args['b' + vgg[k]])
return args, grad
def load_mat_pretrained(pretrained, args, ctx):
import scipy.io as io
mat = io.loadmat(pretrained)
if __name__ == '__main__':
weight_args = dict()
bias_args = dict()
#load_pretrained('vgg16_weights.h5', weight_args, bias_args, mx.gpu())
load_mat_pretrained('imagenet-vgg-verydeep-19.mat', weight_args, mx.gpu())