From 45caa1c16e7b94dbf8745f35564b10179b46b92a Mon Sep 17 00:00:00 2001 From: reimannsum Date: Fri, 30 Oct 2015 11:37:20 -0400 Subject: [PATCH 1/3] Update cardlib.py Adding formatting to the format() function to allow for html output --- lib/cardlib.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/lib/cardlib.py b/lib/cardlib.py index 3478fcc..75dca7f 100644 --- a/lib/cardlib.py +++ b/lib/cardlib.py @@ -553,7 +553,7 @@ class Card: return outstr - def format(self, gatherer = False, for_forum = False, for_mse = False, vdump = False): + def format(self, gatherer = False, for_forum = False, for_mse = False, vdump = False, for_html = False): outstr = '' if gatherer: cardname = titlecase(transforms.name_unpass_1_dashes(self.__dict__[field_name])) @@ -634,6 +634,60 @@ class Card: outstr += '[/i]' outstr += '\n' + elif for_html: + outstr += '
' + cardname = self.__dict__[field_name] + #cardname = transforms.name_unpass_1_dashes(self.__dict__[field_name]) + outstr += "
" + cardname + "
" + if self.__dict__[field_rarity]: + if self.__dict__[field_rarity] in utils.json_rarity_unmap: + rarity = utils.json_rarity_unmap[self.__dict__[field_rarity]] + else: + rarity = self.__dict__[field_rarity] + outstr += ' (' + rarity.lower() + ')' + outstr += '\n' + + # I need the simple formatting with '{' + coststr = self.__dict__[field_cost].format() + if vdump or not coststr == '_NOCOST_': + outstr += coststr.replace("/","-").replace("{",'') + outstr += '\n' + + outstr += ' '.join(self.__dict__[field_supertypes] + self.__dict__[field_types]) + if self.__dict__[field_subtypes]: + outstr += ' ' + utils.dash_marker + ' ' + ' '.join(self.__dict__[field_subtypes]) + outstr += '\n' + + if self.__dict__[field_text].text: + mtext = self.__dict__[field_text].text + mtext = transforms.text_unpass_1_choice(mtext, delimit = True) + #mtext = transforms.text_unpass_2_counters(mtext) + #mtext = transforms.text_unpass_3_uncast(mtext) + mtext = transforms.text_unpass_4_unary(mtext) + mtext = transforms.text_unpass_5_symbols(mtext, for_forum) + #mtext = transforms.text_unpass_6_cardname(mtext, cardname) + mtext = transforms.text_unpass_7_newlines(mtext) + #mtext = transforms.text_unpass_8_unicode(mtext) + newtext = Manatext('') + newtext.text = mtext + newtext.costs = self.__dict__[field_text].costs + outstr += newtext.format().replace("/","-").replace("{",'') + '\n' + + if self.__dict__[field_pt]: + outstr += '(' + utils.from_unary(self.__dict__[field_pt]) + ')' + outstr += '\n' + + if self.__dict__[field_loyalty]: + outstr += '((' + utils.from_unary(self.__dict__[field_loyalty]) + '))' + outstr += '\n' + + if vdump and self.__dict__[field_other]: + outstr += utils.dash_marker * 2 + outstr += '\n' + for idx, value in self.__dict__[field_other]: + outstr += '<' + str(idx) + '> ' + str(value) + outstr += '\n' + else: cardname = self.__dict__[field_name] #cardname = transforms.name_unpass_1_dashes(self.__dict__[field_name]) @@ -694,7 +748,10 @@ class Card: outstr += '\n' if self.bside: - outstr += utils.dash_marker * 8 + '\n' + if for_html: + outstr += "
\n" + else: + outstr += utils.dash_marker * 8 + '\n' outstr += self.bside.format(gatherer = gatherer, for_forum = for_forum) return outstr From fb62978e195706d69426aa4e82b93988397092ff Mon Sep 17 00:00:00 2001 From: reimannsum Date: Fri, 30 Oct 2015 12:02:21 -0400 Subject: [PATCH 2/3] Create make_output.sh script to sample every checkpoint, only if not training, then rsync to remote location --- scripts/crons/make_output.sh | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts/crons/make_output.sh diff --git a/scripts/crons/make_output.sh b/scripts/crons/make_output.sh new file mode 100644 index 0000000..5f58e1b --- /dev/null +++ b/scripts/crons/make_output.sh @@ -0,0 +1,47 @@ +#!/bin/bash +#every 30 min + +rnn_home=~/mtg-rnn +output_home=~/mtgencode/cards + +# setting output parameters +length=10000 +temperature=0.5 + +## */30 * * * * ~/mtgencode/scripts/crons/make_output.sh +if [[ $(pgrep -l 'luajit' | sed s/'[0-9]* '// ) =~ 'luajit' ]]; then + echo Training running, exiting cron + exit 0 +fi + +cd $rnn_home + +for folder in $( ls cv); do + echo $folder + #I have my folders labeled by' {data_dir}-{rnn_size}_{dropout}" +# I can't decide of I want to remove {rnn_size} and {dropout} from output +#folder name +## dir_name=$(echo $folder | sed s/-[1-9][1-9][1-9]_0.[0-9]*//g) + dir_name=$folder + if [ ! -e $output_home/$dir_name ]; then + mkdir $output_home/$dir_name + fi + for file in $( ls cv/$folder); do + o_file=$(echo $file | sed s/lm_lstm_epoch/e/) + o_file=$(echo ${o_file} | sed s/_[0-9].[0-9]*//g) + o_file=$(echo ${o_file} | sed s/.t7//) + o_file=$(echo ${o_file}-${temperature}) + #if file exists don't make a new one + if [ -e $output_home/$dir_name/$o_file/output.txt ];then + #echo "output for $file already exists" + continue + fi + #if the directory doesn't exist make it + if [ ! -e ./$output_home/$dir_name/$o_file ]; then + mkdir $output_home/$dir_name/$o_file + fi + th $rnn_home/sample_hs_v3.lua cv/$folder/$file -gpuid -1 -temperature $temperature -length $length | tee $output_home/$dir_name/$o_file/output.txt + done +done +# rsync to remote storage device +rsync -hruv -e 'ssh -p 2022' $output_home/mtgencode/cards/ host@ip:/mtgencode/cards From 6a1872ccf4fd6cf4527411eb292629b8c930f63e Mon Sep 17 00:00:00 2001 From: reimannsum Date: Fri, 30 Oct 2015 12:05:15 -0400 Subject: [PATCH 3/3] Create process_output.sh script to format ans summarize each output in the cards directory --- scripts/crons/process_output.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 scripts/crons/process_output.sh diff --git a/scripts/crons/process_output.sh b/scripts/crons/process_output.sh new file mode 100644 index 0000000..631e28f --- /dev/null +++ b/scripts/crons/process_output.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# every 5 min + +## */30 * * * * ~/mtgencode/scripts/crons/process_output.sh + +cd ~/mtgencode/cards + +for folder in $(ls); do + for sub in ${ ls ${folder} };do + if [ ! -e $folder/$sub/summary.txt ]; then + ./scritps/summarize.py -a -v $folder/$sub/output.txt > summary.txt + fi + if [ ! -e $folder/$sub/cards.txt ]; then + .decode.py -v -f $folder/$sub/output.txt $folder/$sub/cards.txt + fi + done +done