#!/usr/bin/env python # -*- coding: utf-8 -*- import os import unittest os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' import tensorflow as tf import tensorlayer as tl import numpy as np from tests.utils import CustomTestCase class Test_Leaky_ReLUs(CustomTestCase): @classmethod def setUpClass(cls): cls.ni = tl.layers.Input(shape=[16, 10]) cls.w_shape = (10, 5) cls.eps = 0.0 @classmethod def tearDownClass(cls): pass def init_dense(self, w_init): return tl.layers.Dense(n_units=self.w_shape[1], in_channels=self.w_shape[0], W_init=w_init) def test_zeros(self): dense = self.init_dense(tl.initializers.zeros()) self.assertEqual(np.sum(dense.all_weights[0].numpy() - np.zeros(shape=self.w_shape)), self.eps) nn = dense(self.ni) def test_ones(self): dense = self.init_dense(tl.initializers.ones()) self.assertEqual(np.sum(dense.all_weights[0].numpy() - np.ones(shape=self.w_shape)), self.eps) nn = dense(self.ni) def test_constant(self): dense = self.init_dense(tl.initializers.constant(value=5.0)) self.assertEqual(np.sum(dense.all_weights[0].numpy() - np.ones(shape=self.w_shape) * 5.0), self.eps) nn = dense(self.ni) # test with numpy arr arr = np.random.uniform(size=self.w_shape).astype(np.float32) dense = self.init_dense(tl.initializers.constant(value=arr)) self.assertEqual(np.sum(dense.all_weights[0].numpy() - arr), self.eps) nn = dense(self.ni) def test_RandomUniform(self): dense = self.init_dense(tl.initializers.random_uniform(minval=-0.1, maxval=0.1, seed=1234)) print(dense.all_weights[0].numpy()) nn = dense(self.ni) def test_RandomNormal(self): dense = self.init_dense(tl.initializers.random_normal(mean=0.0, stddev=0.1)) print(dense.all_weights[0].numpy()) nn = dense(self.ni) def test_TruncatedNormal(self): dense = self.init_dense(tl.initializers.truncated_normal(mean=0.0, stddev=0.1)) print(dense.all_weights[0].numpy()) nn = dense(self.ni) def test_deconv2d_bilinear_upsampling_initializer(self): rescale_factor = 2 imsize = 128 num_channels = 3 num_in_channels = 3 num_out_channels = 3 filter_shape = (5, 5, num_out_channels, num_in_channels) ni = tl.layers.Input(shape=(1, imsize, imsize, num_channels)) bilinear_init = tl.initializers.deconv2d_bilinear_upsampling_initializer(shape=filter_shape) deconv_layer = tl.layers.DeConv2dLayer( shape=filter_shape, outputs_shape=(1, imsize * rescale_factor, imsize * rescale_factor, num_out_channels), strides=(1, rescale_factor, rescale_factor, 1), W_init=bilinear_init, padding='SAME', act=None, name='g/h1/decon2d' ) nn = deconv_layer(ni) def test_config(self): init = tl.initializers.constant(value=5.0) new_init = tl.initializers.Constant.from_config(init.get_config()) if __name__ == '__main__': unittest.main()