|
@@ -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)'
|