Path: blob/master/core/leras/models/CodeDiscriminator.py
628 views
from core.leras import nn1tf = nn.tf23class CodeDiscriminator(nn.ModelBase):4def on_build(self, in_ch, code_res, ch=256, conv_kernel_initializer=None):5n_downscales = 1 + code_res // 867self.convs = []8prev_ch = in_ch9for i in range(n_downscales):10cur_ch = ch * min( (2**i), 8 )11self.convs.append ( nn.Conv2D( prev_ch, cur_ch, kernel_size=4 if i == 0 else 3, strides=2, padding='SAME', kernel_initializer=conv_kernel_initializer) )12prev_ch = cur_ch1314self.out_conv = nn.Conv2D( prev_ch, 1, kernel_size=1, padding='VALID', kernel_initializer=conv_kernel_initializer)1516def forward(self, x):17for conv in self.convs:18x = tf.nn.leaky_relu( conv(x), 0.1 )19return self.out_conv(x)2021nn.CodeDiscriminator = CodeDiscriminator2223