You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_layers_stack.py 2.8 kB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import os
  4. import unittest
  5. os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
  6. import tensorlayer as tl
  7. from tensorlayer.layers import *
  8. from tests.utils import CustomTestCase
  9. class Layer_Stack_Test(CustomTestCase):
  10. @classmethod
  11. def setUpClass(cls):
  12. print("-" * 20, "Layer_Stack_Test", "-" * 20)
  13. cls.batch_size = 4
  14. cls.inputs_shape = [cls.batch_size, 10]
  15. cls.ni = Input(cls.inputs_shape, name='input_layer')
  16. class model(tl.layers.Module):
  17. def __init__(self):
  18. super(model, self).__init__()
  19. self.a = Dense(n_units=5)
  20. self.b = Dense(n_units=5)
  21. self.stack = Stack(axis=1)
  22. def forward(self, inputs):
  23. output1 = self.a(inputs)
  24. output2 = self.b(inputs)
  25. output = self.stack([output1, output2])
  26. return output
  27. a = Dense(n_units=5)(cls.ni)
  28. b = Dense(n_units=5)(cls.ni)
  29. cls.layer1 = Stack(axis=1)
  30. cls.n1 = cls.layer1([a, b])
  31. net = model()
  32. net.set_train()
  33. cls.inputs = Input(cls.inputs_shape)
  34. cls.n2 = net(cls.inputs)
  35. @classmethod
  36. def tearDownClass(cls):
  37. pass
  38. def test_layer_n1(self):
  39. self.assertEqual(self.n1.shape, (4, 2, 5))
  40. def test_layer_n2(self):
  41. self.assertEqual(self.n2.shape, (4, 2, 5))
  42. class Layer_UnStack_Test(CustomTestCase):
  43. @classmethod
  44. def setUpClass(cls):
  45. print("-" * 20, "Layer_UnStack_Test", "-" * 20)
  46. cls.batch_size = 4
  47. cls.inputs_shape = [cls.batch_size, 10]
  48. cls.ni = Input(cls.inputs_shape, name='input_layer')
  49. a = Dense(n_units=5)(cls.ni)
  50. cls.layer1 = UnStack(axis=1)
  51. cls.n1 = cls.layer1(a)
  52. class model(tl.layers.Module):
  53. def __init__(self):
  54. super(model, self).__init__()
  55. self.a = Dense(n_units=5)
  56. self.unstack = UnStack(axis=1)
  57. def forward(self, inputs):
  58. output1 = self.a(inputs)
  59. output = self.unstack(output1)
  60. return output
  61. cls.inputs = Input(cls.inputs_shape)
  62. net = model()
  63. net.set_train()
  64. cls.n2 = net(cls.inputs)
  65. print(cls.layer1)
  66. @classmethod
  67. def tearDownClass(cls):
  68. pass
  69. def test_layer_n1(self):
  70. self.assertEqual(len(self.n1), 5)
  71. self.assertEqual(self.n1[0].shape, (self.batch_size, ))
  72. def test_layer_n2(self):
  73. self.assertEqual(len(self.n2), 5)
  74. self.assertEqual(self.n1[0].shape, (self.batch_size, ))
  75. if __name__ == '__main__':
  76. tl.logging.set_verbosity(tl.logging.DEBUG)
  77. unittest.main()

TensorLayer3.0 是一款兼容多种深度学习框架为计算后端的深度学习库。计划兼容TensorFlow, Pytorch, MindSpore, Paddle.