Browse Source

Add a save animation option and a try to dedup the turmit we keep

Yann Weber 6 years ago
parent
commit
0015a5347a
1 changed files with 11 additions and 3 deletions
  1. 11
    3
      gte/__main__.py

+ 11
- 3
gte/__main__.py View File

@@ -87,6 +87,10 @@ parser_gen = subparsers.add_parser('generate', help='evolving help')
87 87
 
88 88
 parser_gen.add_argument('--prog', '-P', type=str, default=None)
89 89
 parser_gen.add_argument('--output', '-o', type=str, default='gte.png')
90
+parser_gen.add_argument('--output-dir', '-A', type=str, default=None,
91
+                        help="Save images for animation in this directory")
92
+parser_gen.add_argument('--anim-div', '-D', type=int, default=2,
93
+                        help='Save all X images (default 2) when -O given')
90 94
 parser_gen.add_argument('--world-height', '-y', type=int, metavar='HEIGHT',
91 95
                         default=512)
92 96
 parser_gen.add_argument('--world-width', '-x', type=int, metavar='WIDTH',
@@ -197,6 +201,10 @@ if 'pool_size' in args:
197 201
         keep_div = args.pool_div
198 202
         progs = []
199 203
         for prog in [ prog for _, prog, _ in scores[:len(scores)//keep_div]]:
204
+            for p2 in progs:
205
+                if prog == p2:
206
+                    prog = mutate(prog, force=True)
207
+                    break
200 208
             progs.append(prog)
201 209
             for cur_mut in range(keep_div - 1):
202 210
                 if args.exp_mutate:
@@ -229,9 +237,9 @@ else:
229 237
             logger.info(msg)
230 238
         for turmit in turmits:
231 239
             turmit()
232
-        #if step % 2 == 0:
233
-        #    #w.save('/tmp/anim/GTE_ANIM_%d.png' % (step/10))
234
-        #    w.save('/tmp/anim/GTE_ANIM_%d.png' % (step/2))
240
+        if args.output_dir is not None and step % args.anim_div == 0:
241
+            #w.save('/tmp/anim/GTE_ANIM_%d.png' % (step/10))
242
+            w.save('/tmp/anim/GTE_ANIM_%d.png' % (step/args.anim_div))
235 243
     stop = time.time()
236 244
 
237 245
     msg = 'Fractdim %.3f after %d steps in %.2fs (%dus per step)'

Loading…
Cancel
Save