测试练习

    1. t1={
    2. 01,-1,-1,
    3. -1,01,-1,
    4. -1,-1,01,
    5. }
    6. t2={
    7. 01,-1,01,
    8. -1,01,-1,
    9. 01,-1,01,
    10. }
    11. t3={
    12. -1,-1,01,
    13. -1,01,-1,
    14. 01,-1,-1,
    15. }
    16. o={{-1,-1},{-1,0},{-1,1},{0,-1},{0,0},{0,1},{1,-1},{1,0},{1,1},}
    17. function 卷积计算(t,特征器)
    18. local 卷积={}
    19. local 跳跃=1
    20. for y1=1,#t-跳跃*2 do --创建一个空卷积
    21. 卷积[y1]={}
    22. for x1=1,#t[1]-跳跃*2 do
    23. table.insert(卷积[y1],0)
    24. end
    25. end
    26. for y=1,#t do
    27. for x=1,#t[1] do
    28. if y>跳跃 and x>跳跃 and y<#t and x<#t[1] then
    29. local 过滤器={}
    30. for k,v in pairs(o) do
    31. local a=t[y+v[2]][x+v[1]]*特征器[k]
    32. table.insert(过滤器,a)
    33. end
    34. local j=(过滤器[1]+过滤器[2]+过滤器[3]+过滤器[4]+过滤器[5]+过滤器[6]+过滤器[7]+过滤器[8]+过滤器[9])/9
    35. if j<0 then --负数取0
    36. j=0
    37. end
    38. 卷积[y-跳跃][x-跳跃]=tonumber(string.format("%0.2f",j))
    39. end
    40. end
    41. end
    42. --print(卷积)
    43. return 卷积
    44. end
    45. function 池化函数(a)
    46. local 池化={}
    47. for y1=1,math.floor(#a/2+0.5) do
    48. 池化[y1]={}
    49. for x1=1,math.floor(#a[1]/2+0.5) do
    50. table.insert(池化[y1],0)
    51. end
    52. end
    53. local y1=0
    54. for y=1,#a,2 do
    55. y1=y1+1
    56. local x1=0
    57. for x=1,#a[1],2 do
    58. x1=x1+1
    59. local t={0,0,0,0}
    60. t[1]=a[y][x]
    61. if a[y+1]~=nil then
    62. if a[y+1][x]~=nil then
    63. t[2]=a[y+1][x]
    64. end
    65. if a[y+1][x+1]~=nil then
    66. t[4]=a[y+1][x+1]
    67. end
    68. end
    69. if a[y][x+1]~=nil then
    70. t[3]=a[y][x+1]
    71. end
    72. table.sort(t)
    73. 池化[y1][x1]=t[#t]
    74. end
    75. end
    76. print(池化)
    77. return 池化
    78. end
    79. t={
    80. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    81. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    82. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    83. {-1,-1,-1,-1,-1,01,-1,-1,-1,-1,-1,},
    84. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    85. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    86. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    87. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    88. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    89. }
    90. t={
    91. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    92. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    93. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    94. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    95. {-1,-1,-1,-1,-1,01,-1,-1,-1,-1,-1,},
    96. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    97. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    98. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    99. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    100. }
    101. t={
    102. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    103. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    104. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    105. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    106. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    107. {-1,-1,-1,-1,-1,01,-1,-1,-1,-1,-1,},
    108. {-1,-1,-1,-1,01,-1,01,-1,-1,-1,-1,},
    109. {-1,-1,-1,01,-1,-1,-1,01,-1,-1,-1,},
    110. {-1,-1,01,-1,-1,-1,-1,-1,01,-1,-1,},
    111. }
    112. t={
    113. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    114. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    115. {-1,01,-1,-1,-1,-1,-1,01,-1,-1,-1,},
    116. {-1,-1,01,-1,-1,-1,01,-1,-1,-1,-1,},
    117. {-1,-1,-1,01,-1,01,-1,-1,-1,-1,-1,},
    118. {-1,-1,-1,-1,01,-1,-1,-1,-1,-1,-1,},
    119. {-1,-1,-1,-1,-1,01,01,01,-1,-1,-1,},
    120. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    121. {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
    122. }
    123. --p={1, 1,0.56,0.56,1,0.56,0.56, 1,0.11,0.56,0.56,0.11, 1,1,0.33,1,0.56,0.56,} --12.03
    124. --p={1,0.56,0.56,0.56,1,0.33,0.56, 1,0.11,0.56,0.56,0.11,0.56,1,0.33,1,0.56,0.56,} --10.92
    125. --p={1,0.56,0.56,0.56,1,0.33,0.56,0.56,0.11,0.56, 1,0.11,0.56,1,0.56,1,0.56,0.56,} --11.15
    126. --p={1,0.56,0.33,0.56,1,0.33,0.56,0.56, 0, 1,0.56, 0,0.56,1,0.33,1,0.56,0.33,} --10.24
    127. --p={1,0.56,0.33,0.56,1,0.33,0.56,0.56,0,1,0.56,0,0.56,1,0.33,1,0.33,0.33,} --10.01
    128. --p={1,0.56,0.33,0.56,0.56,0.33,0.56,0.56,0,1,0.33,0,0.56,1,0.33,1,0.56,0.33,} --9.57
    129. --p={1,0.56,0.33,0.56,0.56,0.33,0.56,0.56,0,1,0.33,0,0.56,1,0.33,0.56,0.56,0.33,} --9.13
    130. --local a=0
    131. --for k,v in pairs(p) do
    132. -- a=a+v
    133. --end
    134. --print(a)
    135. --lua_exit()
    136. local 合集={}
    137. local 卷积1=卷积计算(t,t1)
    138. local 池化1=池化函数(卷积1)
    139. local 池化1=池化函数(池化1)
    140. local 卷积2=卷积计算(t,t2)
    141. local 池化2=池化函数(卷积2)
    142. local 池化2=池化函数(池化2)
    143. local 卷积3=卷积计算(t,t3)
    144. local 池化3=池化函数(卷积3)
    145. local 池化3=池化函数(池化3)
    146. print(池化1)
    147. print(池化2)
    148. print(池化3)
    149. for y=1,#池化1 do
    150. for x=1,#池化1[1] do
    151. local a=池化1[y][x]
    152. table.insert(合集,a)
    153. end
    154. end
    155. for y=1,#池化2 do
    156. for x=1,#池化2[1] do
    157. local a=池化2[y][x]
    158. table.insert(合集,a)
    159. end
    160. end
    161. for y=1,#池化3 do
    162. for x=1,#池化3[1] do
    163. local a=池化3[y][x]
    164. table.insert(合集,a)
    165. end
    166. end
    167. print(合集)