Contents

We train an LSTM with gumbel-sigmoid gates on a toy language modelling problem. Such LSTM can than be binarized to reach signifficantly greater speed.


In [1]:
%env THEANO_FLAGS="device=gpu3"


env: THEANO_FLAGS="device=gpu3"

In [2]:
import numpy as np
import theano
import theano.tensor as T
import lasagne
import os


Using gpu device 3: GeForce GTX 1080 (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5105)

Generate mtg cards

  • Regular RNN language modelling done by LSTM with "binary" gates

In [3]:
start_token = " "

with open("mtg_card_names.txt") as f:
    names = f.read()[:-1].split('\n')
    names = [start_token+name for name in names]

In [4]:
print 'n samples = ',len(names)
for x in names[::1000]:
    print x


n samples =  16714
 [1G] Instant: Moonmist
 [None] Land: Crystal Quarry
 [3GW] Legendary Enchantment Creature, God: Karametra, God of Harvests
 [2R] Creature, Human Rogue: Spireside Infiltrator
 [3R] Creature, Human Archer: Mardu Heart-Piercer
 [UB] Creature, Spirit: Dimir Infiltrator
 [2UU] Creature, Human Wizard: Lunar Mystic
 [3R] Creature, Goblin Artificer: Krark-Clan Engineers
 [4GG] Creature, Elemental Warrior: Root-Kin Ally
 [None] Land: Ancient Tomb
 [None] Plane, Ulgrotha: The Dark Barony
 [3U] Creature, Bird Wizard: Aven Fogbringer
 [5R] Creature, Djinn: Halam Djinn
 [3WW] Creature, Human: Veteran Bodyguard
 [2RRR] Creature, Human Berserker: Aerathi Berserker
 [None] Legendary Creature, Eldrazi Angel: Brisela, Voice of Nightmares
 [2U] Creature, Human Wizard: Apprentice Sorcerer

Text processing


In [5]:
#all unique characters go here
token_set = set()
for name in names:
    for letter in name:
        token_set.add(letter)

tokens = list(token_set)

print 'n_tokens = ',len(tokens)


n_tokens =  78

In [6]:
#!token_to_id = <dictionary of symbol -> its identifier (index in tokens list)>
token_to_id = {t:i for i,t in enumerate(tokens) }

#!id_to_token = < dictionary of symbol identifier -> symbol itself>
id_to_token = {i:t for i,t in enumerate(tokens)}

In [7]:
import matplotlib.pyplot as plt
%matplotlib inline
plt.hist(map(len,names),bins=25);

# truncate names longer than MAX_LEN characters. 
MAX_LEN = min([60,max(list(map(len,names)))])
#ADJUST IF YOU ARE UP TO SOMETHING SERIOUS


Cast everything from symbols into identifiers


In [8]:
names_ix = list(map(lambda name: list(map(token_to_id.get,name)),names))


#crop long names and pad short ones
for i in range(len(names_ix)):
    names_ix[i] = names_ix[i][:MAX_LEN] #crop too long
    
    if len(names_ix[i]) < MAX_LEN:
        names_ix[i] += [token_to_id[" "]]*(MAX_LEN - len(names_ix[i])) #pad too short
        
assert len(set(map(len,names_ix)))==1

names_ix = np.array(names_ix)

Input variables


In [9]:
from agentnet import Recurrence
from lasagne.layers import *
from agentnet.memory import *
from agentnet.resolver import ProbabilisticResolver
from gumbel_sigmoid import GumbelSigmoid

In [10]:
sequence = T.matrix('token sequence','int64')

inputs = sequence[:,:-1]
targets = sequence[:,1:]


l_input_sequence = InputLayer(shape=(None, None),input_var=inputs)

Build NN

You'll be building a model that takes token sequence and predicts next tokens at each tick

This is basically equivalent to how rnn step was described in the lecture


In [11]:
###One step of rnn

class rnn:
    n_hid = 100
    
    #inputs
    inp = InputLayer((None,),name='current character')
    prev_cell = InputLayer((None,n_hid),name='previous lstm cell')
    prev_hid = InputLayer((None,n_hid),name='previous ltsm output')
    
    #recurrent part
    emb = EmbeddingLayer(inp, len(tokens), 30,name='emb')
    
    new_cell,new_hid = LSTMCell(prev_cell,prev_hid,emb,
                                name="rnn") 
    
    next_token_probas = DenseLayer(new_hid,len(tokens),nonlinearity=T.nnet.softmax)
    
    #pick next token from predicted probas
    next_token = ProbabilisticResolver(next_token_probas)

Loss && Training


In [12]:
training_loop = Recurrence(
    state_variables={rnn.new_hid:rnn.prev_hid,
                     rnn.new_cell:rnn.prev_cell},
    input_sequences={rnn.inp:l_input_sequence},
    tracked_outputs=[rnn.next_token_probas,],
    unroll_scan=False,
)


/anaconda3/envs/py27/lib/python2.7/site-packages/agentnet/agent/recurrence.py:188: UserWarning: State_variables recommended type is OrderedDict.
                Otherwise, order of agent state outputs from get_sessions and get_agent_reaction methods
                may depend on python configuration.

                Current order is: [<lasagne.layers.merge.ElemwiseMergeLayer object at 0x7fa19f6a5310>, <lasagne.layers.merge.ElemwiseMergeLayer object at 0x7fa19f6a5650>]
                You may find OrderedDict in standard collections module: from collections import OrderedDict
                
  """.format(state_variables=list(self.state_variables.keys())))
/anaconda3/envs/py27/lib/python2.7/site-packages/agentnet/agent/recurrence.py:300: UserWarning: You are giving Recurrence an input sequence of undefined length (None).
Make sure it is always above <unspecified>(n_steps) you specified for recurrence
  "Make sure it is always above {}(n_steps) you specified for recurrence".format(n_steps or "<unspecified>"))

In [13]:
# Model weights
weights = lasagne.layers.get_all_params(training_loop,trainable=True)
print weights


[emb.W, rnn.b_to_ingate, rnn.W_previous ltsm output_to_ingate, rnn.W_emb_to_ingate, rnn.b_to_forgetgate, rnn.W_previous ltsm output_to_forgetgate, rnn.W_emb_to_forgetgate, rnn.b_to_cell, rnn.W_previous ltsm output_to_cell, rnn.W_emb_to_cell, rnn.b_to_outgate, rnn.W_previous ltsm output_to_outgate, rnn.W_emb_to_outgate, rnn.W_cell_to_ingate_peephole.scales, rnn.W_cell_to_forgetgate_peephole.scales, rnn.W_cell_to_outgate_peephole.scales, W, b]

In [14]:
predicted_probabilities = lasagne.layers.get_output(training_loop[rnn.next_token_probas])
#If you use dropout do not forget to create deterministic version for evaluation

loss = lasagne.objectives.categorical_crossentropy(predicted_probabilities.reshape((-1,len(tokens))),
                                                   targets.reshape((-1,))).mean()
#<Loss function - a simple categorical crossentropy will do, maybe add some regularizer>

updates = lasagne.updates.adam(loss,weights)

In [15]:
#training
train_step = theano.function([sequence], loss,
                             updates=training_loop.get_automatic_updates()+updates)

generation

here we re-wire the recurrent network so that it's output is fed back to it's input


In [16]:
n_steps = T.scalar(dtype='int32')
feedback_loop = Recurrence(
    state_variables={rnn.new_cell:rnn.prev_cell,
                     rnn.new_hid:rnn.prev_hid,
                     rnn.next_token:rnn.inp},
    tracked_outputs=[rnn.next_token_probas,],
    batch_size=1,
    n_steps=n_steps,
    unroll_scan=False,
)
generated_tokens = get_output(feedback_loop[rnn.next_token])
generate_sample = theano.function([n_steps],generated_tokens,updates=feedback_loop.get_automatic_updates())


/anaconda3/envs/py27/lib/python2.7/site-packages/agentnet/agent/recurrence.py:188: UserWarning: State_variables recommended type is OrderedDict.
                Otherwise, order of agent state outputs from get_sessions and get_agent_reaction methods
                may depend on python configuration.

                Current order is: [<lasagne.layers.merge.ElemwiseMergeLayer object at 0x7fa19f6a5310>, <lasagne.layers.merge.ElemwiseMergeLayer object at 0x7fa19f6a5650>, <agentnet.resolver.probabilistic.ProbabilisticResolver object at 0x7fa19f6a5c10>]
                You may find OrderedDict in standard collections module: from collections import OrderedDict
                
  """.format(state_variables=list(self.state_variables.keys())))
