tensorlayer3/tests/pending/test_reuse_mlp.py

57 lines
1.7 KiB
Python

#!/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
from tests.utils import CustomTestCase
# define the network
def mlp(x, is_train=True, reuse=False):
with tf.variable_scope("MLP", reuse=reuse):
tl.layers.set_name_reuse(reuse) # print warning
network = tl.layers.InputLayer(x, name='input')
network = tl.layers.DropoutLayer(network, keep=0.8, is_fix=True, is_train=is_train, name='drop1')
network = tl.layers.DenseLayer(network, n_units=800, act=tf.nn.relu, name='relu1')
network = tl.layers.DropoutLayer(network, keep=0.5, is_fix=True, is_train=is_train, name='drop2')
network = tl.layers.DenseLayer(network, n_units=800, act=tf.nn.relu, name='relu2')
network = tl.layers.DropoutLayer(network, keep=0.5, is_fix=True, is_train=is_train, name='drop3')
network = tl.layers.DenseLayer(network, n_units=10, name='output')
return network
class MLP_Reuse_Test(CustomTestCase):
@classmethod
def setUpClass(cls):
# define placeholder
cls.x = tf.placeholder(tf.float32, shape=[None, 784], name='x')
# define inferences
mlp(cls.x, is_train=True, reuse=False)
mlp(cls.x, is_train=False, reuse=True)
@classmethod
def tearDownClass(cls):
tf.reset_default_graph()
def test_reuse(self):
with self.assertRaises(Exception):
mlp(self.x, is_train=False, reuse=False) # Already defined model with the same var_scope
if __name__ == '__main__':
tf.logging.set_verbosity(tf.logging.DEBUG)
tl.logging.set_verbosity(tl.logging.DEBUG)
unittest.main()