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_pooling.py 6.8 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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_Pooling_Test(CustomTestCase):
  10. @classmethod
  11. def setUpClass(cls):
  12. ## 1D ========================================================================
  13. x_1_input_shape = [None, 100, 1]
  14. nin_1 = Input(x_1_input_shape, name='test_in1')
  15. n1 = tl.layers.Conv1d(n_filter=32, filter_size=5, stride=2, name='test_conv1d')(nin_1)
  16. n2 = tl.layers.MaxPool1d(filter_size=3, strides=2, padding='SAME', name='test_maxpool1d')(n1)
  17. n3 = tl.layers.MeanPool1d(filter_size=3, strides=2, padding='SAME', name='test_meanpool1d')(n1)
  18. n4 = tl.layers.GlobalMaxPool1d(name='test_maxpool1d')(n1)
  19. n5 = tl.layers.GlobalMeanPool1d(name='test_meanpool1d')(n1)
  20. n16 = tl.layers.MaxPool1d(filter_size=3, strides=1, padding='VALID', dilation_rate=2, name='test_maxpool1d')(n1)
  21. n17 = tl.layers.MeanPool1d(filter_size=3, strides=1, padding='VALID', dilation_rate=2,
  22. name='test_meanpool1d')(n1)
  23. n19 = tl.layers.AdaptiveMeanPool1d(output_size=44, name='test_adaptivemeanpool1d')(n1)
  24. n20 = tl.layers.AdaptiveMaxPool1d(output_size=44, name='test_adaptivemaxpool1d')(n1)
  25. cls.n1_shape = n1.get_shape().as_list()
  26. cls.n2_shape = n2.get_shape().as_list()
  27. cls.n3_shape = n3.get_shape().as_list()
  28. cls.n4_shape = n4.get_shape().as_list()
  29. cls.n5_shape = n5.get_shape().as_list()
  30. cls.n16_shape = n16.get_shape().as_list()
  31. cls.n17_shape = n17.get_shape().as_list()
  32. cls.n19_shape = n19.get_shape().as_list()
  33. cls.n20_shape = n20.get_shape().as_list()
  34. ## 2D ========================================================================
  35. x_2_input_shape = [None, 100, 100, 3]
  36. nin_2 = Input(x_2_input_shape, name='test_in2')
  37. n6 = tl.layers.Conv2d(n_filter=32, filter_size=(3, 3), strides=(2, 2), name='test_conv2d')(nin_2)
  38. n7 = tl.layers.MaxPool2d(filter_size=(3, 3), strides=(2, 2), padding='SAME', name='test_maxpool2d')(n6)
  39. n8 = tl.layers.MeanPool2d(filter_size=(3, 3), strides=(2, 2), padding='SAME', name='test_meanpool2d')(n6)
  40. n9 = tl.layers.GlobalMaxPool2d(name='test_maxpool2d')(n6)
  41. n10 = tl.layers.GlobalMeanPool2d(name='test_meanpool2d')(n6)
  42. n15 = tl.layers.PoolLayer(name='test_pool2d')(n6)
  43. # n18 = tl.layers.CornerPool2d('TopLeft', name='test_cornerpool2d')(n6)
  44. n21 = tl.layers.AdaptiveMeanPool2d(output_size=(45, 32), name='test_adaptivemeanpool2d')(n6)
  45. n22 = tl.layers.AdaptiveMaxPool2d(output_size=(45, 32), name='test_adaptivemaxpool2d')(n6)
  46. cls.n6_shape = n6.get_shape().as_list()
  47. cls.n7_shape = n7.get_shape().as_list()
  48. cls.n8_shape = n8.get_shape().as_list()
  49. cls.n9_shape = n9.get_shape().as_list()
  50. cls.n10_shape = n10.get_shape().as_list()
  51. cls.n15_shape = n15.get_shape().as_list()
  52. # cls.n18_shape = n18.get_shape().as_list()
  53. cls.n21_shape = n21.get_shape().as_list()
  54. cls.n22_shape = n22.get_shape().as_list()
  55. ## 3D ========================================================================
  56. x_3_input_shape = [None, 100, 100, 100, 3]
  57. nin_3 = Input(x_3_input_shape, name='test_in3')
  58. n11 = tl.layers.MeanPool3d(filter_size=(3, 3, 3), strides=(2, 2, 2), padding='SAME',
  59. name='test_meanpool3d')(nin_3)
  60. n12 = tl.layers.GlobalMaxPool3d(name='test_maxpool3d')(nin_3)
  61. n13 = tl.layers.GlobalMeanPool3d(name='test_meanpool3d')(nin_3)
  62. n14 = tl.layers.MaxPool3d(filter_size=(3, 3, 3), strides=(2, 2, 2), padding='SAME',
  63. name='test_maxpool3d')(nin_3)
  64. n23 = tl.layers.AdaptiveMeanPool3d(output_size=(45, 32, 55), name='test_adaptivemeanpool3d')(nin_3)
  65. n24 = tl.layers.AdaptiveMaxPool3d(output_size=(45, 32, 55), name='test_adaptivemaxpool3d')(nin_3)
  66. cls.n11_shape = n11.get_shape().as_list()
  67. cls.n12_shape = n12.get_shape().as_list()
  68. cls.n13_shape = n13.get_shape().as_list()
  69. cls.n14_shape = n14.get_shape().as_list()
  70. cls.n21_shape = n21.get_shape().as_list()
  71. cls.n22_shape = n22.get_shape().as_list()
  72. cls.n23_shape = n23.get_shape().as_list()
  73. cls.n24_shape = n24.get_shape().as_list()
  74. @classmethod
  75. def tearDownClass(cls):
  76. pass
  77. # tf.reset_default_graph()
  78. def test_n1_shape(self):
  79. self.assertEqual(self.n1_shape[1:3], [50, 32])
  80. def test_n2_shape(self):
  81. self.assertEqual(self.n2_shape[1:3], [25, 32])
  82. def test_n3_shape(self):
  83. self.assertEqual(self.n3_shape[1:3], [25, 32])
  84. def test_n4_shape(self):
  85. self.assertEqual(self.n4_shape[-1], 32)
  86. def test_n5_shape(self):
  87. self.assertEqual(self.n5_shape[-1], 32)
  88. def test_n6_shape(self):
  89. self.assertEqual(self.n6_shape[1:4], [50, 50, 32])
  90. def test_n7_shape(self):
  91. self.assertEqual(self.n7_shape[1:4], [25, 25, 32])
  92. def test_n8_shape(self):
  93. self.assertEqual(self.n8_shape[1:4], [25, 25, 32])
  94. def test_n9_shape(self):
  95. self.assertEqual(self.n9_shape[-1], 32)
  96. def test_n10_shape(self):
  97. self.assertEqual(self.n10_shape[-1], 32)
  98. def test_n11_shape(self):
  99. self.assertEqual(self.n11_shape[1:5], [50, 50, 50, 3])
  100. def test_n12_shape(self):
  101. self.assertEqual(self.n12_shape[-1], 3)
  102. def test_n13_shape(self):
  103. self.assertEqual(self.n13_shape[-1], 3)
  104. def test_n14_shape(self):
  105. self.assertEqual(self.n14_shape[1:5], [50, 50, 50, 3])
  106. def test_n15_shape(self):
  107. self.assertEqual(self.n15_shape[1:4], [25, 25, 32])
  108. def test_n16_shape(self):
  109. self.assertEqual(self.n16_shape[1:4], [46, 32])
  110. def test_n17_shape(self):
  111. self.assertEqual(self.n17_shape[1:4], [46, 32])
  112. def test_n19_shape(self):
  113. self.assertEqual(self.n19_shape[1:3], [44, 32])
  114. def test_n20_shape(self):
  115. self.assertEqual(self.n20_shape[1:3], [44, 32])
  116. def test_n21_shape(self):
  117. self.assertEqual(self.n21_shape[1:4], [45, 32, 32])
  118. def test_n22_shape(self):
  119. self.assertEqual(self.n22_shape[1:4], [45, 32, 32])
  120. def test_n23_shape(self):
  121. self.assertEqual(self.n23_shape[1:5], [45, 32, 55, 3])
  122. def test_n24_shape(self):
  123. self.assertEqual(self.n24_shape[1:5], [45, 32, 55, 3])
  124. # def test_n18_shape(self):
  125. # self.assertEqual(self.n18_shape[1:], [50, 50, 32])
  126. if __name__ == '__main__':
  127. tl.logging.set_verbosity(tl.logging.DEBUG)
  128. unittest.main()

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