/anaconda3/envs/py27/lib/python2.7/site-packages/agentnet/agent/recurrence.py:592: UserWarning: Warning: recurrent loop without unroll_scan got nonempty random state updates list. That happened because there is some source of randomness (e.g. dropout) inside recurrent step graph. To compile such graph, one must either call .get_automatic_updates() right after .get_output and pass these updates to a function, or use no_defalt_updates=True when compiling theano.function.
  warn("Warning: recurrent loop without unroll_scan got nonempty random state updates list. That happened"

In [17]:
def generate_string(length=MAX_LEN):
    output_indices = generate_sample(length)[0]
    
    return ''.join(tokens[i] for i in output_indices)

In [18]:
generate_string()


Out[18]:
'i,!pC6WgxJ,eGR)hJ\'myK6qttUZe2!wzLOu!uUEh[? "),8dYy,rN56Lb/]d'

Model training

Here you can tweak parameters or insert your generation function

Once something word-like starts generating, try increasing seq_length


In [19]:
def sample_batch(data, batch_size):
    
    rows = data[np.random.randint(0,len(data),size=batch_size)]
    
    return rows

In [20]:
print("Training ...")


#total N iterations
n_epochs=100

# how many minibatches are there in the epoch 
batches_per_epoch = 500

#how many training sequences are processed in a single function call
batch_size=32

loss_history = []

for epoch in xrange(n_epochs):
    avg_cost = 0;
    for _ in range(batches_per_epoch):
        
        avg_cost += train_step(sample_batch(names_ix,batch_size))
    
    loss_history.append(avg_cost)
    print("\n\nEpoch {} average loss = {}".format(epoch, avg_cost / batches_per_epoch))

    print "Generated names"
    for i in range(10):
        print generate_string(),


Training ...


Epoch 0 average loss = 2.28611750913
Generated names
P/3Hy,Ther,Tmfa:Cin BramcFre Go,                             ,1Br]i]RerntfteraurldhMirrteltt Lurani,                      hb[AnajyOr3Lisannn H,Kegecceade,Bhrnmlu,                     )yNzPra8lGAafueswtryVxyAtowsanGGltg: BolreiurtgelBs Cnsch  G F.o [CnrlulNoect UCtaiN,HatmtasE: Tlilan og:                 JikGg12[P]   Cerr Caeenu:       eeaucytayywhtrtotn:          83L]R Hnmetervu, Cn Wgheoiec Sw  Saoneauern                  kAmrfPpt 2RW]Sotnayh] Ceag   Erameelrndeonger ,evo           xA:5UBRurnlo,GOn:o:CnsaawlQ:s Hert Heretetaky   G            Drd4[Irr-Cu'pa  Aclmte,httbmul  G                            

Epoch 1 average loss = 1.42864778042
Generated names
3[3 B] Creasmuny Bulm Haltas Hreldonliwi'r Satentus          [[5B] Instcant: Nqur Fastaos Ins Rumag                       [3N] CrefParms  Zofanh Dowpar More                           )THcetarene, Gilean Suldnhhore: Hralmhtyand                  21V] Creature,  Hun                                          F [G]Urogely:Cntan Patd: Tond Roru Lastat                    G14En] Woscare, Byollil:ilrl:oemeeser                        ArxlRWthent:Harm: Erolan Cpagcem Magltias                    7hB]onene,T,elerp: Arldmlinin:                               B2U] Areatu, Wrenat Arerr Apitenentomt Iucus  oorsde         

Epoch 2 average loss = 1.10512577009
Generated names
[2G] Creature, Lilotur: Hrarohsstan Holuveti                 [1BB] Creature, Speid Wicder: Drerd Savaddort                [1GGR] Enchantment: Ragiste Dhadd                            [3BB] Sheccentyment Cretees Sparg: Viatatilax  Lereangas      [B] Sorcirame, Dear: Wiva Nrans                             [RB] Crature, Mamant: Shenfact Hurchpas                      [4GWW]Gg Creature, Zead Bing Menker Moruie: Cagu Desersgarc  [2R] Creature, Phanat: Farni Gilh Metall                     [3R] Creature, Endaltar: Drare,saolk Brl ofsibotien          [2BWG] Instant: Ve Me Mrekavl Shandii                        

Epoch 3 average loss = 0.991675294042
Generated names
[1] Artifact: Guord Sozeris Bare                             [2W] Creatur Spaert: Waymok Shaver Hherfiegh                 [Instant, Voman Wolbr Rorer Wizarr: Teliid's Patriper        [W] Preature, Crast, Waayd: Stallge Suges                    [3U] Creature, Harcherd: Meakos Elfami                       [UGR] Legendany Creature, Jeric Kerin: Sotrard Cer olf       [2GW] Loneny Cature, Srig Cicim: Spivlintingif               [5U] Creature, Toris Warrelmacs: Beraiwas Noulo              [3WR] Creature, Srizind: Spid Menga Crad                     [[GG PlUr Efchactment: Hura Phen of Dorekinne                

Epoch 4 average loss = 0.922527974129
Generated names
[3W] Creature, Bomf: Croupix Fart                            [None] Land Creara: Firct Ahticer                            [4BR] Creature, Eme: Ginfol Bofary                           [4UR] Instant: Ploling Linge                                 [1RR] Instant: Shria's                                       [W] Artifact Creature, Nalke: Lotsoran of thensy             [1BB] Sorcery: Aror  Elerophes                               [UW] Creature, Human: Gpate thestor                          [10U] Instant: Tomastar Clat                                 [3W] Priature, Hurd, Scorx: Pracoan Bat Aurtt                

Epoch 5 average loss = 0.878150575399
Generated names
[5UU] Sorcery: Waltu of Pive                                 [1B] Creature, Human Wizardor: Drvoisr Femanes               [2RUR] Creature, Halme: Langpht Nece Actoripx                [4B] Ligendary Creature, Ansak: Archyra Fizes                [2GR] Enchantment, Aura: Gify Pmat inve                      [2B] Creature, Human Keon: Suseste of Alyk                   [UUU] Instant: Ememanka'sagt                                 [1U] Creature, In Sctecet: of Qeboy Briperaur                [5U] Enchantment: Lall of thidrod                            [1BG] Creature, Beap: Loblion of Cumart                      

Epoch 6 average loss = 0.847644655347
Generated names
[3GW] Sloncery: Curittre                                     [3GG] Creature, Gorsoul: Grach Grae                          [ A] Instant: Merel Stis                                     [1W] Creature, Plact: Arsherdre, Dodetinep                   [U] Instant: Ronvae'f Mumertide                              3U] Enchantment: Glarvalle Somberagd                         [5RR] Sorcery: Foghts                                        [4R] Enchantment: Noxmar Cliturmoer                          [Nere]ant, Crirer: Bearar of Recre                           [3W] Instant: Wataut Indach                                  

Epoch 7 average loss = 0.82599880302
Generated names
[3UU] Instant: Fourdra Arer                                  12RG] Creature, Elemental: Flonderif Fore                    [Noane  1B] Instant: Donde Ralers                            [2UB] Creature, Spirit: Hollmad Holl                         [3] Artifact: Screa Shine                                    [2] Artifact: Vustime Ceeneer                                [1W] Sorcery: Rerl Hase                                      [4GG] Sorcery: Chralmourd Indagh                             [TUB] Legendary: Brominal                                    [3UU] Sorcery: Rovit Warre                                   

Epoch 8 average loss = 0.806004906178
Generated names
[2R] Enchantment, Aera Latior: Infermon Loodersspathi        [3] Artifact Creana, Light: Jeebilic Slosur Agadint          [2U] Instant: Gidlery Corphy                                 [None] Vangupary: Ocker Seramengard                          [W] Instant: Comble He Andiser                               [3] Artifact: Esheraning Sligherone                          [5] Creature, Human Rold All: Ligur-Warceue Simmreng         [2BB] SWorccary, Aurm: Hirdound                              [2U] Creature, Trefolk: Flutssanie Aseagon                   [3U] Sorw Creature, Wadre: Brishud Saktnign                  

Epoch 9 average loss = 0.789666692376
Generated names
[2U Bone] Legand Creature Cature, Golem: Oagebe Forbiast     [4B] Sorcery: Caragh tean                                    [1W] Sorcery: Borge Pandion                                  [XR] Enchantment: Drnewlander of Bait                        [1G] Creature, Beast: Innien's Waunds                        [1RWW] Legendary Creature, Spird Soldier: Syyclewatian Porli [BR] Creature, Cap Scyratar Cleric: Cinglx of Juzzess        [3] Artifact: Anvillising Flammite                           [5UB] Legendary Creature, Elf Soldier: Wirr of the Achersom  [3G] Enchantment, Aury: Rarge the Crutess                    

Epoch 10 average loss = 0.776844120264
Generated names
[2U] Legendary Creature, Golem: Mycla Rec                    [5] Artifact: Dikingessifiel Cultroy                         [5G] Creature, Mitorid Cleric: Rabled Bill                   [None] Instant: Beanter's Cat                                [2UB] Legendary Creatur Eldrald Caturure, Goleman: Avawning  [1Ron] Sorcery: Impiarh tarfie                               [None] Land, Selva: Stemit Serbu                             [1BBB] Creature, Elf: Dinges Malf Maghendord                 [1BW] Creature, Human Wilisar: Liarine Hower                 [UU] Creature, Human Wizard: Ascownnapm                      

Epoch 11 average loss = 0.763727202058
Generated names
[1U] Instant: Vemodicnutif tru the Indeaty                   [2U] Creature, Angolus: Ex Rbachine Weblardomb               [3W] Creature, Atbold: Elf Redecatless                       [1R] Instant: Brours of Cunes                                [3B] Creature, Beast: Borsize Neagal                         [3B] Creature, Goblen Skiner: Blitalan Dunteer               [R] Instant: Tyertic Rreads                                  [1U] Instant: Furmshati of Deethast                          [3B] Instant: Edchelowing                                    [B] Enchantment, Aura: Cramari of Regh                       

Epoch 12 average loss = 0.75967630899
Generated names
[1U] Enchantment: Mevilitic Renowar                          [5W] Enchantment, Aura: Goblin Andlaon                       [3G] Instant: Scourrel Erpile                                [6G] Legendary Creature, Spari Cors: Lexier of Lenotura      [3W] Enchantment: Fellocka                                   [1U] Instant: Salinator Champtan                             [4W] Instant: Comindeaie                                     W] Creuture, Human Soldier: Dryssan Beel                     [None] Land: Darsha Fathlest                                 [2U] Instant: Ronge Ovon                                     

