
DCGAN generator/discriminator resolved to concrete shapes (hmdcg)
Source:R/geron_w4a_native.R
morie_geron_dcgan.RdArchitecture spec (like hmalex): layer-by-layer channel/param counts
for a square image reached from seed_shape by stride-2 transposed
convs. One generator forward pass on unit kernels is delegated to
morie_geron_dcgan_generator to demonstrate the resolved shapes.
Usage
morie_geron_dcgan(
X,
z_dim = 100,
filters = 64,
epochs = 50,
lr = 2e-04,
seed_shape = c(4, 4),
stride = 2
)Value
List with generator_layers, discriminator_layers,
generator_params, discriminator_params, total_params, n_layers.
Examples
morie_geron_dcgan(array(0, dim = c(3, 16, 16)), z_dim = 8, filters = 4)
#> $generator_layers
#> $generator_layers[[1]]
#> $generator_layers[[1]]$kind
#> [1] "project"
#>
#> $generator_layers[[1]]$`in`
#> [1] 8
#>
#> $generator_layers[[1]]$out
#> [1] 4
#>
#> $generator_layers[[1]]$channels
#> [1] 8
#>
#> $generator_layers[[1]]$params
#> [1] 1152
#>
#>
#> $generator_layers[[2]]
#> $generator_layers[[2]]$kind
#> [1] "deconv"
#>
#> $generator_layers[[2]]$in_channels
#> [1] 8
#>
#> $generator_layers[[2]]$channels
#> [1] 4
#>
#> $generator_layers[[2]]$kernel
#> [1] 4
#>
#> $generator_layers[[2]]$stride
#> [1] 2
#>
#> $generator_layers[[2]]$out
#> [1] 8
#>
#> $generator_layers[[2]]$params
#> [1] 516
#>
#> $generator_layers[[2]]$batch_norm
#> [1] TRUE
#>
#> $generator_layers[[2]]$activation
#> [1] "relu"
#>
#>
#> $generator_layers[[3]]
#> $generator_layers[[3]]$kind
#> [1] "deconv"
#>
#> $generator_layers[[3]]$in_channels
#> [1] 4
#>
#> $generator_layers[[3]]$channels
#> [1] 1
#>
#> $generator_layers[[3]]$kernel
#> [1] 4
#>
#> $generator_layers[[3]]$stride
#> [1] 2
#>
#> $generator_layers[[3]]$out
#> [1] 16
#>
#> $generator_layers[[3]]$params
#> [1] 65
#>
#> $generator_layers[[3]]$batch_norm
#> [1] FALSE
#>
#> $generator_layers[[3]]$activation
#> [1] "tanh"
#>
#>
#>
#> $discriminator_layers
#> $discriminator_layers[[1]]
#> $discriminator_layers[[1]]$kind
#> [1] "conv"
#>
#> $discriminator_layers[[1]]$in_channels
#> [1] 1
#>
#> $discriminator_layers[[1]]$channels
#> [1] 4
#>
#> $discriminator_layers[[1]]$kernel
#> [1] 4
#>
#> $discriminator_layers[[1]]$stride
#> [1] 2
#>
#> $discriminator_layers[[1]]$out
#> [1] 8
#>
#> $discriminator_layers[[1]]$params
#> [1] 68
#>
#> $discriminator_layers[[1]]$batch_norm
#> [1] FALSE
#>
#> $discriminator_layers[[1]]$activation
#> [1] "leaky_relu"
#>
#>
#> $discriminator_layers[[2]]
#> $discriminator_layers[[2]]$kind
#> [1] "conv"
#>
#> $discriminator_layers[[2]]$in_channels
#> [1] 4
#>
#> $discriminator_layers[[2]]$channels
#> [1] 8
#>
#> $discriminator_layers[[2]]$kernel
#> [1] 4
#>
#> $discriminator_layers[[2]]$stride
#> [1] 2
#>
#> $discriminator_layers[[2]]$out
#> [1] 4
#>
#> $discriminator_layers[[2]]$params
#> [1] 520
#>
#> $discriminator_layers[[2]]$batch_norm
#> [1] TRUE
#>
#> $discriminator_layers[[2]]$activation
#> [1] "leaky_relu"
#>
#>
#> $discriminator_layers[[3]]
#> $discriminator_layers[[3]]$kind
#> [1] "fc"
#>
#> $discriminator_layers[[3]]$`in`
#> [1] 128
#>
#> $discriminator_layers[[3]]$out
#> [1] 1
#>
#> $discriminator_layers[[3]]$params
#> [1] 129
#>
#> $discriminator_layers[[3]]$activation
#> [1] "sigmoid"
#>
#>
#>
#> $generator_params
#> [1] 1733
#>
#> $discriminator_params
#> [1] 717
#>
#> $total_params
#> [1] 2450
#>
#> $image_shape
#> [1] 16 16
#>
#> $n_layers
#> [1] 2
#>
#> $z_dim
#> [1] 8
#>
#> $sample_shape
#> [1] 16 16
#>
#> $training_config
#> $training_config$epochs
#> [1] 50
#>
#> $training_config$lr
#> [1] 2e-04
#>
#> $training_config$adam_beta1
#> [1] 0.5
#>
#>
#> $estimate
#> [1] 2450
#>
#> $n
#> [1] 3
#>
#> $method
#> [1] "DCGAN generator/discriminator resolved to concrete shapes; forward pass delegated to grdcgan"
#>