def build_nin_model(self):
# input features
self.x = tf.placeholder(tf.float32, shape=[None, self.input_height, self.input_width, self.input_channels],
name='input_layer')
self.y = tf.placeholder(tf.float32, [None, self.num_classes], name='output_layer')
# learning_rate placeholder
self.learning_rate = tf.placeholder(tf.float32, name='learning_rate')
# dropout layer: keep probability, vgg default value:0.5
self.keep_prob = tf.placeholder(tf.float32, name='keep_prob')
print('x:' + str(self.x.get_shape().as_list()))
self.nin_lay_1 = self.mlp_conv(self.x, kernel_size=11, stride=2, num_filters=96,
micro_layer_size=[96, 96], name='nin_lay_1')
# add dropout
dropout = slim.dropout(self.nin_lay_1, keep_prob=self.keep_prob)
self.maxpooling_1 = slim.max_pool2d(dropout, kernel_size=3, stride=2, padding='SAME')
print('maxpooling_1:' + str(self.maxpooling_1.get_shape().as_list()))
self.nin_lay_2 = self.mlp_conv(self.maxpooling_1, kernel_size=5, stride=1, num_filters=256,
micro_layer_size=[256, 256], name='nin_lay_2')
# add dropout
dropout = slim.dropout(self.nin_lay_2, keep_prob=self.keep_prob)
self.maxpooling_2 = slim.max_pool2d(dropout, kernel_size=3, stride=2, padding='SAME')
print('maxpooling_2:' + str(self.maxpooling_2.get_shape().as_list()))
self.nin_lay_3 = self.mlp_conv(self.maxpooling_2, kernel_size=3, stride=1, num_filters=384,
micro_layer_size=[384, 384], name='nin_lay_3')
# NO dropout
self.maxpooling_3 = slim.max_pool2d(self.nin_lay_3, kernel_size=3, stride=2, padding='SAME')
print('maxpooling_3:' + str(self.maxpooling_3.get_shape().as_list()))
self.nin_lay_4 = self.mlp_conv(self.maxpooling_3, kernel_size=3, stride=1, num_filters=1024,
micro_layer_size=[1024, self.num_classes], name='nin_lay_4')
self.maxpooling_4 = slim.max_pool2d(self.nin_lay_4, kernel_size=3, stride=2, padding='SAME')
print('maxpooling_4:' + str(self.maxpooling_4.get_shape().as_list()))
# golbal average pooling
self.digits = self.golbal_average_pooling(self.nin_lay_4)
self.digits = self.digits[:, 0, 0, :]
print('golbal_average_pooling:' + str(self.digits.get_shape().as_list()))
# softmax
self.read_out_logits = tf.nn.softmax(self.digits)
print('read_out_logits:' + str(self.read_out_logits.get_shape().as_list()))
network_in_network.py 文件源码
python
阅读 15
收藏 0
点赞 0
评论 0
评论列表
文章目录