Epoch 13 average loss = 0.743934479594
Generated names
[4B] Creature, Elemental: Plistracte of Chant                [G] Creature, Cat: Kyrgle Recter                             [5U] Enchantment: Mivebry Barras                             [3GG] Legendary Creature, Griffin: Talano-Kint Knagon        [G] Creature, Knightrenker: Apovires Conche-Nete             [1UU] Instant: Nadnfultes                                    [None] Angiqaq9ake: Hare of Kestbacian                       [3RR] Creature, Griff: Pabning Drimer                        [3Bl] Creature, Dragun: Toat of Krocterve Kangh              [3UUU] Creature, Cact: Tederal Atts                          

Epoch 14 average loss = 0.736631927133
Generated names
[1R] Instant: Cire of Tomal                                  [4W] Creature, Biada Monser: Glamler tre Storeler            [3UR] Creature, Ovan: Armpal of Ved Inty                     [4BR] Creature, Gount: Dambiate Unokensen                    [4] Artifact, Equipment: Pat Light Grayn                     [3UU] Instant: Grock's Sharel                                [4BB] Instant: Fich Tniscs                                   [3R] Creature, Human Soldier: Tu Phouth                      [1R] Sorcery: Sepics Sannes                                  [3] Artifact: Elturals Row                                   

Epoch 15 average loss = 0.730036921024
Generated names
[5UU] Sorcery: Blund of Gener                                [G] Enchantment, Aura: Thuntaoding Scyamment                 [3B] Creature, Elfrazir: Xwirelin Serror's  Bordge           [3UU] Instant: Ichond Sanvery                                [None] Land: Kozy Nivarter                                   [1W] Enchantment: Rountous Eldsar                            [2R] Instant, Equipment: Ancalk Band                         [1U] Creature, Merfolk Warrior: Lige of Wohcerebes           [7BB] Creature, Cotstrizin: Couchermance                     [WW] Creature, Castilark Warris: Haverbard Spriker           

Epoch 16 average loss = 0.727936502457
Generated names
[1G] Sorcery: Yocuse the Trach                               [2B] Instant: Ritianh Mersing                                41R] Creature, Goblin: Pana, Her of the Ondal Golem          [2BB] Creature, Goblis Berserker: Hindstiod Herader          [1RG] Enchantment: Sylicac.Vass                              3WW] Legendary Creature, Vambri, Monkaus: Hlor-Bealen Punal  [2G] Enchantment, Aura: Rani's Plaod                         [GG] Creature, Human Druin: Zeertfand Crond                  [R] Sorcery: Defand                                          [None] Legendary: Drazita the Beere                          

Epoch 17 average loss = 0.718152332187
Generated names
[3BB] Sorcery: Slivin's Mesenssic                            [None] Land: Misson's Asqain                                 [2B/GU//W] Creature, Insect: Stone, Faia, the Trage          [7] Creature, Wolf: Rozerdonce Dragons                       [6] Artifact, Equipment: Catsh of the Bazurur Beest          [G] Instant: Streep of the Werokan                           [3W] Creature, Snabes: of Batternights                       [1G] Creature, Dread: Snaken Skyquitu                        [4W] Enchantment: Clome of Stiniking                         [3U] Creature, Human Werewolf: Bloss's Spyketer              

Epoch 18 average loss = 0.712474003911
Generated names
[2G] Legendary Creature, Human: Groon God Mimave             [1G] Instant: Outh'g Gome                                    [2U/GWG/G] Creature, Elephant Issitt: Tilet Reakiner         [2W] Pleaswyrwact, Equipment: Postemphory Header             [8B] Creature, Vedalken Druel Druin: Hamu Mrow               [1G] Instant: Cemberry                                       [4W] Creature, Spirit Shold: Hereretbermal                   [2GG] Legendary Creature, Human Soldiser: Clard of Oatis     [U] Creature, Huran: Culd of Brunx                           [None] Land: Stawar's Gromeran                               

Epoch 19 average loss = 0.70700493598
Generated names
[1WG] Creature, Human Eldrazi Warrior: Vigorexian Guidder    [None] Plane, Senomanal: Scaresune Avatar                    [1W] Instant: Speltenexience                                 [None] Creature, Merano Warrior: Lyfiss's Dien               [1G] Creature, Elf Shaman: Phoer Lither                      [1UU] Instant: Purs                                          [3R] Sorcery: Emmeliclact entrom                             [1B] Sorcery: Scine's Expone                                 [3U] Instant: Rakok's Croupherbane                           [3Ban] Creature, Wall: Carbleb Drake                         

Epoch 20 average loss = 0.70275747633
Generated names
[4U] Instant: Sunx                                           [3W] Enchantment: Polmbowns of Wafald                        [4RG] Creature, Grellt: Ryun Pome                            [4] Artifact: El-Dambiel Intukenger                          [XW] Creature, Kithka Ally: Tadatin of the Tountlem          [1G] Creature, Cat Artificer: Ican Pulrab the Hond-Tul       [6] Artifact Creature, Fereron: Holonial Ome                 [B] Creature, Diun: Murk of Holl                             [5R] Creature, Giant Spirit: Otadfuld Aryak                  [3RR] Creature, Merfolk Plagasie: Firess Sageer              

Epoch 21 average loss = 0.697764621496
Generated names
[5GG] Enchantment Creature, Horror: Jaghins                  [2W] Creature, Bird Warruror: Unireru, Spent of Fide         [4] Artifact Creature, Human: Hooth of Chovly                [4W] Enchantment, Aura: Scarks of the Veralis                [1B] Creature, Choven: Burnian Stalecato                     [5BB] Creature, Faerie: Spharks Volp                         [None] Land: Speellig Antic                                  [3G] Sorcery: Dimoranit                                      [3] Artifact: Parance                                        [B] Enchantment, Aura: Demerd                                

Epoch 22 average loss = 0.695963741779
Generated names
[2G] Instant: Reasiplize                                     [1U] Instant: Witch bolt                                     3G] Enchantment: Siner Guel                                  [2W] Creature, Kithkin Soldier: Aquisha                      [1U] Enchantment, Aura: Stell the Eders                      [R] Sorcery: Mind of the Reade                               [2G] Creature, ElfSalkicer: Elvess Vase Dolenta              [4R] Creature, Human: Mindian Tateplay                       [3B] Instant: Rix                                            [1WU] Creature, Horror: Spheetor Ballit                      

Epoch 23 average loss = 0.691208478451
Generated names
[2W] Enchantment: Adacost Vylent                             [R] Instant: Riftusp                                         [W] Instant: Ineckrax                                        [5] Artifact: Quipkric Rappity                               [2B] Creature, Human Wizard: Skystiesing Sladess             [U] Sorcery: Night of Bolods of Chast                        [GGGGW/B] Legendary: Brooms                                  [G] Creature, Centaur Spellshalker: Hadrodo, the Beamph      [R] Creature, Human Werewolf: Krove's Oumple                 [2B] Instant: Swints the Storm                               

Epoch 24 average loss = 0.686413415074
Generated names
[2W] Creature, Goblin: Corsei, the Djulizor Spearo           [1G] Instant: Ungerune                                       [3W] Sorcery: Riesh To Atchint                               [2W] Creature, Elephant: Pathen Elgoracker                   [4BB] Creature, Zombie: Durpleach War                        [1UU] Creature, Bird Spells: Cappangern Honger               [1W] Creature, Minth: Wineshrol Thorgen                      [3BB] Creature, Zox Noud Zombaid Berserker: Melining Furen   [1B] Sorcery: Marray Town                                    [4BR] Creature, Goblin Warrior Shaman: Troker Wollves        

Epoch 25 average loss = 0.682011527896
Generated names
[B] Creature, Serlen: Bherth Harrite                         [3BR] Creature, Weast: Jhent Beak                            3G] Enchantment: Compaval Spirit                             [2BWW] Legendary Creature, Kithkid: Sann, the Dromam         [1GG] Instant: Sive Goff                                     [5U] Creature, Sphinx: Instrigt Spelling                     [5GG] Sorcery: Paised Nyld                                   [2BB] Creature, Vampire Elempant Ally: Congergal of Itoss    [G] Creature, Goblin Rethercter: Meelled Spack               [None] Plane, Asspinn: Sinermanels                           

Epoch 26 average loss = 0.678058657169
Generated names
[3R] Creature, Spirit: Salacillerblagol                      [None] Land: Whel of Vott                                    [UU] Creature, Elemental: Drealtich Drake                    [2W] Sorcery, Arcane: Mystican Planor                        [1W] Enchantment, Aura: Swarkscrout                          [4BB] Enchantment: Blictalis Cryapercation                   [1U] Creature, Human Monc: Vussitine                         [4WW] Legendary Creature, Angel: Harlexi-o Mamirion          [4B] Creature, Illusion Spirit: Sadvane Hocker               None: Light Coquement                                        

