Ejemplo n.º 1
0
 def __init__(self, n_actions):
     super().__init__()
     self.n_actions = n_actions
     self.feature = tf.keras.Sequential([
         ConvBlock(32,
                   kernel_size=(9, 9),
                   activation_='relu',
                   sampling='stride',
                   normalization='batch'),
         ConvBlock(64,
                   kernel_size=(5, 5),
                   activation_='relu',
                   sampling='same',
                   normalization='batch'),
         ConvBlock(64,
                   kernel_size=(5, 5),
                   activation_='relu',
                   sampling='stride',
                   normalization='batch'),
         ConvBlock(128,
                   kernel_size=(5, 5),
                   activation_='relu',
                   sampling='same',
                   normalization='batch'),
         ConvBlock(128,
                   kernel_size=(5, 5),
                   activation_='relu',
                   sampling='stride',
                   normalization='batch'),
     ])
     self.dense1 = DenseBlock(512,
                              activation_='relu',
                              normalization='batch')
     self.dense2 = DenseBlock(n_actions)
Ejemplo n.º 2
0
    def __init__(self, latent_dim,
                 nb_filter=16,
                 last_activation='tanh',
                 normalization='batch',
                 upsampling='deconv',
                 spectral_norm=False):
        super().__init__(latent_dim,
                         nb_filter,
                         last_activation,
                         normalization,
                         upsampling,
                         spectral_norm)

        self.convs = []
        self.dense = DenseBlock(4*4*nb_filter*(2**3),
                                activation_='relu',
                                normalization=normalization,
                                spectral_norm=spectral_norm)

        for i in range(1, 4):
            _nb_filter = nb_filter*(2**(3-i))

            if upsampling == 'subpixel':
                _nb_filter *= 4
            self.convs.append(ConvBlock(_nb_filter,
                                        kernel_size=(5, 5),
                                        sampling=upsampling,
                                        **self.conv_block_params))
        self.last_conv = ConvBlock(1,
                                   kernel_size=(1, 1),
                                   **self.last_conv_block_params)
Ejemplo n.º 3
0
    def __init__(self,
                 output_dim,
                 nb_filter=16,
                 normalization='batch',
                 downsampling='stride'):
        super().__init__(output_dim, nb_filter, normalization, downsampling)

        norm_params = {'center': False, 'scale': False}

        self.convs = [
            ConvBlock(nb_filter * (2**i),
                      kernel_size=(5, 5),
                      kernel_regularizer=tf.keras.regularizers.l2(1.),
                      norm_params=norm_params,
                      **self.conv_block_params) for i in range(3)
        ]
        self.dense1 = DenseBlock(
            128,
            activation_='lrelu',
            kernel_regularizer=tf.keras.regularizers.l2(1.),
            use_bias=False,
            norm_params=norm_params,
            normalization=self.normalization)
        self.dense2 = DenseBlock(
            self.output_dim,
            kernel_regularizer=tf.keras.regularizers.l2(1.),
            use_bias=False)
Ejemplo n.º 4
0
    def __init__(self, n_actions):
        super().__init__()
        self.n_actions = n_actions
        self.feature = tf.keras.Sequential([
            ConvBlock(32, 
                      kernel_size=(9, 9),
                      activation_='relu',
                      sampling='stride',
                      normalization='batch'),

            ConvBlock(64, 
                      kernel_size=(5, 5),
                      activation_='relu',
                      sampling='same',
                      normalization='batch'),
            ConvBlock(64, 
                      kernel_size=(5, 5),
                      activation_='relu',
                      sampling='stride',
                      normalization='batch'),

            ConvBlock(128, 
                      kernel_size=(5, 5),
                      activation_='relu',
                      sampling='same',
                      normalization='batch'),
            ConvBlock(128, 
                      kernel_size=(5, 5),
                      activation_='relu',
                      sampling='stride',
                      normalization='batch'),
            tf.keras.layers.Flatten()
        ])
        self.value_branch = tf.keras.Sequential([
            DenseBlock(512, activation_='relu', normalization='batch'),
            DenseBlock(1),
        ])
        self.advantage_brach = tf.keras.Sequential([
            DenseBlock(512, activation_='relu', normalization='batch'),
            DenseBlock(n_actions),
        ])
Ejemplo n.º 5
0
 def __init__(self,
              latent_dim=2,
              nb_filter=32,
              last_activation='tanh',
              normalization='batch',
              downsampling='stride',
              upsampling='deconv'):
     super().__init__(latent_dim, nb_filter, last_activation, normalization,
                      downsampling, upsampling)
     self.feature_shape = (2, 2, nb_filter * (2**3))
     self.downs = [
         ConvBlock(nb_filter * (2**i),
                   kernel_size=(3, 3),
                   sampling=downsampling,
                   **self.conv_block_params) for i in range(4)
     ]
     self.dense_down1 = DenseBlock(64,
                                   activation_='lrelu',
                                   normalization=normalization)
     self.dense_down2 = DenseBlock(latent_dim)
     self.dense_up1 = DenseBlock(64,
                                 activation_='lrelu',
                                 normalization=normalization)
     self.dense_up2 = DenseBlock(self.feature_shape[0] *
                                 self.feature_shape[1] *
                                 self.feature_shape[2],
                                 activation_='lrelu',
                                 normalization=normalization)
     self.ups = [
         ConvBlock(nb_filter * (2**(3 - i)),
                   kernel_size=(3, 3),
                   sampling=upsampling,
                   **self.conv_block_params) for i in range(4)
     ]
     self.last_conv = ConvBlock(1,
                                kernel_size=(1, 1),
                                activation_=last_activation)
Ejemplo n.º 6
0
    def __init__(self,
                 nb_filter=16,
                 normalization='batch',
                 downsampling='stride',
                 spectral_norm=False):
        super().__init__(nb_filter, normalization, downsampling, spectral_norm)

        self.convs = []
        for i in range(4):
            _nb_filter = nb_filter * (2**i)
            self.convs.append(
                ConvBlock(_nb_filter,
                          kernel_size=(5, 5),
                          sampling=downsampling,
                          **self.conv_block_params))
        self.dense = DenseBlock(1, spectral_norm=spectral_norm)