When people post their results, are they cherry-picking a handful of coherent or particularly amusing examples out of thousands of sample cards? Or are these typical outputs chosen mostly at random?
The ones I posted were pretty hand-picked. I haven't spent a lot of time setting this up or tuning it properly, so the RNN is spitting out a lot of garbage. For example, the next couple, without cherry-picking them, are:
Goblin Ranger 2R
Artifact
Enchant Creature
Enchanted creature gets +X/+0 until end of turn.
Leeking Throat 3W
Creature — Cat Warrior
Daughter you control destroyed this turn.
2/2
Ancestral Infantry XUUU
Legendary Creature — Human Wizard
Enchant creature Asin counter evor
Add BBB to your mana pool.
(no p/t)
When people post their results, are they cherry-picking a handful of coherent or particularly amusing examples out of thousands of sample cards? Or are these typical outputs chosen mostly at random?
The ones I posted were pretty hand-picked. I haven't spent a lot of time setting this up or tuning it properly, so the RNN is spitting out a lot of garbage. For example, the next couple, without cherry-picking them, are:
Goblin Ranger 2R
Artifact
Enchant Creature
Enchanted creature gets +X/+0 until end of turn.
Leeking Throat 3W
Creature — Cat Warrior
Daughter you control destroyed this turn.
2/2
Ancestral Infantry XUUU
Legendary Creature — Human Wizard
Enchant creature Asin counter evor
Add BBB to your mana pool.
(no p/t)
That's interesting. What parameters did you use, if I may ask?
EDIT: And on that note, did you preprocess the data to regularize the names in card bodies, that sort of thing? I ask because it's weird to see the word Daughter show up in the body of the card. Preprocessing the data greatly improved my results.
Carnor Sprith 3B
Creature - Fish
Inlect (When this creature deals combat damage to a player, you may put a 2/2 green Wolf creature token with deathtouch onto the battlefield.)
2/2
#A complete reinterpretation of infect, looks like.
Many of the complete ones can be changed to cool card, but this one especially is freaking amazing
Carnor Sprith 3B
Creature - Wolf R
When this Carnor Sprith deals combat damage to a player, you may put a 2/2 green Wolf creature token with deathtouch onto the battlefield.
2/2
That's a legitimately decent card design!
Strong Shield is also a great card. And the idea of a sac effect giving you options in Uniclings is also very near.
Flowad's Berserker is hilariously over powered. . . but if you clean him up a bit and try to balance him:
Flowad's Berserker 2GWU
Creature - Human Beserker
Flying, first strike, haste
Whenever Flowad's Berserker attacks, it gains indestructible until end of turn. GWU: Reveal your hand. Flowad's Berserker gets +X/+X until end of turn, where X is equal to the combined total of creature, enchantment, land, artifacts and planeswalkers in your hand.
3/3
That's interesting. What parameters did you use, if I may ask?
I just renamed AllSets.json to input.txt for the purpose of feeding into RNN and ran it with the default parameters. I took the samples from the checkpoints it spit out at various times throughout the day today, and poked through. For the most part, the json structure was quite successful, but I found that it doesn't associate much between the attributes. I would get a lot of garbage like "type":"Artifact","subType":["Aura"],... that wasn't very cohesive.
EDIT: And on that note, did you preprocess the data to regularize the names in card bodies, that sort of thing? I ask because it's weird to see the word Daughter show up in the body of the card. Preprocessing the data greatly improved my results.
The first run of train.lua just completed about a half hour ago. Since then, I've written a script to pull out everything from the json except { "name", "manaCost", "type", "text", "power", "toughness", "loyalty" } and will attempt another run using the new data. It's a much smaller file so I may need to tweak the parameters a bit to get it to do anything interesting with it. Still all very experimental... In the meantime, I created a 500,000 char sample file from the last checkpoint file when learn.lua completed.
When people post their results, are they cherry-picking a handful of coherent or particularly amusing examples out of thousands of sample cards? Or are these typical outputs chosen mostly at random?
The ones I posted were pretty hand-picked. I haven't spent a lot of time setting this up or tuning it properly, so the RNN is spitting out a lot of garbage. For example, the next couple, without cherry-picking them, are:
Leeking Throat 3W
Creature — Cat Warrior
Daughter you control destroyed this turn.
2/2
Wow, for a completely random output, this is pretty hilarious. I can just imagine the artwork of a cat warrior stabbing a young girl through the neck with a leek.
EDIT: And on that note, did you preprocess the data to regularize the names in card bodies, that sort of thing? I ask because it's weird to see the word Daughter show up in the body of the card. Preprocessing the data greatly improved my results.
The first run of train.lua just completed about a half hour ago. Since then, I've written a script to pull out everything from the json except { "name", "manaCost", "type", "text", "power", "toughness", "loyalty" } and will attempt another run using the new data. It's a much smaller file so I may need to tweak the parameters a bit to get it to do anything interesting with it. Still all very experimental... In the meantime, I created a 500,000 char sample file from the last checkpoint file when learn.lua completed.
I'll warn you, the order can matter (sometimes I had it in an order where the body text preceded the mana cost and type, which created some issues for training). When I did it, I put all the card info into a format like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn. Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
Which I felt was simple enough for both the machine and I to read easily, lol.
Magmate Dragon 1BB
Creature — Dragon
Flying 1W: At the beginning of your upkeep, remove a color.
Magmate Dragon enters the battlefield under that way.
2/2
Saprazzan Mango 3W
Creature — Human Knight T: Saprazzan Mango enters the battlefield under its owner's control to the battlefield.
2/3
Flow of Mountains 1W
Creature — Goblin Shaman 2W, T: Reveal the top card of your library. G: Flow of Mountains adds 2 to your mana pool.
Nevinyr Remain 3W
Creature — Pegand 1W: Put a -1/-1 counter on this creature.
2/2
Silver of Animate 2G
Artifact
Put three or more creatures on the bottom on top of its owner's library. If it's a land is put into a graveyard from the battlefield, exile these cards and removed it isn't a creature. Silver of Animate deals damage to that player equal to the number of Forests your opponents and attack in addition counters loses the flip.
Lanced Wombat G
Enchantment — Aura
Enchant Creature
Enchanted creature gets +0/+2.
Draw a card.
Deeped Catapult 1G
Creature — Ogre T: Untap target black creature. It can't be regenerated.
1/1
Sorcered Archer 1W
Creature — Insect U: Scring of Chaos of Bodyguard, reacheant deals damage to that player equal to your library. Put one of them for couble seach type on top of its owner's library.
2/1
Fire Oria 1W
Creature — Snake Shade T: Prevent the next 1 damage that would be dealt to that creature's color or and only if you control an additional additional.
1/1
Has anyone else run into the problem of char-rnn being unable to calculate training and validation losses (giving nan / not a number) instead, and then also being unable to create samples from the snapshot? If so, what am I doing wrong?
(I run into the same problem on the tinyshakespeare example set, by the way.)
That's a very interesting question. Can you describe your setup (OS, how you installed the packages, what parameters are you running the training program with, etc.)?
Jesus, those are some long times per batch. I was clocking in at 4 seconds or so on average. At your rate, it'll take 21 days to complete the training with those parameters.
As for the parameters, it should work with the defaults (I would just do -gpuid -1). But yeah, you installed things the standard way. What are the hardware specs?
EDIT: Last time I ran it, I was getting, well, actual numbers. For example,
loading data files...
cutting off end of data so that the batches/sequences divide evenly
reshaping tensor...
data load done. Number of batches in train: 553, val: 29, test: 1
vocab size: 85
creating an LSTM with 3 layers
number of parameters in the model: 7469485
cloning criterion
cloning softmax
cloning embed
cloning rnn
1/16590 (epoch 0.002), train_bpc = 6.43266273, grad/param norm = 1.7880e-01, time/batch = 5.48s
2/16590 (epoch 0.004), train_bpc = 8.86393817, grad/param norm = 1.6307e+00, time/batch = 4.53s
3/16590 (epoch 0.005), train_bpc = 6.11264748, grad/param norm = 5.3345e-01, time/batch = 4.53s
4/16590 (epoch 0.007), train_bpc = 5.33651262, grad/param norm = 3.2529e-01, time/batch = 4.53s
5/16590 (epoch 0.009), train_bpc = 5.31000497, grad/param norm = 6.4119e-01, time/batch = 4.53s
6/16590 (epoch 0.011), train_bpc = 5.16992553, grad/param norm = 5.3067e-01, time/batch = 4.53s
7/16590 (epoch 0.013), train_bpc = 5.13308360, grad/param norm = 3.9991e-01, time/batch = 4.52s
8/16590 (epoch 0.014), train_bpc = 4.85993262, grad/param norm = 1.1696e-01, time/batch = 4.51s
9/16590 (epoch 0.016), train_bpc = 4.85068819, grad/param norm = 8.2922e-02, time/batch = 4.53s
Seal of Axsons 1R
Instant
Buyback 4 (You may pay an additional 4 as you cast this spell. If you do, put this card into your hand as it resolves.)
Target creature gets +1/+1 and banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
Shivan Prism 1W
Instant
Destroy all artifacts. You gain life equal to the damage dealt to you by shadow.
Time Ebb Ramos 5BB
Creature — Demon T: Add W to your mana pool for each creature or player, and shuffle that player's graveyard into his or her library.
It lessens the chances of drawing a creature card - or if it's the only creature you run it can allow you to rearrange your entire library? I don't know still seems interesting.
That's fantastic. I love that you could use it to rearrange your entire library however you want. That's awesome.
TO be technically correct, you are only revealing the top card of your library. "you may reveal the top card of your library until you reveal a creature card" does not instruct you to keep revealing cards until you hit a creature. Even though you're revealing the card and probably holding it in your hand, it's still the top card of your library... I guess you're welcome to keep revealing it in the hopes that it becomes a creature!
Lanced Wombat G
Enchantment — Aura
Enchant Creature
Enchanted creature gets +0/+2.
Draw a card.
I like this one. Just change the name to Wombat Lance and it's basically done. The draw is unusual for green, but look at a card like Hammerhand and Rancor. One casting cost enchantments that give some type of bonus to the creature and a secondary ability.
Please guys, let's not make this an argument about when design was better. This is a silly, happy place. Let's keep it that way.
Sorry, 100% my fault, and 100% entirely off topic. I just noticed the person in question referenced the thread, so figured I'd toss it in there since I knew he'd read it! Fighting the power (apparently since Tempest)!
Also, cards are hilarious! Make a whole set and release it, I'd definitely produce a cube from these!
I set up and ran this as well, here's some cards it created:
Rugge Winds
Artifact Creature — Golem
When Rugge Winds deals damage to an opponent,
then Rugge Winds deals 3 damage to him or her.
2/2
Revening Slayer
Legendary Creature — Demon Beast
Sacrifice a Rogue: Regenerate target artifact
white instant or sorcery spell. Target player
loses 1 life and you gain 1 life.
1/1
(Names in text body edited for coherency)
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
The ones I posted were pretty hand-picked. I haven't spent a lot of time setting this up or tuning it properly, so the RNN is spitting out a lot of garbage. For example, the next couple, without cherry-picking them, are:
Goblin Ranger
2R
Artifact
Enchant Creature
Enchanted creature gets +X/+0 until end of turn.
Leeking Throat
3W
Creature — Cat Warrior
Daughter you control destroyed this turn.
2/2
Ancestral Infantry
XUUU
Legendary Creature — Human Wizard
Enchant creature Asin counter evor
Add BBB to your mana pool.
(no p/t)
I've been chuckling from Tromple since page 1 of the thread!
GWU Knightfall
[Legacy]
GBW Nic-Fit
That's interesting. What parameters did you use, if I may ask?
EDIT: And on that note, did you preprocess the data to regularize the names in card bodies, that sort of thing? I ask because it's weird to see the word Daughter show up in the body of the card. Preprocessing the data greatly improved my results.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Many of the complete ones can be changed to cool card, but this one especially is freaking amazing
Carnor Sprith 3B
Creature - Wolf R
When this Carnor Sprith deals combat damage to a player, you may put a 2/2 green Wolf creature token with deathtouch onto the battlefield.
2/2
That's a legitimately decent card design!
Strong Shield is also a great card. And the idea of a sac effect giving you options in Uniclings is also very near.
Flowad's Berserker is hilariously over powered. . . but if you clean him up a bit and try to balance him:
Flowad's Berserker 2GWU
Creature - Human Beserker
Flying, first strike, haste
Whenever Flowad's Berserker attacks, it gains indestructible until end of turn.
GWU: Reveal your hand. Flowad's Berserker gets +X/+X until end of turn, where X is equal to the combined total of creature, enchantment, land, artifacts and planeswalkers in your hand.
3/3
I just renamed AllSets.json to input.txt for the purpose of feeding into RNN and ran it with the default parameters. I took the samples from the checkpoints it spit out at various times throughout the day today, and poked through. For the most part, the json structure was quite successful, but I found that it doesn't associate much between the attributes. I would get a lot of garbage like "type":"Artifact","subType":["Aura"],... that wasn't very cohesive.
The first run of train.lua just completed about a half hour ago. Since then, I've written a script to pull out everything from the json except { "name", "manaCost", "type", "text", "power", "toughness", "loyalty" } and will attempt another run using the new data. It's a much smaller file so I may need to tweak the parameters a bit to get it to do anything interesting with it. Still all very experimental... In the meantime, I created a 500,000 char sample file from the last checkpoint file when learn.lua completed.
Shring is the best cat generated by the neural network by far.
GWU Knightfall
[Legacy]
GBW Nic-Fit
Wow, for a completely random output, this is pretty hilarious. I can just imagine the artwork of a cat warrior stabbing a young girl through the neck with a leek.
I'll warn you, the order can matter (sometimes I had it in an order where the body text preceded the mana cost and type, which created some issues for training). When I did it, I put all the card info into a format like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn. Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
Which I felt was simple enough for both the machine and I to read easily, lol.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Magmate Dragon
1BB
Creature — Dragon
Flying
1W: At the beginning of your upkeep, remove a color.
Magmate Dragon enters the battlefield under that way.
2/2
Saprazzan Mango
3W
Creature — Human Knight
T: Saprazzan Mango enters the battlefield under its owner's control to the battlefield.
2/3
Flow of Mountains
1W
Creature — Goblin Shaman
2W, T: Reveal the top card of your library.
G: Flow of Mountains adds 2 to your mana pool.
Nevinyr Remain
3W
Creature — Pegand
1W: Put a -1/-1 counter on this creature.
2/2
Silver of Animate
2G
Artifact
Put three or more creatures on the bottom on top of its owner's library. If it's a land is put into a graveyard from the battlefield, exile these cards and removed it isn't a creature. Silver of Animate deals damage to that player equal to the number of Forests your opponents and attack in addition counters loses the flip.
Lanced Wombat
G
Enchantment — Aura
Enchant Creature
Enchanted creature gets +0/+2.
Draw a card.
Deeped Catapult
1G
Creature — Ogre
T: Untap target black creature. It can't be regenerated.
1/1
Sorcered Archer
1W
Creature — Insect
U: Scring of Chaos of Bodyguard, reacheant deals damage to that player equal to your library. Put one of them for couble seach type on top of its owner's library.
2/1
Fire Oria
1W
Creature — Snake Shade
T: Prevent the next 1 damage that would be dealt to that creature's color or and only if you control an additional additional.
1/1
That's a very interesting question. Can you describe your setup (OS, how you installed the packages, what parameters are you running the training program with, etc.)?
EDIT: If you prefer, you can PM me about it.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
As for the parameters, it should work with the defaults (I would just do -gpuid -1). But yeah, you installed things the standard way. What are the hardware specs?
EDIT: Last time I ran it, I was getting, well, actual numbers. For example,
loading data files...
cutting off end of data so that the batches/sequences divide evenly
reshaping tensor...
data load done. Number of batches in train: 553, val: 29, test: 1
vocab size: 85
creating an LSTM with 3 layers
number of parameters in the model: 7469485
cloning criterion
cloning softmax
cloning embed
cloning rnn
1/16590 (epoch 0.002), train_bpc = 6.43266273, grad/param norm = 1.7880e-01, time/batch = 5.48s
2/16590 (epoch 0.004), train_bpc = 8.86393817, grad/param norm = 1.6307e+00, time/batch = 4.53s
3/16590 (epoch 0.005), train_bpc = 6.11264748, grad/param norm = 5.3345e-01, time/batch = 4.53s
4/16590 (epoch 0.007), train_bpc = 5.33651262, grad/param norm = 3.2529e-01, time/batch = 4.53s
5/16590 (epoch 0.009), train_bpc = 5.31000497, grad/param norm = 6.4119e-01, time/batch = 4.53s
6/16590 (epoch 0.011), train_bpc = 5.16992553, grad/param norm = 5.3067e-01, time/batch = 4.53s
7/16590 (epoch 0.013), train_bpc = 5.13308360, grad/param norm = 3.9991e-01, time/batch = 4.52s
8/16590 (epoch 0.014), train_bpc = 4.85993262, grad/param norm = 1.1696e-01, time/batch = 4.51s
9/16590 (epoch 0.016), train_bpc = 4.85068819, grad/param norm = 8.2922e-02, time/batch = 4.53s
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Seal of Axsons
1R
Instant
Buyback 4 (You may pay an additional 4 as you cast this spell. If you do, put this card into your hand as it resolves.)
Target creature gets +1/+1 and banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)
Shivan Prism
1W
Instant
Destroy all artifacts. You gain life equal to the damage dealt to you by shadow.
Time Ebb Ramos
5BB
Creature — Demon
T: Add W to your mana pool for each creature or player, and shuffle that player's graveyard into his or her library.
TO be technically correct, you are only revealing the top card of your library. "you may reveal the top card of your library until you reveal a creature card" does not instruct you to keep revealing cards until you hit a creature. Even though you're revealing the card and probably holding it in your hand, it's still the top card of your library... I guess you're welcome to keep revealing it in the hopes that it becomes a creature!
I like this one. Just change the name to Wombat Lance and it's basically done. The draw is unusual for green, but look at a card like Hammerhand and Rancor. One casting cost enchantments that give some type of bonus to the creature and a secondary ability.
Sorry, 100% my fault, and 100% entirely off topic. I just noticed the person in question referenced the thread, so figured I'd toss it in there since I knew he'd read it! Fighting the power (apparently since Tempest)!
Also, cards are hilarious! Make a whole set and release it, I'd definitely produce a cube from these!
It makes perfect sense! They obviously added the X to the cost just so that Gaddock Teeg hoses it!
Since there's alot of them, I put them in a spoiler tag.
Still not sure what feel is
Just created an account to say, that's fantastic
Rugge Winds
Artifact Creature — Golem
When Rugge Winds deals damage to an opponent,
then Rugge Winds deals 3 damage to him or her.
2/2
Revening Slayer
Legendary Creature — Demon Beast
Sacrifice a Rogue: Regenerate target artifact
white instant or sorcery spell. Target player
loses 1 life and you gain 1 life.
1/1
(Names in text body edited for coherency)