Epoch 27 average loss = 0.67618815589
Generated names
[1B] Creature, Vapperin: Maulious Gongeeer                   [7BB] Sorcery: Rasm oat                                      [GU] Creature, Ogre Elemental: Wayash Ebestion               [3G] Sorcery: Hurking Chall                                  [1R] Sorcery: Dread's Initien                                [3B] Creature, Koblin Rogue: Ronast Pigar                    [1G] Enchantment, Aura: Depaling Sede                        [U/BB] Creature, Orc Soldier: Sencite Kashia                 [R] Enchantment: Silthy Retinyura                            [1B] Creature, Zombie Creic: Chipheard of Opertist           

Epoch 28 average loss = 0.671857315779
Generated names
[1B] Enchantment: Clests of Night Minex                      [1R] Artifact: Garght Con Guard                              [2B] Creatureue, Zombie Drake: Decroneiver                   [1U/R] Creature, Zommein: Grood Rie Thaws                    [2] Artifact, Laparior: Tatkiting the Deguted                [W] Sorcery: Storclat Toi                                    [1B] Creature, Dragon Shaman: Bladid Solchamie               [3W] Creature, Human Soldier: Furmalal Messedly              [None] Land: Hargelian Strip                                 [2W] Creature, Human Cleric: Charicorn Davulaer              

Epoch 29 average loss = 0.669555861712
Generated names
[2U] Creature, Feeshi Alt: Raer Hymon                        [2U] Creature, Feest Shaman: Morrerter Ord Foencer           [1W] Creature, Human Knight: Slivigite Graffin               [2W] Enchantment: Demal Infint                               [None] Land: Colvaw Ungrey                                   [R] Instant: Siren's Edformage                               [WU] Creature, Wall: Warw Woblem                             [1R] Instant, Arcane: Exure Condled                          [4G/U] Instant: Loxe of Pormention                           [RGWB] Enchantment: Rep's Fave                               

Epoch 30 average loss = 0.665903367639
Generated names
[1WW] Creature, Human Shaman: Harrum Ojewas's Earteve        [2GW] Creature, Wurm: Windern Weact                          [3BBB] Creature, Zombie: Nittomes                            [None] Land: Etheal Miggers                                  [None] Land: Ramed Clay                                      [2G] Creature, Human Warrior: Pruilect Bacturner             [3UU] Enchantment Creature, Rengon: Defilic Baunt-ushee      [1U] Creature, Human Soldier: Brished well-Du Guperation     [BB] Creature, Nog: Ghosk Trame                              [2W] Instant: Wills's Flo ?rastbold                          

Epoch 31 average loss = 0.662721822977
Generated names
[3UUU] Instant: Rhosksto Fage                                [2W] Enchantment: Dricks inticary                            [1B] Creature, Human Shaman: Prassed Assamasit               [3UU] Instant: Rewering the Arcist                           [W] Instant: Leach Carnist                                   [GU] Instant: Saman's Deming                                 [30GGG] Creature, Elemental: Tordic Worms                    [2W] Creature, Elephant: Lares Elemnant                      [U] Creature, Faerie Wizard: Morathen Herald                 [1R] Sorcery: Gild's Change                                  

Epoch 32 average loss = 0.660361127138
Generated names
[4U] Creature, Horror Wizard: Rout Reather                   [None] Vanguard: Nipus Reastophard                           [2W] Creature, Spirit: Sypring Sciftrath                     [1R] Sorcery: Scall of Kou's                                 [1U] Sorcery: Gacur of Alaps                                 [3W] Instant: Lodcawt Arch                                   [1U] Instant: Unsted Chone                                   [W] Enchantment, Aura: Dust frit Dister                      [R] Creature, Beast: Toothrozer                              [5W] Creature, Squipeshok: Reathlotar                        

Epoch 33 average loss = 0.659527430177
Generated names
[3B] Creature, Zombie Fighe: Mogle of Callerigs              [U] Creature, Barssukora Warrior: Pyrathle Harpern           [2U] Sorcery: Aven Shrings                                   [2B] Sorcery: Dreadminger                                    [4B] Sorcery: Blametle Eye                                   [2B] Enchantment: Learsfite Pight                            [2U] Enchantment, Aura: Dopninn                              [12] Artifact Creature, Wirm: Sein Ditchiser                 RW] Creature, Human Cleric: Cullic                           [GW] Enchantment, Aura: Fentor Defervent                     

Epoch 34 average loss = 0.656504530907
Generated names
[W] Creature, Human Monc Ally: Sumperie Garation             [2U] Instant: Pyrant                                         [RGW] Creature, Human Soldier: Bolywo-Missaur                [1] Artifact: Minobor Buttion                                [2R] Creature, Minotaur Horser: Archanteon Curnen            BBGGGGGG/G] Sorcery: Codescacl                               3G/W2/U] Legeatary Creature, Griffin: Thossan, Heerior: Asce [2GGU] Enchantment, Aura: Temphil's Fonge                    [None] Land: Equiston's Pyath                                [1B] Legendary Creature, Scoophin: Savairy, Poon of Forbon   

Epoch 35 average loss = 0.655750829458
Generated names
[0] Creature, Eldrazi: Phiders Thropler                      [1W] Instant: Javen Crusiky                                  [1G] Enchantment: Martict Spreater                           [1U] Enchantment: Whiel Torven                               [W] Instant: Fodalow Roffrey                                 [None] Land: Presa Leakcropcholly                            [3W] Creature, Human: Treadergan Lights                      [GU] Enchantment, Aura: Serenn Cload                         [1RR] Instant: Sunsalic Sand                                 [0G] Enchantment: Aperblate                                  

Epoch 36 average loss = 0.652018105507
Generated names
[W] Creature, Human Soldier: Liakmow Battle                  [2B] Creature, Human Wizard: VitIm Visiot                    [2U] Creature, Goblin Warrior: Equistbraver Acyle            [1W] Enchantment, Aura: Quest Sphenceon                      [3B] Creature, Skeleton: Dward Hush                          [1U] Instant, Arcane: Cropla                                 [None] Land: Tornal Preath                                   [5G] Creature, Chiph: Grave Sapper                           [None] Vanguard: Trapate Gricer                              [3UUU] Instant: Fabl's Endlate                               

Epoch 37 average loss = 0.648753300071
Generated names
[G] Creature, Confoly: Witchlencer Intrite                   [None] Creature, Eldrazi: Sunchamune Ous                     [3B] Sorcery: Skyx Groppe                                    [UU] Legendary Creature, Sliver: Veast of Densite            [None Anchant: Formal Gat                                    [3R] Creature, Goblin Warrior: Goblin Fenticous              [G] Instant: Drackless Eastance                              [2WU] Enchantment: Elvise Force                              [None] Land: Suns of Virarscing                              [3GG] Creature, Elemental: Altrial Golem                     

Epoch 38 average loss = 0.648577934384
Generated names
[2U] Creature, Fiss: Inchantspeeper of Krowler               [1RR] Enchantment, Aura: Barping Wavbripasper                [2WW] Creature, Human Cleric: Jizeev-Kimk Aven Abrentaner    6R] Legendary Creature, Goblin Warrior: Sprenetion's Karalas [GGGW] Enchantment: Paladuma                                 [7U/P] Creature, Shasoshos: Sicerh Sludder                   Mons Creitare, Thosser: Phyrow Reypeted                      [None] Land: Barized Fost                                    [2WW] Creature, Kithkin Artificer: Agar Brestord Abborateon  [2RRR] Creature, Elemental: Alixian Oath                     

Epoch 39 average loss = 0.644880880356
Generated names
[W] Instant: Darte                                           [U] Instant: Flow Warm                                       [GB] Creature, Insect: Felledi Huntress                      [1G] Enchantment, Aura: Phyrote Returem                      [None] Land: Vellung Cry wangr                                1W] Instant: Bomb Buin                                      [1U] Creature, Rat Wizard: Sworm Lifergareppear              [WG] Instant: Flabold                                        [XXG/U] Creature, Bird: Phyrex Kebir                         [2B] Enchantment, Aura: Sandory Ast                          

Epoch 40 average loss = 0.645054469585
Generated names
[1G] Creature, Troll Cleric: Elanodytwancen                  [2B] Creature, Ratment Horror: Cabalian Palad                [XRG] Instant: Weze's Gropery                                Nene: Emphitate                                              [3G] Creature, Elemental: Gesill Hereder                      1W] Instant: Daku Comptione                                 [B] Sorcery: Kanicratic Bove                                 [4WW] Legendary Enchant Enchant: Loctranish Recectilic       K] Sorlint, Auria: Homn bhate Vil                            [1UU] Enchantment, Aura: Mortace of Rinows                   

Epoch 41 average loss = 0.64225538218
Generated names
[W] Creature, Kor Soldier: Alang Vowelatt  Lide              [2WW] Sorcery, Arcane: Enquiteren the Encog Ethe             [2UU] Enchantment: Deynok Guand                              [G] Instant: Carfulled Dioper                                [2B] Creature, Skecter: Barrileform                          [X2B] Creature, aleren Gright: Benalwood Eids                [3U] Creature, Spykecr: Petreesnak                           4UUUg Creature, Elemental: Orywootwine Should                [XB] Creature, Elemental: Wip-Lighteniet Elder               [3G] Creature, Snake: Enclectlock Drakeer                    

