hypergan.generators.common module
import tensorflow as tf
import numpy as np
import hyperchamber as hc
def repeating_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
if output_channels == 3:
return standard_block(component, net, output_channels, filter=filter)
for i in range(config.block_repeat_count):
net = standard_block(component, net, output_channels, filter=filter)
print("[generator] repeating block ", net)
return net
def standard_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
net = ops.conv2d(net, filter, filter, 1, 1, output_channels)
return net
def inception_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
activation = ops.lookup(config.activation)
size = int(net.get_shape()[-1])
batch_size = int(net.get_shape()[0])
if output_channels == 3:
return standard_block(component, net, output_channels)
net1 = ops.conv2d(net, filter, filter, 1, 1, output_channels//3)
net2 = ops.conv2d(net1, filter, filter, 1, 1, output_channels//3)
net3 = ops.conv2d(net2, filter, filter, 1, 1, output_channels//3)
net = tf.concat(axis=3, values=[net1, net2, net3])
return net
def dense_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
if output_channels == 3:
return standard_block(component, net, output_channels)
net1 = standard_block(component, net, output_channels)
net2 = standard_block(component, net, output_channels)
net = tf.concat(axis=3, values=[net1, net2])
return net
Functions
def dense_block(
component, net, output_channels, filter=None)
def dense_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
if output_channels == 3:
return standard_block(component, net, output_channels)
net1 = standard_block(component, net, output_channels)
net2 = standard_block(component, net, output_channels)
net = tf.concat(axis=3, values=[net1, net2])
return net
def inception_block(
component, net, output_channels, filter=None)
def inception_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
activation = ops.lookup(config.activation)
size = int(net.get_shape()[-1])
batch_size = int(net.get_shape()[0])
if output_channels == 3:
return standard_block(component, net, output_channels)
net1 = ops.conv2d(net, filter, filter, 1, 1, output_channels//3)
net2 = ops.conv2d(net1, filter, filter, 1, 1, output_channels//3)
net3 = ops.conv2d(net2, filter, filter, 1, 1, output_channels//3)
net = tf.concat(axis=3, values=[net1, net2, net3])
return net
def repeating_block(
component, net, output_channels, filter=None)
def repeating_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
if output_channels == 3:
return standard_block(component, net, output_channels, filter=filter)
for i in range(config.block_repeat_count):
net = standard_block(component, net, output_channels, filter=filter)
print("[generator] repeating block ", net)
return net
def standard_block(
component, net, output_channels, filter=None)
def standard_block(component, net, output_channels, filter=None):
config = component.config
ops = component.ops
net = ops.conv2d(net, filter, filter, 1, 1, output_channels)
return net