#!/usr/bin/perl use strict; use Getopt::Std; our $opt_l; getopts('l'); # my $s = "results/exp:03_responses-frame_sizes:8,2-n_rnn:2-dataset:03_responses/checkpoints/best-ep1-it1035"; sub process($){ my ($dir) = @_; my @exp = split(":", $dir); my $name = $exp[4]; my $ep; my $path = "results/" . $dir . "/"; my $chex = $path . "checkpoints/"; return 0 unless -e $chex; opendir DIR, $chex or die $!; while (readdir DIR) { next unless /^ep/; $ep = $_; last; } closedir DIR; my @epoch = split("-", $ep); $name .= "-" . $epoch[0]; if (! $epoch[0]) { return 0; } if (-e "output/" . $name . ".mp3") { return 1; } print $name . "\n"; if (!$opt_l) { return 0; } print "\n"; print "_______________________________________________________________\n"; print "\n"; system('/bin/bash', 'mix.sh', $path, $name); return 0; } opendir RESULTS, ("results/") or die $!; my @results = sort {(stat $a)[10] <=> (stat $b)[10]} readdir(RESULTS); closedir RESULTS; for my $result (@results) { next if $result !~ /exp:/; my $rv = process($result); #last if $rv; }