Epoch 42 average loss = 0.640261902332
Generated names
[Nore] Planeshasp: Laveling Splitchcile                      [RWW] Creature, Elephant Scout: Stavatar of Earth Geecture    1U] Instant: Untem Guass                                    [1W] Creature, Giant Wizard: Miswig Blade                    [3WW] Creature, Angel: Loog Way                              [0] Artifact: Tichanx of taster's Desence                    [3GRW] Creature, Elemental: Cloodoll of Sutruip              [2R] Creature, Drake: Tothu Shrike                           [2B] Creature, Human Shaman: Soul treader                    [2WW] Enchantment: Auzeef Conering                           

Epoch 43 average loss = 0.638390966177
Generated names
 None Anthent: Invease                                       R] Creature, Goblin: Dugupe Guilduator                       RBR] Sorcery: Loke Storm                                     [G/ZGo/WW/U] Instant: Stand                                  [1B] Sorcery: Chouder and Reeshaus                           [None] Land: S. Neads' Lost                                  G] Artifact: Mools of the Fire Sode                          Noone, Nena: Curil Stonary                                   [None Anceatmen, Adron: Sanctue Iroptain                     S2U] Enchantment: Lone Batthion                              

Epoch 44 average loss = 0.636283928633
Generated names
[2G] Instant: Ralleix                                        UBlesstalk: Egedental Avengerstone                            None Ant]entant: Scivan Sengstefisite                       [1UU] Creature, Kraen Rogue: Zombie Kester                   [None] Land: Brazengal Marage                                [2UR] Enchantment: Stramby Fog                               [1U/R] Instant: Serve Moist                                  [1RR] Creature, Goblin Scout Warrior: Tottomagu Geather      [3B] Creature, Human Soldier: Speathrath Amble               [1W] Creature, Satir of Artifar: Koriano Ven Arbos           

Epoch 45 average loss = 0.632290551305
Generated names
[R] Creature, Human Wizard: Corplemoners                     Nons Bors: Beyper Sid Trought                                [1WW] Enchantment: Mi-Far Alperulat                          [G] Creature, Human Warrior: Pranx Asybreaker                [None] Legend: Glarine Worst                                 [WU] Enchantment: Flessous Snownind                          [1W] Creature, Human Cleric: Weathfald Patritch              [XXUBR] Planeswalker, Vecictor: Godamy Copbearcer            [W] Creature, Beast: Blocksing Pizate                        [1RR] Creature, Solbier: Talar Godow                         

Epoch 46 average loss = 0.631271572113
Generated names
[1G] Enchanthent, Equipment: Eilmand                         [5B] Creature, Human Wizard: Outerval                         None Anceatment, Nymphi: Brifecros of Elanos Ment           [W] Instant: Stungerwall                                     [4UUU] Creature, Avatar: Rillic Pitscore                     [2W/UW/UW/B/G] Creature, Spirit: Valaros, Trib Squastial     [2G] Instant: Crost the Hunter                               PrenwLond: Burring Fieldchane                                3None Anceatyryn: Syther Art                                  3B] Creature, Nightmare Shaman: Phyrewing Beaper            

Epoch 47 average loss = 0.629605828881
Generated names
[6U] Creature, Beast Whweizz: Carasiled Calanis              [None] Land: Temmor Temon                                    [2U] Creature, Shapeshifter: Mindbred Flame                  [ W] Enchantment, Aura: Arcraft of All                       [1R] Sorcery: Nairy Cutse                                    [2GW] Enchantment, Aura: Colisa Insorceud                    [None] Creature, Werewolf: Wolf Cratcaction                  [W] Creature, Huun: Artukal of Unkestore                     [RR/R/CG/RR/G] Sorcery: Deat                                 [W/B] Instant: Unewone                                       

Epoch 48 average loss = 0.62773617208
Generated names
[G] Creature, GoatMinken: Hossethan's Mumboth                [None] Land: Fentinnele Tree                                 [6BR] Sorcery: Commandarken                                  [1W] Enchantment, Aura: Tanaklish                            [None] Plane, Mystic Horr: Semplerguel Alegate               3G] Creature, Wuld: Ring Wredder                             [TGGG] Creature, Cat: Spirit Griffin                         [R] Instant: Akraword                                        [3GU] Enchantment, Aura: Fondy of the Skulkath               11] Artifact: Auzzary Arza                                   

Epoch 49 average loss = 0.629049289227
Generated names
 3R] Creature, Spider: Crersin Corrudian                     [2R] Creature, Ogre Warrior: Train Geaker                    [1R] Creature, Goblin Warrior: Mardenic Reckle               [1B] Creature, Scopprear: Lihion Arples                      [1U] Creature, Vedalken Artificer: Aborination Deader        [2WW] Legendary Creature, Angele: Traded Barady              [GGWU] Legendary Creature, Lizard: Thoraziworn's Pallie      [2W/W] Enchantment: Stonery Lortherdross                     G] Instant: Scorce                                           [2W] Creature, Spirit: Katathe Priest                        

Epoch 50 average loss = 0.626328319073
Generated names
[2G] Sorcery: Rabich of the Guild                            BRGW] Sorcery: Persent Opp                                   Nond Constryckeryrynyq: Kolin-Silver Ourdiclar               Mons Creature, Jellsham: Crumanner                           [RR] Creature, Human Warrior: Barfin Snowen                   None Bondshaner: Squill'caver Phy                           [R] Creature, Efreet: Soul Equist                             1B] Creature, Bairgur Warrior: Troctinelhsle Trencer        [1G] Creature, Elemental Shaman: Ogokar Mage                 [BB] Creature, Sorcorstat: Defriding Creechos                

Epoch 51 average loss = 0.623037817955
Generated names
[4BBB] Enchantment, Aura: Fallen Hell                        [2U] Enchantment, Aura: Clower Searaim                       [1RG] Enchantment: Graft's Call                              [3GG] Enchantment: Tendeting Crawler                         [WB] Sorcery: Sand Master                                    [ WW] Instant: Empt Facter                                   [BB] Creature, Zombie Beast: Goldils Wildserger              [GWU] Creature, Faerie Warrior: Blash Giant                  [1U] Instant: Chanologuc Mont                                [GGG] Enchantment: Bonernite sie                             

Epoch 52 average loss = 0.625964889407
Generated names
[3U] Creature, Monkey: Thollect Drake                        [RR] Creature, Orc Warrior: Jhiling Yearyner of Killog       [8BB] Crceature, Eldrazi Proves: Swelvernal Herotiands       [1U] Enchantment: Crunver Preamolons                         [5BB] Enchantment: Outar                                     [1W] Instant: Seale's Bismink                                [1BRG] Enchantment: Fortival Dition                          [None] Land: Sekel Geietiners                                [2RR] Creature, Uprivin: Phartbast Willchmets                [1WW] Creature, Human Soldier: Runish Mage                   

Epoch 53 average loss = 0.622122436404
Generated names
[2B] Creature, Insert: Trish of Draw                         3BBR] Creature, Vamab! Spirit: Ordirauptick                  [WWU] Instant: Tummer                                        R] Instantary: Karrivara                                     [1BB] Enchantment: Lanssultuul Frese                         [2R] Creature, Giant: Questial Parmoner                      G] Enchantment: Armorid Overgeal                             [2B] Sorcery: Orm the Soul Fire                              [UUU] Enchantment, Aura: Tempirych Reached                    GG] Sorcery: Prosk Sage                                     

Epoch 54 average loss = 0.620850395441
Generated names
[3WW] Sorcery: Glund's Mactle                                [B] Instant: Whell Ave                                       [1U] Creature, Human Wizard: Fatefay Etfinebeal              [None] Land: Seedplighted Jacapox                            3G] Sorcery: Sathuran'en Visald                              [1WU] Enchantment: Kaura Aftees                              [None] Land: Torcuted Grave                                   1W] Creature, Human Soldier: Kreadend Cleeter               [4BB] Creature, Giant Warrior: Khy Higarg-Kitker             BenIblary Elf Giand, Brompin: Artution Artfescell            

Epoch 55 average loss = 0.621265347481
Generated names
[W] Creature, Meron Warrior: Pushing Seaves                  [1B] Enchantment: Lihei's Thunder Dead                       Dwoonf Srright: Phyrex Eleperation                           GW] Enchantment: Amblessing                                  [2B] Creature, Horror: Crisceng, Distwrixod                  [WW] Creature, Human Soldier: Pestwailker                    1RR] Creature, Goblin Warrior: Zodok Angelacter              [0G] Sorcery: Thinxum Chaunce                                [W] Enchantment: Misofate                                    [BR] Sorcery: Buttown the Mine                               

Epoch 56 average loss = 0.621685911298
Generated names
 None Anceatment, Kithkin: Calling Sliver                    [G] Sorcery: Eontain Mange                                   [2BG] Legendary Creature, Human Warrior Ally: Goblin Pary Wa [2W] Sorcery: Chain of Tchorn                                [1B] Creature, Human Wizard: Adgent Odexim                   [1W] Creature, Human Cleric: Oviard Blawer                   [WUU] Creature, Draeke: Djantraker Pherser                   [XGW] Sorcery: Tombin Shamd                                  [3W/P] Creature, Spirit Cleric: Taintwield Boochape          [WW] Enchantment, Aura: Worp Harst                           

