Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function buildGenerator(latentSize) {
tf.util.assert(
latentSize > 0 && Number.isInteger(latentSize),
`Expected latent-space size to be a positive integer, but ` +
`got ${latentSize}.`);
const cnn = tf.sequential();
// The number of units is chosen so that when the output is reshaped
// and fed through the subsequent conv2dTranspose layers, the tensor
// that comes out at the end has the exact shape that matches MNIST
// images ([28, 28, 1]).
cnn.add(tf.layers.dense(
{units: 3 * 3 * 384, inputShape: [latentSize], activation: 'relu'}));
cnn.add(tf.layers.reshape({targetShape: [3, 3, 384]}));
// Upsample from [3, 3, ...] to [7, 7, ...].
cnn.add(tf.layers.conv2dTranspose({
filters: 192,
kernelSize: 5,
strides: 1,
padding: 'valid',
activation: 'relu',
function buildDiscriminator() {
const cnn = tf.sequential();
cnn.add(tf.layers.conv2d({
filters: 32,
kernelSize: 3,
padding: 'same',
strides: 2,
inputShape: [IMAGE_SIZE, IMAGE_SIZE, 1]
}));
cnn.add(tf.layers.leakyReLU({alpha: 0.2}));
cnn.add(tf.layers.dropout({rate: 0.3}));
cnn.add(tf.layers.conv2d(
{filters: 64, kernelSize: 3, padding: 'same', strides: 1}));
cnn.add(tf.layers.leakyReLU({alpha: 0.2}));
cnn.add(tf.layers.dropout({rate: 0.3}));