MCPcopy Create free account
hub / github.com/tensorpack/tensorpack / Model

Class Model

examples/Saliency/CAM-resnet.py:27–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25
26
27class Model(ImageNetModel):
28
29 def get_logits(self, image):
30 cfg = {
31 18: ([2, 2, 2, 2], preresnet_basicblock),
32 34: ([3, 4, 6, 3], preresnet_basicblock),
33 }
34 defs, block_func = cfg[DEPTH]
35
36 with argscope(Conv2D, use_bias=False,
37 kernel_initializer=tf.variance_scaling_initializer(scale=2.0, mode='fan_out')), \
38 argscope([Conv2D, MaxPooling, GlobalAvgPooling, BatchNorm], data_format='channels_first'):
39 convmaps = (LinearWrap(image)
40 .Conv2D('conv0', 64, 7, strides=2, activation=BNReLU)
41 .MaxPooling('pool0', 3, strides=2, padding='SAME')
42 .apply2(preresnet_group, 'group0', block_func, 64, defs[0], 1)
43 .apply2(preresnet_group, 'group1', block_func, 128, defs[1], 2)
44 .apply2(preresnet_group, 'group2', block_func, 256, defs[2], 2)
45 .apply2(preresnet_group, 'group3new', block_func, 512, defs[3], 1)())
46 print(convmaps)
47 convmaps = GlobalAvgPooling('gap', convmaps)
48 logits = FullyConnected('linearnew', convmaps, 1000)
49 return logits
50
51 def optimizer(self):
52 lr = tf.get_variable('learning_rate', initializer=0.1, trainable=False)
53 opt = tf.train.MomentumOptimizer(lr, 0.9, use_nesterov=True)
54 gradprocs = [gradproc.ScaleGradient(
55 [('conv0.*', 0.1), ('group[0-2].*', 0.1)])]
56 return optimizer.apply_grad_processors(opt, gradprocs)
57
58
59def get_data(train_or_test):

Callers 2

get_configFunction · 0.70
viz_camFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…