Epoch 57 average loss = 0.620096840739
Generated names
 12] Artifact: Tristhen Bloodermus                           [T Prriichant: Blindstone Spards                             [1W] Creature, Kor Shaman: Kereweel Sludger                  [W] Sorcery: Scree Gibjered                                  [1WW] Sorcery: Muvasphill Tread                              [WU] Creature, Elemental: Skoutter Primek                    [W] Instant: Enchapon of Tothe                               [XX2B] Creature, Ooze: Skirian Skytdain                      [2R] Creature, Bird WindeworcarswirkenqClazdy, Ome: Mazns Cu [None] Planesw: Drazid Adesor                                

Epoch 58 average loss = 0.616865005612
Generated names
[2WW] Creature, Angel: Chaundr Siling                         1R] Creature, Giant Horror: Merci Thruephant                [0] Artifact: Darklehk                                       Nons Soldier Lendury: Equsting Wall                          [BR] Enchantment: Angelic Memma                              [3BBB] Enchantment: Augrery Spirit                           [None: Lands                                                 [2G] Creature, Fungup: Kime Iletuan                          [B] Sorcery: Broften's Forbatis                               U] Sorcery: Tankseen's Camb                                 

Epoch 59 average loss = 0.615713671207
Generated names
[None] Conspirat: Risom                                      [2UU] Creature, Human Berserker: Godgon                      [1GW] Creature, Insect Wolldy: Ghault Reads                   1B] Creature, Zomii: Rodoun Blood                           [2U] Instant: Gibling Blosms                                 [2UU] Snow Creature, Human Wizard: Glaint of Momblast        [7] Artifart Creature, Dragon: Akapeshrotect                 [3WW] Creature, Human Soldier: Dussek Tathordriper           [2UBR] Legendary Creature, Human Wizard: Kill-Hanf of the He [1UU] Creature, Faerie Berserker: Witanted                   

Epoch 60 average loss = 0.614327866673
Generated names
 G] Sorcery: Dipralis                                        [1R] Creature, Human Wizard: Vowerd Wolver                   [1B/GU/RU/B] Creature, Troll Scout: Impesh's Avatiarin        GG] Sorcery: Kaypmag Infiles                                [8UU] Sorcery: Ervertoc's Pyrentatter                        [Noner Soqoruchorstacyle: Mertone                            [1WU] Creature, Bird: Nestlect Balliol                       Oon GnUlthwannscerst: Sorkata, Discorn the Firefinity         5R] Creature, Elephant Soldier: Searrine Seremage           [B] Creature, Ogre Shaman: Strongy of Vinewarger             

Epoch 61 average loss = 0.615766879559
Generated names
[2B] Creature, Human Mutant: Madros Evander                  RGGGWUB/UW/Bl/B] Creature, Squid Druid: Lurider of the Sereo [6UU] Creature, Drake: Akdaul Homors                          2BGU] Creature, Insect: Rikndledry V.                        1RR] Creature, Human Cleric: Grayer Bomnsarne               [UU] Creature, Spirit: Spearch Crub                           R] Creature, Kavu: Citcher Enement                          [1U] Instant: Turn the Worflard                              [0G] Creature, Centaur Warrior: Laeral Mankler               ZRGGGU0000] Artifact: Unegouge Thoty                         

Epoch 62 average loss = 0.616034768224
Generated names
[UU] Creature, Thapergoun Must Hordior: Versed Edgeremixalr   1W] Creature, Kor Cleric: Krailssuald Mastlumerer           [1R] Creature, Human Berserker: Dromphor                     [1G] Creature, Horror: Greetwell Ranger                      Nond Menton: Epoche Wall                                     [2W] Creature, Kithkin Horror: Lashath Linity                [1U] Enchantment, Aura: Karra Prowl                          [3B] Creature, Ogre Mystic: Manara                           [1B] Instant: Hundler Viseive                                [GG] Enchantment: Imperic Wist                               

Epoch 63 average loss = 0.611897970557
Generated names
[UU] Creature, Merfolk Berserker: Destan Allex                Nond Creature, Insect: Fegation Elemental                   [3UU] Creature, Human Rogue: Tarrord Knightant               [None Wrian Samore, Lihic: Whinkened Enioty                  [WWU/B] Sorcery: Pies's Heed                                 [3G/B] Creature, Wall: Warl Nattriter                        [U] Creature, Homaride: Itfessil Skorewind                   As Loond: Host of Grands                                     Nons: Trallide Shadey                                         None Anceatment, Sward Wizard: Dragon Thocme                

Epoch 64 average loss = 0.60913000524
Generated names
[GU] Instant: Wish Lava                                      [Bo/UW/U] Instant: Lighting Resurn                            R] Instant: Inferdinib                                      Prewifeftary: Gharp Assa                                     Enthenthers: Zoblin of the Fampy                             [WWW] Creature, Human Rebel Druid Sliver: Lingerow Skywnaite  Bunend: Lindonche                                           [3WW] Creature, Kor Shaman Ally: Abrabia My Vantriker         Nonsen Plergian: Altary Hight                                None Pnecure: Surkhon's Grim                                

Epoch 65 average loss = 0.608989648223
Generated names
GgCretary Creature, Wall: Whirder of Sanistor                [WU/B] Creature, Human Rogue: Bammibe Ghoul                   Non Ascertherphers: Chajura's Demental                       1R/GW/R] Sorcery: Airocaus                                  [0] Artifact Creature, Construct: Armor of the Arcane Fair   Enthenthersent, Arcane: Trinst of Wib-Reak                    RRR] Sorcery: Lantshot                                      [ A] Creature, Human Minicon: Rivilian Souls                 Gn0Bonschann: Shalling Wave                                  [GGW] Creature, Bairg: Corolmusk Chimer                      

Epoch 66 average loss = 0.608009897709
Generated names
 Noner Lond: Lische of Riftrom                               Enftan Soldier: Sphercified Hell of Flame                    1Ur/W/Instaly: Roan's Beyst Avataot                          [3B/R] Creature, Goblin: Goblin Godian                        Non Aschamen, The Candruar: Pathwraverh                     GUr/Pritcary Creature, Tholt: Metera Tront                   3Wore] Land: Mell of Whisen of Riveliga                      [UU] Creature, Kithkid: Droplek Djinnsern                     Nonc  Creature, Insect: Worefascetmort                       R] Creature, Human Adcher Ally: Ashen Byro                  

Epoch 67 average loss = 0.607034954786
Generated names
[GGGGGWWBosR] Sorcery: Deepers                               Husersp, Avandryar: Seedwalder                               [UUUf Creature, Weremerk: Moll Heart                         [None Anevenererors: Vicard Herapy                            1B] Enchantment: Neyel Arisan                               [None Arceary: Sunkless Line                                  Non Artifact: Taying Leycies                                 Noner Land: Doagardoos                                       XU] Instant: Jlash Death                                    [2G/WB/P] Creature, Elf Wizard: Mecrof God                   

Epoch 68 average loss = 0.607992347002
Generated names
[GGWUUU] Legendary Creature, Vedalken Soldier: Salar of Llar [1U/BU/BU/B/R] Creature, Human Pigare: Gjellord Hounds        Nonser: Terretse Desquarot                                  [G] Sorcery: Flespone                                        [U] Creature, Human Werewolf: Mangle of Wields                None Artiatmer, Beast: Crock Pauther                         X4B] Legendary Creature, Demon Mita: Kampili, Mireflige     [2UU] Borch Land, Tride Piest: Rog Traftslood                [R] Sorcery: Countinit                                       [W] Creature, Human Cleric Soldier Scout: Swaros Shaman      

Epoch 69 average loss = 0.60422230041
Generated names
Hu/B] Instant: Sike Scrooped Assauution                      [2B] Legendary Creature, Zoblin Mercenary: Kasur, Kozan Thro S1W] Instant: Goldeat                                         1B] Sorcery: Forty and                                      [Nonsery: Summan Efrent                                      [2W] Instant: Wind                                           [4/U] Creature, Gavuni Insect: Checered Glower                11] Legendary Enchantment: Urthid Pury                      GUUlinderert: Grive of the Discubos                          [3BR] Legendary Creature, Human Wizard: Leechi, Refulebate S 

Epoch 70 average loss = 0.605928438544
Generated names
[WW] Creature, Human Warrior: Tpirelken Drovelerer           [2UU] Legendary Creature, Human Berserkerker: Kruked Kaitlke  Non  Robun Actaryard, Insectant: Llaarhcepling Wheed        [1BR/G] Enchantment, Aura: Vesterann's Rain                  [2WW] Legendary Creature, Human Soldier: Layal, the Burid-Ka [None Anceacy: Jacer by Ambother                              Non Ascyater  Wurm: Oryse Fallair                            Untinthtnnnomen: Basilek                                    [G] Creature, Elvinefole: Grean of Songbind                   Non  Ror Avegure: Stell Capth Pyr of Dakiv                  

