network_in_network.py 文件源码

python
阅读 15 收藏 0 点赞 0 评论 0

项目:Deep_Learning_In_Action 作者: SunnyMarkLiu 项目源码 文件源码
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()))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号