began_network.py 文件源码

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

项目:began 作者: davidtellez 项目源码 文件源码
def network_generator(self, input_var, network_weights=None):

        # Input layer
        layers = []
        n_blocks = int(np.log2(self.input_size / 8)) + 1  # end up with 8x8 output
        layers.append(InputLayer(shape=(None, self.hidden_size), input_var=input_var, name='generator/input'))

        # Dense layer up (from h to n*8*8)
        layers.append(dense_layer(layers[-1], n_units=(8 * 8 * self.n_filters), name='generator/dense%d' % len(layers), network_weights=network_weights))
        layers.append(ReshapeLayer(layers[-1], (-1, self.n_filters, 8, 8), name='generator/reshape%d' % len(layers)))

        # Convolutional blocks (decoder)
        for i_block in range(1, n_blocks+1):
            layers.append(conv_layer(layers[-1], n_filters=self.n_filters, stride=1, name='generator/conv%d' % len(layers), network_weights=network_weights))
            layers.append(conv_layer(layers[-1], n_filters=self.n_filters, stride=1, name='generator/conv%d' % len(layers), network_weights=network_weights))
            if i_block != n_blocks:
                layers.append(Upscale2DLayer(layers[-1], scale_factor=2, name='generator/upsample%d' % len(layers)))

        # Final layer (make sure input images are in the range [-1, 1] if tanh used)
        layers.append(conv_layer(layers[-1], n_filters=3, stride=1, name='generator/output', network_weights=network_weights, nonlinearity=sigmoid))

        # Network in dictionary form
        network = {layer.name: layer for layer in layers}

        return network

    # def network_generator_alt(self, input_var, network_weights=None):
    #
    #     # Input layer
    #     layers = []
    #     n_blocks = int(np.log2(self.input_size / 8)) + 1  # end up with 8x8 output
    #     layers.append(InputLayer(shape=(None, self.hidden_size), input_var=input_var, name='generator/input'))
    #
    #     # Dense layer up (from h to n*8*8)
    #     layers.append(dense_layer(layers[-1], n_units=(8 * 8 * self.n_filters*n_blocks), name='generator/dense%d' % len(layers), network_weights=network_weights, nonlinearity=elu, bn=True))
    #     layers.append(ReshapeLayer(layers[-1], (-1, self.n_filters*n_blocks, 8, 8), name='generator/reshape%d' % len(layers)))
    #
    #     # Convolutional blocks (decoder)
    #     for i_block in range(1, n_blocks+1)[::-1]:
    #         # layers.append(conv_layer(layers[-1], n_filters=self.n_filters*(i_block), stride=1, name='generator/conv%d' % len(layers), network_weights=network_weights, bn=True))
    #         # layers.append(conv_layer(layers[-1], n_filters=self.n_filters*(i_block), stride=1, name='generator/conv%d' % len(layers), network_weights=network_weights, bn=True))
    #         if i_block != 1:
    #             layers.append(transposed_conv_layer(layers[-1], n_filters=self.n_filters*(i_block-1), stride=2, name='generator/upsample%d' % len(layers),
    #                                                 output_size=8*2**(n_blocks-i_block+1), network_weights=network_weights, nonlinearity=elu, bn=True))
    #
    #     # Final layer (make sure input images are in the range [-1, 1]
    #     layers.append(conv_layer(layers[-1], n_filters=3, stride=1, name='generator/output', network_weights=network_weights, nonlinearity=tanh, bn=False))
    #
    #     # Network in dictionary form
    #     network = {layer.name: layer for layer in layers}
    #
    #     return network
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号