Epoch 71 average loss = 0.604631614923
Generated names
[1UU] Creature, Eldrazi Wizard: Trallusted                   [WW] Creature, Human Knight: Chartid Bechrabrer              [1R/GR/G] Creature, Vedalken Wizard: Jhoman Wingguard        [1B] Creature, Human Soldier: Orimokan Skirmisper             Wurens: Wrowth                                              [1W] Enchantment, Aura: Hunterlory                           [Nonse Creature, Knight Wizard: Blindermage Stirate          [B] Sorcery: Limging Boma's the Dants                         10] Creature, Elf Scout: Oldbass Cof Drake                  [W] Creature, Human Monk: Crumberwork Cragoos                

Epoch 72 average loss = 0.603430570841
Generated names
 2BB] Enchantment: Geless                                     W] Creature, Ogu: Scrutcherf                                GGUUtinthmant Creature, Shade: Anason Maw                    Lord : Slead Sliver                                           2W] Creature, Bird Hoar Soldier: Shride of Mine Consmage    [Lonch Creature, Weild: Volfy                                [WW] Sorcery: Curse of the Abherty                            6] Artifact Creature, Zombie Knight: Belvest Gruendog        RGW] Creature, Human Knight: Prathlooms Onder               [UUw] Instant: Fone the Blast                                

Epoch 73 average loss = 0.603412487149
Generated names
 2U] Enchantment: Gibra's Conturemon                          Nons Artifact, Arcane: Temple of Race                       [RGW] Enchantment: Advage of the Intushions                  3B] Creature, Vampire: Kreammenter                           Avanery: Pearldy War Minion                                  [RR] Sorcery: Naka Swairg                                    [B] Creature, Horror: Habserves                              [None Cneatment: Dambelec of Soul                            [2R/GW/R] Creature, Vampire Dright: Overthounds Domis        [B] Enchantment, Aura: Munslic Prophet                       

Epoch 74 average loss = 0.599054792762
Generated names
Ins Gorlim: Holl Servaloven                                  Jol/[3W] Enchantment: Pride Taze                             3GG] Creature, Wolf: Domingloojhing                           1WU] Creature, Kithkin Soldier: Heed Mongun                 SWrindan Anchantmert: Ceppossty Tramp                        Assicker Drape: Sungeer Hydra                                 Non Artifact: Font of Irost Bencator                         1WU] Instant: Sylvau Fiercy                                 [R] Creature, Elemental: Amob                                Enthan Draid: Steeld Hydra                                   

Epoch 75 average loss = 0.600006748915
Generated names
UUf Avetherlary: Sauths                                      [W/RB/RB/BW/WW/U] Creature, Ateget: Clour Redgle             Norn: Soul Vasse                                              GB] Artifact: Extry Tanaur                                  RoRe.[1W] Instant: Purbar Thomparce                          [12B] Creature, Trelleken Siak: Bowerinn Refkluse             1RR] Creature, Human Wizard: Wowlta Barrier                  Bug Enchantment, Aura: Meteral Wites                        Boren/Lact: Pirgeg Leg                                       Cotstuary, Kizait Clerit Alver: Soul Bold Cursel             

Epoch 76 average loss = 0.599981305242
Generated names
[Nons Ascihent: Plane from the Boom                           1RW] Instant: Difility Brid                                 Birgur Arcichant, Shrine: Callest Warchon                    GWiBUnchern: Encelfort Frownshot                             [Non Aschanmer Dream: Cau Night                              [3B] Creature, Phaetor Wizard: Tombig Witch Afent             Ro] Creature, Gablin Sliver Avataur: Pyrimmage Ambiline      1R] Sorcery: Undermity                                      [XB Wribalir Enchant: Conquithon Maroxon                      1B] Creature, Elementan Warrior: Shaman of the Expant       

Epoch 77 average loss = 0.598534389496
Generated names
[GW] Enchantment: Gese of Gustfuard                          Buned: Windbon Pits Braigounder                              [GG] Sorcery: Rune Rate                                       1BB] Creature, Zombie Rat: Ghashtle Witch                    Consh Lind Beast: Caturnanger Archining                      GU/RU/RU/R] Creature, Human Wizard: Bold-ypath Angel        [U] Enchantment, Aura: Exm!                                  [1U] Enchantment: Ermbual Formenter                           RR] Instant: Flood Bread                                    [3BB] Creature, Vampire Dragon: Lightcage Tager              

Epoch 78 average loss = 0.599545538187
Generated names
[3U] Creature, Specter: Mage Sadies                          [W] Creature, Human Cleric: Chesi-Boocus                     [G] Enchantment: Dominchet                                   Gblirid Eldchand: Earthwing Elementalker                     [GGUU] Creature, Human Wizard: Gongroman of Lionfynce        [1B/G] Instant: Gordet Consement                             Hunersery Creature, Gorgon: Avatar Yoolebled                 [Nons Ascyat: Claister Right                                  Non Aschanther Aquchant: Clartseins Creatert                [None: Forb                                                  

Epoch 79 average loss = 0.595319753528
Generated names
[GG] Instant: Murtipe                                        [4B] Creature, Insect: Moons of Worr                           GG] Creature, Wurm: Windsuing Wurm                         [Nornd: Mistfort Mistformens                                 [Nons Consrury: Ristadlack                                    Non Aschanerer Creature, Construct: Aurath Manaricated       Nons Awgart: Tattle Sontly                                  XNond  2ons Arcyman: Dream of the Wake                       [1B] Creature, Faerie Wizard: Ake Ruber Scantycluli           RRR] Worbr Enchantment: Wewet inses                         

Epoch 80 average loss = 0.596690346599
Generated names
3Go] Enhant, Equipment: Jaze Sphore                          GUrwinichant: Jheran the Grap                                [1B] Creature, Boar Warrior Assassint: Alline Ord             3RB] Creature, Beast: Minds Ogle                            [None Creature, Human Druid: Glash Bavokar                   [RW] Instant: Angelity                                       GorB] Enchantment: Borve unescory                            [1UU]  Enchant Creature, Lizard: Hearty Storm                [GGb] Creature, Nyemination: Robelatte Decred                [G] Creature, Elf Warrior: Flamemondors Kulf                 

Epoch 81 average loss = 0.59562702179
Generated names
 1B] Creature, Vampire Warrior: Fire Haugrex                 [6G] Creature, Cat Insect: Arcubores Prashinator             [Nonse  Breats Asiats: Guardian's Canagia                    [1U] Creature, Spirit: Scrutted Guildmage                    Nond Soldar Soldded, Nox: Soldie Agent                        A] Soctary: Abandan Naw                                     [G] Enchantment: Kiman's Incusins                             Non   Insant: Mice Fine                                      1B] Instant: Savil Retical                                  [RGWW] Planeswalker, SRaphin: No, Stronic Toman              

Epoch 82 average loss = 0.596509945631
Generated names
[2B] Creature, Goblin Scout: Aba Redehint                     UUk Creature, Monkey Shaman: Tides Heavers                   3W/Wor/BW/Wl/BW/B] Creature, Minigar: Kon of Gow            [G] Creature, Troll: Treeper of Lands                        [1U] Creature, Antele: Caste Sneader                          2WWB] Creature, Zombie Assass Ally: Vinissan Gater           Non  2orc Articacy: Loft Monswoyon                          [1U] Enchantment, Aura: Corruign                              Non  Non Ascacer: G.Offinder's Rectice                      [BB] Instant: Takes' Ritic                                   

Epoch 83 average loss = 0.593622626662
Generated names
[GG] Enchantment: Void Riete                                 [Nonen Land: Chorvstone Masters                              [UUf Creature, Spirit: Icofaclat                             Norn Human Avatur: Insigmentia                                Nons Constryat: Twinngield Misizant                         Const: Con Soldier                                            3BR] Sorcery: Scrum Umbra                                   [GGWWW/B] Creature, Mingean: River of Karry                  [Nond: Consprack Wayse Flare                                  Nons Creature, Vedalker Wall: Bloodracker                   

Epoch 84 average loss = 0.595790197492
Generated names
[1W] Artifact Creature, Construct: Sungrous Retall           [1W] Instant: Scarssal Winder Emer                            1W] Instant: Banomisa                                        1B] Creature, Human Wizard: Inkolomancer Gianzan            [1UR] Enchantment, Aura: Uncassha's Reise                     GUU] Creature, Human Rogue: Kozzle Ovan Slessare            [1WW] Creature, Cat Beast: Jegna to the Anicema              [2B] Sorcery: Kam of the Wither                               Ro] Const, Trape: Jungero Fit                                2G/WU/WB/G] Artifact Creature, Scorecr: Barral Grivement    

Epoch 85 average loss = 0.593737454653
Generated names
 Nons Snow Plane, Beetona: Groxcholken Myst                  [GUU] Sorcery: Pitch                                         [Wr/AW/B] Creature, Zombie: Rotted Sage                      [None Mon Angelic: Emeracrating Vation                       [G/Wor/Pl/R] Legendary Creature, Vedalkene Pileru: Orizma, H  Non  Cretury: Olva the Waves                                 WU  ArtifLant, Arcane: Shadow                               [2B] Sorcery: Terring Sage                                     RRRR] Instant: Spear Clanger                               [BGU] Enchantment, Aura: Seaching Sundess                    

