• 自行制作3x3的数据集合231001


    1. import random
    2. import os
    3. def generate_matrix():
    4. return [[random.choice([0, 1]) for _ in range(3)] for _ in range(3)]
    5. def matrix_to_string(matrix):
    6. return '\n'.join(''.join(str(x) for x in row) for row in matrix)
    7. def parse_matrices_from_file(filename):
    8. matrices = []
    9. with open(filename, 'r') as f:
    10. lines = f.readlines()
    11. i = 0
    12. while i < len(lines):
    13. if 'T[i]' not in lines[i]:
    14. matrix = [list(map(int, list(lines[j].strip()))) for j in range(i, i+3)]
    15. matrices.append(matrix)
    16. i += 4 # 3行矩阵加1行T[i]
    17. else:
    18. i += 1
    19. return matrices
    20. def Check2(filename="ds.txt"):
    21. C = [
    22. [1, 0, 1],
    23. [0, 1, 1],
    24. [1, 1, 1]
    25. ]
    26. matrices = parse_matrices_from_file(filename)
    27. for index, matrix in enumerate(matrices):
    28. if matrix_exists(matrix, [C]):
    29. return index + 1 # +1是因为索引从1开始计数
    30. return -1
    31. #------------------------
    32. def matrix_exists_in_file(matrix, filename):
    33. with open(filename, 'r') as f:
    34. content = f.read()
    35. matrix_str = matrix_to_string(matrix)
    36. return matrix_str in content
    37. def matrix_exists(matrix, matrix_list):
    38. return any(all(matrix[row][col] == m[row][col] for col in range(3) for row in range(3)) for m in matrix_list)
    39. def main():
    40. if not os.path.exists('ds.txt'):
    41. with open('ds.txt', 'w') as f:
    42. pass
    43. A = []
    44. count = 0
    45. Check2("ds.txt")
    46. while count < 514:
    47. matrix = generate_matrix()
    48. if matrix_exists(matrix, A):
    49. count += 1
    50. continue
    51. if matrix_exists_in_file(matrix, 'ds.txt'):
    52. count += 1
    53. continue
    54. if Check2()<0:
    55. count +=1
    56. continue
    57. count = 0
    58. A.append(matrix)
    59. print(matrix_to_string(matrix))
    60. target = input("请输入对应的target标签:")
    61. with open('ds.txt', 'a') as f:
    62. f.write(matrix_to_string(matrix) + '\n')
    63. f.write(f'T[i]={target}\n')
    64. print("完成!")
    65. if __name__ == "__main__":
    66. print(Check2()) # 添加此行以测试Check2函数
    67. main()

    数据集的例子如下:

    1. 011
    2. 110
    3. 011
    4. T[i]=c
    5. 101
    6. 011
    7. 111
    8. T[i]=]
    9. 100
    10. 001
    11. 111
    12. T[i]=>
    13. 101
    14. 110
    15. 111
    16. T[i]=C
    17. 011
    18. 100
    19. 101
    20. T[i]=c
    21. 101
    22. 000
    23. 111
    24. T[i]==
    25. 011
    26. 001
    27. 101
    28. T[i]=)
    29. 011
    30. 000
    31. 111
    32. T[i]==
    33. 001
    34. 111
    35. 100
    36. T[i]=+
    37. 011
    38. 010
    39. 010
    40. T[i]=1
    41. 001
    42. 010
    43. 111
    44. T[i]=2
    45. 111
    46. 001
    47. 000
    48. T[i]=7
    49. 010
    50. 101
    51. 011
    52. T[i]=0
    53. 010
    54. 100
    55. 111
    56. T[i]=l
    57. 000
    58. 111
    59. 100
    60. T[i]=2
    61. 010
    62. 011
    63. 101
    64. T[i]=+
    65. 111
    66. 111
    67. 010
    68. T[i]=9
    69. 101
    70. 100
    71. 010
    72. T[i]=1
    73. 110
    74. 000
    75. 110
    76. T[i]==
    77. 111
    78. 010
    79. 000
    80. T[i]=7
    81. 010
    82. 100
    83. 010
    84. T[i]=1
    85. 001
    86. 101
    87. 110
    88. T[i]=j
    89. 100
    90. 101
    91. 101
    92. T[i]=U
    93. 010
    94. 110
    95. 001
    96. T[i]=1
    97. 111
    98. 010
    99. 010
    100. T[i]=7
    101. 011
    102. 111
    103. 001
    104. T[i]=7
    105. 001
    106. 010
    107. 011
    108. T[i]=1
    109. 100
    110. 111
    111. 100
    112. T[i]=+
    113. 000
    114. 100
    115. 011
    116. T[i]=_
    117. 110
    118. 000
    119. 111
    120. T[i]==
    121. 101
    122. 010
    123. 001
    124. T[i]=Y
    125. 100
    126. 010
    127. 001
    128. T[i]=\
    129. 000
    130. 001
    131. 110
    132. T[i]=,
    133. 110
    134. 110
    135. 000
    136. T[i]=@
    137. 000
    138. 001
    139. 010
    140. T[i]=,
    141. 011
    142. 111
    143. 100
    144. T[i]=f
    145. 111
    146. 110
    147. 100
    148. T[i]=【
    149. 101
    150. 110
    151. 101
    152. T[i]=C
    153. 100
    154. 001
    155. 100
    156. T[i]=!
    157. 000
    158. 011
    159. 011
    160. T[i]=。
    161. 011
    162. 011
    163. 101
    164. T[i]=#
    165. 110
    166. 001
    167. 010
    168. T[i]=7
    169. 000
    170. 110
    171. 111
    172. T[i]=z
    173. 001
    174. 101
    175. 011
    176. T[i]=J
    177. 011
    178. 100
    179. 011
    180. T[i]=C
    181. 010
    182. 111
    183. 001
    184. T[i]=+
    185. 110
    186. 101
    187. 011
    188. T[i]=O
    189. 110
    190. 101
    191. 000
    192. T[i]=n
    193. 101
    194. 010
    195. 000
    196. T[i]=v
    197. 111
    198. 011
    199. 110
    200. T[i]=7
    201. 000
    202. 100
    203. 001
    204. T[i]=\
    205. 101
    206. 011
    207. 110
    208. T[i]=Y
    209. 111
    210. 100
    211. 110
    212. T[i]=c
    213. 110
    214. 111
    215. 010
    216. T[i]=+
    217. 010
    218. 000
    219. 110
    220. T[i]==
    221. 111
    222. 100
    223. 100
    224. T[i]=C
    225. 101
    226. 000
    227. 101
    228. T[i]=x
    229. 010
    230. 010
    231. 001
    232. T[i]=1
    233. 110
    234. 010
    235. 100
    236. T[i]=7
    237. 001
    238. 100
    239. 100
    240. T[i]=1
    241. 010
    242. 010
    243. 111
    244. T[i]=┴

  • 相关阅读:
    Java反射获取内部类方法
    Linux命令(100)之sz
    新手最容易触发的10个PHP语言Bug分享
    屏幕距离识别加语音提醒
    ESP32 Arduino实战协议篇-BLE 服务端实现温度和湿度数据传输
    解决下拉菜单的过渡问题
    signal 处理函数使用
    Qt Creato配置PCL库
    示波器电流探头消磁如何正确操作
    Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系
  • 原文地址:https://blog.csdn.net/aw344/article/details/134068185