Epoch 86 average loss = 0.591969185948
Generated names
[ Bo] Legendary Creature, Spirit: Krino Sider's Yuther       ConfAryalk: Tain of the Stell Arkus                          [1W] Enchant Creature, Cram: Anouri, Jouresping Arcient      [1B] Creature, Horror: Casismongeane                          1BG] Sorcery: Inflighting Altivian                           Non Son Scolm: Twinx in Sieard                               1U] Creature, Human Assassin: Grafthade Enferverger         00GGGWWo/B] Creature, Sliver: Skullsanger Spegnax              GGUB] Creature, Eldrazi Drone: Yea Hedgerant                 0G] Legendary Creature, Serper: Seleclaw Pazage            

Epoch 87 average loss = 0.59213233757
Generated names
PlonerAnncerere, Runger Rogue: Gearra Goleph                 [UrtifLant: Klanous Queal                                    GWri] Creature, Spirit: Trini Speckspercus                    Non  Argifhert Creature, Thapossal: Dragon Dimerie          [1B] Sorcery: Centry Hanful                                  [3G/W] Creature, Elf Warrior: Jagus of the Voldine            1B] Creature, Human Monk: Tountlef                            Noncery: Jecrumabution                                     [4G/Wor/R] Creature, Sliver: Valoricatt                       RR/WW] Creature, Cat Wall: Wilvizy                          

Epoch 88 average loss = 0.591444911122
Generated names
 1B] Creature, Goblin Shaman: Asquisor                       [GUo] Enchantment, Aura: Treefolt                            [ Wore] Wrewanerwalf: Hungrant Spiratia                       Trereature, Elemental: Hieff                                 3Wor/R] Enchant: Gaty Squed Rismer                          12UU] Instant: Ag Iro's Tomasped                              1RW] Instant: Worclis's Talotity                            [1U] Instant: Spectery                                        1B] Creature, Human Wizard: Trigum Gargoyle                  Nons Cretare, Efere: Thornbolt Rialnem                      

Epoch 89 average loss = 0.588793554068
Generated names
[GWU] Instant: Fitishencle                                   [Nons Bleash: Noggreewwirged Acophee                         [1UU] Sorcery: Manumage                                      [1B] Creature, Human Warrior Ally: Stunger Commandaner       [2G/WG/Wl/W] Instant: Rise                                   [Nond : Shyed Seistnine                                       1W] Creature, Human Soldier: Gild-Claider Troeding          [Nor Asstherer: Anyp, Massix Avape                           [1U] Creature, Human Robe Assassin: Tainty Suasass           [6GW] Instant: Casermore                                     

Epoch 90 average loss = 0.589367285252
Generated names
[Nonc Enchantment, Araper: Prisoyle! Tannad                  [GG] Enchantment, Aura: Blood Diamins                        [1B] Creature, Insect Warrior: Morting If Chamlerer          [6BB] Creature, Human Archer: Cephari Grave                  [Wor/Pl/U] Sorcery: Palamal the Paze                         [Ur/Creature, Kavu: Hoskun Garm                              [GGo] Sorcery: Island                                        [R] Creature, Goblin Horror: Thundler's Flamekin             [2Ub] Instant: Elemental Blade                               [Nors Ascase: Nembus Revelist                                

Epoch 91 average loss = 0.590292188406
Generated names
  RRR] Legend, Skour Frage                                   [1UU] Enchantment: Angeking                                   1B/RB/GR/GR/G] Sorcery: Glice                               [2G/WU/U] Instant: Ungelacity                                [Wr/GW/UG/U] Creature, Moonfol Spellshaper: Worvessa Urbolak [GG] Creature, Slinerie: Shring Sliver                       [2U] Artifact: Toust of Prote                                [UUlik Land Mercape: Hunternit Witch                          1RR] Creature, Human Rogue: Jolehkin Vampir                 [RGGW] Legendary Creature, Human Barbarian: Solad-Sipess Imm 

Epoch 92 average loss = 0.58924845314
Generated names
[None  2orever Artificy: Pos's Death                         [2UU] Creature, Human Wizard: Serput Brutch                  [Nore Astarurird: Rack Captait                               [1U] Creature, Faerie Wizard: Dragon Chimeructor              1B] Creature, Drake: Hidering Dragon                        [2U/Bl/Uo] Legend, Pricon: Seren, Iron Revolous              [GGWW] Creature, Elephant: Ormwadstock Elder                  6Be] Creature, Goblin: Martoto of the Wiash                 Lone Clechaur Knight: Loremate Donser                        Borenw0RGgoancsporymen: Akkel Charge                         

Epoch 93 average loss = 0.589773417652
Generated names
[Norn Tymbraur: Insoch Promine                               [1B/GU/B] Sorcery, Arcane: Tepari                             Nons Snow Lehecquark, SlookpZNexty Stonker                  [GGUU/BW/B] Creature, Human Advisor: Zenoirn of Flows        [Wr/P] Sorcery: Divige Groat                                 [2B] Creature, Human Insisor: Keldon Conclaher               1UUk Clecure, Spirit Rogue: Sulcha Insusion                   3o] Creature, Cyclops: Spraff of Maze                       [1G/GG/WU/W] Enchantment, Aura: Dusinn Guild Browth          [Norn  2os Awrevan: Knolitestorm Avatar                      

Epoch 94 average loss = 0.58701618576
Generated names
[WWrors Cretiar Elyancercanter: Elviscic of Rakipe's Great   [RGU] Creature, Human Archer: Hero Warrior                   [3W/W] Instant: Vumping Rawnfirit                            [2B] Enchantment, Aura: Consumatigy Versone                  [UUUnboldure: Pyrmand Ratility                               [3W/W] Creature, Cat Wizard: Vestant Sypeffinder              G] Instant: Gate the Elerach                                [Woren Artifant: Evocy Fury                                  [U-1Uw/P] Creature, Snake Shaman: Pekssauth Oppshavaer        3U] Creature, Faerie Wizard: Froostion Guardian             

Epoch 95 average loss = 0.586384461284
Generated names
[3G/] Creature, Dragon: Lyplice Wylves                       [1WW] Creature, Foem Ape: Thoughtly Tidet                    [3R/GG/W] Creature, Spirit: Oake of Surgoth                  Entifact: Mourdseart of Scout                                [Wor] Enchantment: Lust                                       1R] Instant: Mind Extiroj                                   [XGG] Creature, Elf Druid Warrior: Stone Shores              [GWB] Enchantment: Command                                   Oon  BBBinAsthanth Creature, Warlior: Holtroan Lin-Leeblers  [G] Creature, Giant: Blasmestroud Wib                        

Epoch 96 average loss = 0.585203267217
Generated names
[3G/WG/W] Creature, Human Werewolf: Eltarmage Wolf Warden     Non   Sn/Prritchant: Spowtade Vale                          [Norn  1ort Astard: Dompirian Extrace                        [W/WB/Wor/W] Creature, Insect: Avagandr Wurmshaira            G] Instant: Nature of the Undian Scroper                    [1B] Creature, Human Wizard: Danien's Hoart                  [1WW] Creature, Fox Archer: Landlef Jander                   12U Creature, Spirit Avatar: Espronic Benes                   Nons Clery: Darkwood Skullbeat                               1B/G] Enchantment, Aura: Reween Evy                         

Epoch 97 average loss = 0.586426329851
Generated names
[XUU/U] Creature, Fish: Black Spital                         [1UU] Instant, Arcane: Chain of the Primisaon                Mons Cleric: Silbingleaven                                    GGU] Instant: Gorlds of the Ulves                           [UUk Elementare                                              [1W] Sorcery: Banopeling Roly                                 1WB] Creature, Human Wizard: Selesmins Messogin             5rigierari Cletar Archant: Order of the Fait                 [ SB] Creature, Human Soldier: Avengler of the Wishing       [1UUs Instant: Dunes of Cituali                              

Epoch 98 average loss = 0.58638361907
Generated names
  GG] Creature, Human Truid: Myr Loader                      [Bor/Uf Creature, Gargula, Barbarian Fidd: Barden Ghoul Warl  1U] Enchantment, Aura: Hold Fresence                        Prenicor Shaperfolf: Bold Allith                              1U] Enchantment, Aura: Pacrator                             [Urch Creature Pheent: Agent Guildgall                        Nord: Rold Clainsion                                        [Nose: Nora Bond                                             [T Creature, Elf: Furmblaft Wauns                            [6GG] Legendary Creature, Spirit: Gudguen Padasma            

Epoch 99 average loss = 0.585926684022
Generated names
[ RR] Sorcery: Realhuart of Crumble                          [1U] Creature, Zombie: Treading Hunting                      [U/RW/W] Sorcery: Kami Garf                                  [GGG] Legendary Creature, Shapeshifter: Kharnix of Rendine   [1GG] Creature, Elk: Fismaba Mathy                           [B/G] Enchantment: Lutur Chard                               [Norn Mond: Del-Dresk Flame                                  [Wr/Critant: Sold of Grayplicos                              [GG] Creature, Human Druid: Tep Backros                       Norn Aszass: Rality Intendamb                              

In [21]:
plt.plot(loss_history)


Out[21]:
[<matplotlib.lines.Line2D at 0x7fa184f5a7d0>]

And now,

  • try lstm/gru
  • try several layers
  • try mtg cards
  • try your own dataset of any kind

In [ ]: