Ah, so... one very important thing: any input (prepend text, append text, any of those optional parameters) into the sample_hs.lua files (whatever version) CANNOT have capital letters anywhere, it must all be lower case (since that's the input the neural network is trained on). That is what kept giving me the error croxis has above, I think. Try without capitals, and it might be better.
Would it be possible on the website to have all of the normal Magic cards as a default option in the card data section? I have observed that the website lags a lot when you copy and paste large amounts of data into it.
Summoner's Recoin {3}{g}
Enchantment
At the beginning of your upkeep, you may look at the top card of your library. If it's a Land card, Summoner's Recoin deals damage to target creature or player equal to the number of Artifacts your opponents control.
This is quite possibly the most awesome take on Green the network has ever produced. Loves lands? Check. Artifact hate? Check. Creative take on direct damage that manages to not feel out-of-flavor? Check and check!
Ah, so... one very important thing: any input (prepend text, append text, any of those optional parameters) into the sample_hs.lua files (whatever version) CANNOT have capital letters anywhere, it must all be lower case (since that's the input the neural network is trained on). That is what kept giving me the error croxis has above, I think. Try without capitals, and it might be better.
! Trying it again!
That was exactly the problem.
I'm finding a lot of cards where they're trying to set the "total power" of the cards.
heartwood rampage (common)
{3}{R}
instant
kobolds you control have total power 5 or greater.
destroy target creature with power 4 or less.
~~~~~~~~
thornbite blessing (uncommon)
{5}{G}
instant
kobolds you control have total power 7 or greater.
draw a card.
~~~~~~~~
soul surge (common)
{1}{W}
instant
kobolds you control have total power 5 or greater.
exile the top card of your library.
Grand Theft 3UR
Sorcery (Rare)
Buyback 3
Search target opponent's library for a creature card with converted mana cost 7 or greater, reveal it, put it into your hand, then shuffle your library.
#The network is convinced that this is a legal action. This is not the first card that has you steal cards from an opponent and put them into your hand or library.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
Grand Theft 3UR
Sorcery (Rare)
Buyback 3
Search target opponent's library for a creature card with converted mana cost 7 or greater, reveal it, put it into your hand, then shuffle your library.
#The network is convinced that this is a legal action. This is not the first card that has you steal cards from an opponent and put them into your hand or library.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
Gifts Given and Naughty/Nice are cards that currently do such a thing. They are however Holiday Cards.
I've been training a slightly unusual network on my big Intel machine - size 768, layers 3, dropout 0.5, randomized field order and mana symbol order. This is the first big test of the batcher's ability to do data layout randomization in a reasonable way.
As with previous experiments in randomizing field order, it's terrible at consistently producing valid cards - only around a third are completely correct in terms of having the right fields. But, a lot of them just have duplicated fields, and we can easily throw those away. I'm seeing some pretty interesting and creative things come out of it.
akki peacewnight (uncommon) 3W
creature ~ illusion T: put a 2/2 green bear creature token onto the battlefield. it has "2R: this creature gets +1/+0 until end of turn."
(3/1)
# That's an... interesting... choice of colors. Notice that it remembered to put both quotes in the right place though.
auriok kyren (common) _INVALID_ 2W
creature ~ human knight
protection from green
at the beginning of your end step, if @ is in your graveyard, you may gain 1 life.
(1/1)
~~
(9) (cost) {1}{U}
# It was unsure about the cost, lol. Apparently word2vec thinks the closest card to this is actually Ichorid.
cold storage (uncommon) 3WW
enchantment ~ aura
flash
enchant creature
enchanted creature gets +3/+3.
when @ is put into a graveyard from the battlefield, return @ to its owner's hand.
# It pilfered the name Cold Storage, but this is really a pretty cool take on Moldervine Cloak.
lufilic warchief (uncommon) WW
creature ~ cyclops
@ can't be blocked by lands and can't be blocked.
(5/6)
# Doesn't this just look like a typical nn-generated card? Also, it seems the closes card here is Evil Eye of Orms-by-Gore.
ambasmador (common) UU
creature ~ human cleric
kicker 5
flying
when @ enters the battlefield, if it was kicked, destroy target nonartifact samurai you control and @ mana enchanted this way.
(2/3)
# Working kicker! Not useful, and with a side order of word salad, but still.
boggart spy (common) U
creature ~ elemental
countertype % fade
fading 7
remove a % counter from @: prevent the next 1 damage that would be dealt to target creature or player this turn.
(1/1)
# Holy crap, it got fading correct, with the right countertype and everything.
clear the maetor (common) _INVALID_ U
creature ~ human soldier
enchant creature
enchanted creature has "{T}: but a 1/1 green saproling creature token onto the battlefield.
if a nonland permanent with enchant creature is a creature, it gets +1/+1 and can't be blocked by creatures with flying."
(1/1)
~~
(7) (cost) {G}
# This one is fascinating. Read very carefully. Yes, the type is off, and it spelled 'put' as 'but', but it obsessively closed the quote, so that the enchanted creature gains a multi-lined ability. I think that bit is correct, though no real card tries to do this.
dredger (rare) _INVALID_
{4}{U}
creature ~ human wizard
when @ enters the battlefield, creatures you control gain "when this creature dies, draw a card."
(4/5)
~~
(9) (rarity) N
# And yet more quote closing, here for a very creative multiple creature cantrip. I can forgive the indecision over rarity.
falver raven (rare) _INVALID_ 1U
creature
haste
when @ enters the battlefield, draw two cards, then discard a card. G, T: copy target instant or sorcery spell. you may choose new targets for the copy.
morph 1W
(2/1)
~~
(7) (types) ['creature']
# It couldn't remember if it needed a type or a subtype. Fascinating but typical desing - complex, coherent, yet utterly nonsensical and very loose with the color pie.
insriver strength _INVALID_ 7UU
sorcery
target creature gains flying until end of turn.
cycling 4U
~~
(2) (types) ['sorcery']
# Bloody typical, ain't it.
spellbreaker's malechain (uncommon) _INVALID_ 1U
instant
destroy target nonblack creature. it can't be regenerated.
~~
(9) (cost) {2}{U}
(7) (rarity) O
# Also this.
stonehorn (common) 1U
sorcery
target creature gets -5/-5 until end of turn.
# And this.
spitting peace (common) 1U
instant
target player discards four cards.
# And also this. I'd play all of these. Instant speed discard 4 for 1? Apparently blue is the new black, but much better.
crowd farcher (rare) 2B
creature ~ centaur B, sacrifice an aura: remove a +1/+1 counter from @: @ gains shadow until end of turn.
(1/2)
# Two colons... this ability's cost has a cost!
inspired herd (common) 4B
creature ~ elemental
@ can't be blocked by blue creatures.
whenever @ attacks, sacrifice @ and it deals 1 damage to you.
morph 1BB
(7/4)
# You have to declare it as an attacker, then turn it face up. And it even comes with limited evasion.
srolling bubble (rare) 2BBB
legendary creature ~ spirit
tromple
(3/3)
# Am I surprised?
the augur (common) 2R
sorcery
draw a card for each card in your hand.
# Obviously there are several bad ideas going on here, the least of which is making it a common. And the most similar card is Demonic Collusion?
disembowel 4R
instant
draw a card for each color among permanents you control.
# Also, this.
stas cobra (common) _INVALID_ 1R
sorcery
draw a card for each instant or sorcery card in your graveyard.
~~
(3) (cost) {3}{W}{W}
# Even more impressive. And no it wouldn't have been any better in white.
claurtrooming (rare) _INVALID_ 2RR
instant
you gain 7 life.
~~
(8) (name) condraclation
# The color issues are real.
hatchet behemoth (rare) 4RR
creature ~ avatar
kicker 2B
when @ enters the battlefield, if it was kicked, target opponent puts X 1/1 white spirit creature tokens onto the battlefield.
(5/5)
# Another working kicker! It still messed up this X though.
telepire's crush (uncommon) _INVALID_ 3R
instant
[choose one ~
= destroy target artifact creature.
= draw a card.]
entwine 2
~~
(6) (rarity) O
# Hey look an entwine card!
boggart plagues 4G
creature ~ zombie
you may have @ enter the battlefield as a copy of any nonland permanent you control.
(2/2)
# Bizarre.
charging sentry 2G
creature ~ human pirate
whenever you cast a noncreature spell, you may return @ from your graveyard to the battlefield. activate this ability only once each turn.
(3/1)
# Also bizarre. Can the ability retain state to work in the way it's clearly intended to?
dark's herd (uncommon) _INVALID_ G
sorcery
target player reveals his or her hand. you choose a nonland card from it and exile them. then that player shuffles his or her library.
draw a card.
~~
(7) (types) ['instant']
# I assume "them" refers to the card. Otherwise, I like it. Completely unfair and obviously the product of a neural net. If only it had been decisive about making it an instant.
deathsraper legion (mythic rare) 2GG
creature ~ zombie drake
intimidate 1: @ becomes colorless until end of turn.
(3/3)
# Clever.
kwardsory (uncommon) 1G
instant
[choose one ~
= destroy target enchantment.
= target creature gains flying until end of turn.]
# Another working choice card.
thornscape aarhand _INVALID_ 2G
creature
when @ enters the battlefield, if it was kicked, put X 1/1 green saproling creature tokens onto the battlefield.
(2/2)
~~
(8) (name) sphinx's nelusal
# Things don't always work out.
traveling kard (uncommon) _INVALID_ 5G
instant
choose a color. target creature gets +3/+0 until end of turn.
~~
(8) (cost) {2}{B}
# Nope.
infernal fire (uncommon) 1(R/G)(R/G)
sorcery
draw X cards, then discard two cards.
# Indeed not.
advance spitter 4
artifact
spells you cast cost 1 less to cast. T: add one mana of any color to your mana pool.
# This, though, is pretty cool. I like all of it except the rarity.
prince of malachite (rare) 5
artifact
countertype % paye
at the beginning of your upkeep, you may put a % counter on @. 2, sacrifice @: add 1 to your mana pool for each % counter on @.
# Working and creatively named counters.
penforming (uncommon) 1
land
players can't cast spells.
# Well... Can you play lands with casting costs?
temple ward _INVALID_
_NOCOST_
legendary land ~ beast 2, T: prevent all combat damage that would be dealt this turn.
~~
(8) (name) kitsune foundry
# This also would be a bit borked.
TL;DR: This network definitely has interesting properties. It's almost obsessively good at putting double quotes around granted abilities, and it has showed some promise with kicker, but I didn't see any correct usage of X, and it still has many shortcomings common to other networks.
For the curious, the MSE set with all of the cards from my dump is here. As with all MSE sets, google drive thinks it's a zip file. You want to click the download at the top, rather than just pulling out the text file named "set".
The checkpoint itself is here. The epoch number is misleading - it's 0.43 of 1.0, where 1.0 corresponds to epoch 100. So it's really epoch 43.
This is the most fun I've had looking through card dumps in a while. A shout out to Maplesmall - doing it in MSE is very pleasant, much better than text.
Grand Theft 3UR
Sorcery (Rare)
Buyback 3
Search target opponent's library for a creature card with converted mana cost 7 or greater, reveal it, put it into your hand, then shuffle your library.
#The network is convinced that this is a legal action. This is not the first card that has you steal cards from an opponent and put them into your hand or library.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
Well, we're moving past 'legality' in the playing of the cards and into 'legality' in the design of the cards. You know, things that keep Ashnod's Coupon out of black-bordered land.
TL;DR: This network definitely has interesting properties. It's almost obsessively good at putting double quotes around granted abilities, and it has showed some promise with kicker, but I didn't see any correct usage of X, and it still has many shortcomings common to other networks.
Very interesting results, I agree!
Rofl at Srolling Bubble for tromple.
I like seeing cards like Telepire's Crush. It makes sense that if the network does better with putting double quotes around abilities (i.e. things at the start and end of long sequences), that it would be better a generating cards that start with "choose one" and end with "entwine". I wonder why that'd be the case though. My guess is because the fields are randomized, the network never knows just how long it'll have to hold onto information, so we're training it to retain info over more timesteps than usual, and that incidentally benefits abilities like entwine.
However, when it produces cards with missing or redundant fields, it may be misremembering things. That is, based on its current state, it would appear that it already completed a field that it in fact did not, and vice versa. That's interesting though, because I would have thought with enough training time it would be able to provide us with more complete cards than we're seeing. But then again, it's having to carry info across field separators, and in our training we are teaching the network to forget information when crossing those delimiters. If it couldn't weaken that memory, it would struggle when changing contexts (which would cause it to suffer in terms of training/validation loss).
But I'm not entirely sure yet. I'm just hypothesizing. I'll have to think more on the subject before I can give a more definite answer.
Grand Theft 3UR
Sorcery (Rare)
Buyback 3
Search target opponent's library for a creature card with converted mana cost 7 or greater, reveal it, put it into your hand, then shuffle your library.
#The network is convinced that this is a legal action. This is not the first card that has you steal cards from an opponent and put them into your hand or library.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
It might be but it is unlikely such a card will see print in an official manner. Possibly in an unhinged style set.
Private Mod Note
():
Rollback Post to RevisionRollBack
Why did I ever think a signature in comic sans was a good idea?
I think I've figured out what to do with X! Obviously, the network is way smarter than we give it credit for - it's learned roman numerals, and so we should just treat it as 10 if it's undefined.
Lightning Standard {2}{w}
Creature 2/2 — Human Soldier
[Infect]
Whenever Lightning Standard blocks or becomes blocked by a creature, Lightning Standard becomes a copy of that creature until end of turn.
I believe that is a new use of the copy mechanic and I think it's quite novel. I rather like it.
Private Mod Note
():
Rollback Post to RevisionRollBack
Why did I ever think a signature in comic sans was a good idea?
That's... the ultimate blocker, kind of. Obviously a one-time use, but the opponent would be wary of committing any valuable creatures to attack because they know it'd die. I wonder if becoming a copy triggers ETB effects for that copied creature?
Quote from hardcast_sixdrop »
This is the most fun I've had looking through card dumps in a while. A shout out to Maplesmall - doing it in MSE is very pleasant, much better than text.
Thanks I know right? There's a reason I learned python to write that script. MSE's filters and find feature also make it a hell of a lot easier to track down specific effects.
I had upped the learning rate and the losses dropped more rapidly than they used to. I found this issue on karpathy's git where karpathy says there's a bug with the initial learning values in the case of non-default seq_length's, but that the best value doesn't have an easy to grasp relationship with seq_length. We're dead on that case since we're 200-400 vs default 50. I don't have gradients going wild to 1e2-3 nor did I see an update correction. Whatever's the case, on my next try from scratch I'll change the exponential decay to some other function that's initially higher and decays faster first. (I can control that thanks to using an external script doing 1 epoch at a time.)
Note: other issues seem to imply there's no splicing after all. I'm not saying I understand well.
Hmm... Interesting! Thanks for bringing that to our attention.
@Talcos and Tiir: this idea is really appealing because you'd have most of the advantages of my repeater approach without most of the drawbacks. I have to join text lines that would keep things too far apart, and compression results in artifacts on the random parts. Well I get to have cards named "Something X"
Could higher learning rate favor longer text dependencies?
If the learning rate is too low, the network will at best converge very slowly.
If the learning rate is too high, the network may exhibit chaotic behavior, and it can end up diverging very rapidly.
Now, is the current learning rate that we have ideal (the default is 0.002)? It's possible that a slightly higher learning rate could do use some good. Perhaps we're being too conservative. I did some quick experiments to feel out the idea. Here is what I found (on the left is the learning rate, and on the right is what I saw).
0.1 : Loss exploded after 2 batches, triggering an instant abort (4.16472811 -> 49.86472462 -> abort!)
0.01: Loss exploded after 3 batches, triggering an instant abort ( 4.16472811 -> 8.28155774 -> 13.29964301 -> abort!)
0.008: Looks like it might be stable. Training loss skyrockets to 10.79317070 right the start, but it cools down quickly into the 3.25-3.30 range. But the network that went mad stayed in the 3s for hours before finally descending into insanity, so it's hard for me to say whether it will drop or not.
0.002: What I've been doing this whole time.
< 0.002: I don't see a reason to try.
So yeah, we probably can afford to be a little bit more generous with the learning rate. Not sure what it'll do for us in this case, but it's worth trying.
EDIT: I have some CPU/GPU cycles to spare today, so why not. I'll try doing the training at a learning rate of 0.008 just to see what happens and get back to you later.
Thanks I know right? There's a reason I learned python to write that script. MSE's filters and find feature also make it a hell of a lot easier to track down specific effects.
I second hardcast_sixdrop on that one, that was a genius idea.
That's... the ultimate blocker, kind of. Obviously a one-time use, but the opponent would be wary of committing any valuable creatures to attack because they know it'd die. I wonder if becoming a copy triggers ETB effects for that copied creature?
Small site update. I'm now more certain that the generator is causing the websocket to time out. I do not have a fix for this or the getting everyone else card bugs.
Setting a name does not crash the neural net.
Pasting in raw text now works again.
PS: Anyone wish to donate a checkpoint?
Private Mod Note
():
Rollback Post to RevisionRollBack
Proud to be saving the world since 1984 -- I also have an open source website to make AI generated magic cards. Source code
Lightning Standard {2}{w}
Creature 2/2 — Human Soldier
[Infect]
Whenever Lightning Standard blocks or becomes blocked by a creature, Lightning Standard becomes a copy of that creature until end of turn.
I believe that is a new use of the copy mechanic and I think it's quite novel. I rather like it.
Grand Theft 3UR
Sorcery (Rare)
Buyback 3
Search target opponent's library for a creature card with converted mana cost 7 or greater, reveal it, put it into your hand, then shuffle your library.
#The network is convinced that this is a legal action. This is not the first card that has you steal cards from an opponent and put them into your hand or library.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
It might be but it is unlikely such a card will see print in an official manner. Possibly in an unhinged style set.
Except there's a rule that states a card cannot be put into a hidden zone that isn't it's owners. Imagine using Word of Seizing on Elixir of Immortality and using it. According to what M11 version of Elixir says, you'd get it shuffled into your library instead of it's owners. (Obviously they changed the Errata and the text on later printings, but you get the gist of what I'm saying.)
@Hardcast What you said made me want to try with a more fixed format, with a field for counter name for instance.
What are your current training parameters? I thought my X problem was related to quotes but your results say otherwise. I'm curious what will happen when it's more trained.
EDIT: just to be sure, your double quotes are all the plain ascii ones?
Usually I use size 512, layers 3, seq_length 200, max_epochs 50, dropout 0.5. That dropout is unnecessarily large, probably. But it's what I'm used to using. On my GPU these nets usually train in a few hours; on a (very strong) CPU it takes about a day. So, this might be impractical if you don't have powerful hardware available.
Parameters for the randomize fields run were exactly as follows (this was using mtg-rnn for those funny -randomize_mana and -randomize_fields options):
Almost forgot: how to use a separate validation.txt when you're shuffling all your input.txt between each epoch?
Simple: train once on validation.txt, note training_loss, throw checkpoint away. It was so simple lol
Well... Careful... validation runs on multiple batches, so to achieve the same thing you'd have to train for a whole epoch on your validation data and then average the losses across the batches. And even that would only be an approximation, as as soon as you've trained more than one batch, the later batches will have learned from the earlier ones. I also believe validation batches work very differently with dropout.
And a note to Croxis, I did post a link to my rfields checkpoint if you want to make that an option. The net is big so it is a rather large file (180MB or so).
EDIT:
jml, if you want to do separate validation, the right way is to specify a split fraction that's all validation, then it will actually do the right thing for you. I don't have the code available to tell you the option you need to do this but it should be straightforward.
@Talcos Wait wait wait! I've had examples of quicker dropping of training losses at 0.0025, and saw slow improvements below 0.001. You go directly to 0.008 Yes sure but after you've seen that it doesn't give better results quickly you'd try a slower value no? More like, "shouldn't I train for 20 epochs at 0.003 then decay 0.985 till 0.0008"?
You're right. I cancelled the run earlier. I meant to tell you sooner. I gave it awhile and found it got stuck at around 3 and just oscillated there rather than getting better or worse.
I've gotten a fair bit of experimenting done, and I'm getting good numbers on my training costs. Very good. Scary good. Good enough that my first thought is that something is wrong rather than it being a special net. I first thought that it may be over-fitting, but these are small nets with some more regularization than the char-rnn one. Once my current one finishes training I'll start generating cards to get a better idea of what's happening, but in the mean time I'm at 0.13 training loss and dropping.
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Enchantment
At the beginning of your upkeep, you may look at the top card of your library. If it's a Land card, Summoner's Recoin deals damage to target creature or player equal to the number of Artifacts your opponents control.
This is quite possibly the most awesome take on Green the network has ever produced. Loves lands? Check. Artifact hate? Check. Creative take on direct damage that manages to not feel out-of-flavor? Check and check!
! Trying it again!
That was exactly the problem.
I'm finding a lot of cards where they're trying to set the "total power" of the cards.
{3}{R}
instant
kobolds you control have total power 5 or greater.
destroy target creature with power 4 or less.
~~~~~~~~
thornbite blessing (uncommon)
{5}{G}
instant
kobolds you control have total power 7 or greater.
draw a card.
~~~~~~~~
soul surge (common)
{1}{W}
instant
kobolds you control have total power 5 or greater.
exile the top card of your library.
Only thing missing is reach.
Doesn't 101.1 mean that if the card says you can do it, it is legal?
Gifts Given and Naughty/Nice are cards that currently do such a thing. They are however Holiday Cards.
As with previous experiments in randomizing field order, it's terrible at consistently producing valid cards - only around a third are completely correct in terms of having the right fields. But, a lot of them just have duplicated fields, and we can easily throw those away. I'm seeing some pretty interesting and creative things come out of it.
akki peacewnight (uncommon)
3W
creature ~ illusion
T: put a 2/2 green bear creature token onto the battlefield. it has "2R: this creature gets +1/+0 until end of turn."
(3/1)
# That's an... interesting... choice of colors. Notice that it remembered to put both quotes in the right place though.
auriok kyren (common) _INVALID_
2W
creature ~ human knight
protection from green
at the beginning of your end step, if @ is in your graveyard, you may gain 1 life.
(1/1)
~~
(9) (cost) {1}{U}
# It was unsure about the cost, lol. Apparently word2vec thinks the closest card to this is actually Ichorid.
cold storage (uncommon)
3WW
enchantment ~ aura
flash
enchant creature
enchanted creature gets +3/+3.
when @ is put into a graveyard from the battlefield, return @ to its owner's hand.
# It pilfered the name Cold Storage, but this is really a pretty cool take on Moldervine Cloak.
lufilic warchief (uncommon)
WW
creature ~ cyclops
@ can't be blocked by lands and can't be blocked.
(5/6)
# Doesn't this just look like a typical nn-generated card? Also, it seems the closes card here is Evil Eye of Orms-by-Gore.
ambasmador (common)
UU
creature ~ human cleric
kicker 5
flying
when @ enters the battlefield, if it was kicked, destroy target nonartifact samurai you control and @ mana enchanted this way.
(2/3)
# Working kicker! Not useful, and with a side order of word salad, but still.
boggart spy (common)
U
creature ~ elemental
countertype % fade
fading 7
remove a % counter from @: prevent the next 1 damage that would be dealt to target creature or player this turn.
(1/1)
# Holy crap, it got fading correct, with the right countertype and everything.
clear the maetor (common) _INVALID_
U
creature ~ human soldier
enchant creature
enchanted creature has "{T}: but a 1/1 green saproling creature token onto the battlefield.
if a nonland permanent with enchant creature is a creature, it gets +1/+1 and can't be blocked by creatures with flying."
(1/1)
~~
(7) (cost) {G}
# This one is fascinating. Read very carefully. Yes, the type is off, and it spelled 'put' as 'but', but it obsessively closed the quote, so that the enchanted creature gains a multi-lined ability. I think that bit is correct, though no real card tries to do this.
dredger (rare) _INVALID_
{4}{U}
creature ~ human wizard
when @ enters the battlefield, creatures you control gain "when this creature dies, draw a card."
(4/5)
~~
(9) (rarity) N
# And yet more quote closing, here for a very creative multiple creature cantrip. I can forgive the indecision over rarity.
falver raven (rare) _INVALID_
1U
creature
haste
when @ enters the battlefield, draw two cards, then discard a card.
G, T: copy target instant or sorcery spell. you may choose new targets for the copy.
morph 1W
(2/1)
~~
(7) (types) ['creature']
# It couldn't remember if it needed a type or a subtype. Fascinating but typical desing - complex, coherent, yet utterly nonsensical and very loose with the color pie.
insriver strength _INVALID_
7UU
sorcery
target creature gains flying until end of turn.
cycling 4U
~~
(2) (types) ['sorcery']
# Bloody typical, ain't it.
spellbreaker's malechain (uncommon) _INVALID_
1U
instant
destroy target nonblack creature. it can't be regenerated.
~~
(9) (cost) {2}{U}
(7) (rarity) O
# Also this.
stonehorn (common)
1U
sorcery
target creature gets -5/-5 until end of turn.
# And this.
spitting peace (common)
1U
instant
target player discards four cards.
# And also this. I'd play all of these. Instant speed discard 4 for 1? Apparently blue is the new black, but much better.
crowd farcher (rare)
2B
creature ~ centaur
B, sacrifice an aura: remove a +1/+1 counter from @: @ gains shadow until end of turn.
(1/2)
# Two colons... this ability's cost has a cost!
inspired herd (common)
4B
creature ~ elemental
@ can't be blocked by blue creatures.
whenever @ attacks, sacrifice @ and it deals 1 damage to you.
morph 1BB
(7/4)
# You have to declare it as an attacker, then turn it face up. And it even comes with limited evasion.
srolling bubble (rare)
2BBB
legendary creature ~ spirit
tromple
(3/3)
# Am I surprised?
the augur (common)
2R
sorcery
draw a card for each card in your hand.
# Obviously there are several bad ideas going on here, the least of which is making it a common. And the most similar card is Demonic Collusion?
disembowel
4R
instant
draw a card for each color among permanents you control.
# Also, this.
stas cobra (common) _INVALID_
1R
sorcery
draw a card for each instant or sorcery card in your graveyard.
~~
(3) (cost) {3}{W}{W}
# Even more impressive. And no it wouldn't have been any better in white.
claurtrooming (rare) _INVALID_
2RR
instant
you gain 7 life.
~~
(8) (name) condraclation
# The color issues are real.
hatchet behemoth (rare)
4RR
creature ~ avatar
kicker 2B
when @ enters the battlefield, if it was kicked, target opponent puts X 1/1 white spirit creature tokens onto the battlefield.
(5/5)
# Another working kicker! It still messed up this X though.
telepire's crush (uncommon) _INVALID_
3R
instant
[choose one ~
= destroy target artifact creature.
= draw a card.]
entwine 2
~~
(6) (rarity) O
# Hey look an entwine card!
boggart plagues
4G
creature ~ zombie
you may have @ enter the battlefield as a copy of any nonland permanent you control.
(2/2)
# Bizarre.
charging sentry
2G
creature ~ human pirate
whenever you cast a noncreature spell, you may return @ from your graveyard to the battlefield. activate this ability only once each turn.
(3/1)
# Also bizarre. Can the ability retain state to work in the way it's clearly intended to?
dark's herd (uncommon) _INVALID_
G
sorcery
target player reveals his or her hand. you choose a nonland card from it and exile them. then that player shuffles his or her library.
draw a card.
~~
(7) (types) ['instant']
# I assume "them" refers to the card. Otherwise, I like it. Completely unfair and obviously the product of a neural net. If only it had been decisive about making it an instant.
deathsraper legion (mythic rare)
2GG
creature ~ zombie drake
intimidate
1: @ becomes colorless until end of turn.
(3/3)
# Clever.
kwardsory (uncommon)
1G
instant
[choose one ~
= destroy target enchantment.
= target creature gains flying until end of turn.]
# Another working choice card.
thornscape aarhand _INVALID_
2G
creature
when @ enters the battlefield, if it was kicked, put X 1/1 green saproling creature tokens onto the battlefield.
(2/2)
~~
(8) (name) sphinx's nelusal
# Things don't always work out.
traveling kard (uncommon) _INVALID_
5G
instant
choose a color. target creature gets +3/+0 until end of turn.
~~
(8) (cost) {2}{B}
# Nope.
infernal fire (uncommon)
1(R/G)(R/G)
sorcery
draw X cards, then discard two cards.
# Indeed not.
advance spitter
4
artifact
spells you cast cost 1 less to cast.
T: add one mana of any color to your mana pool.
# This, though, is pretty cool. I like all of it except the rarity.
prince of malachite (rare)
5
artifact
countertype % paye
at the beginning of your upkeep, you may put a % counter on @.
2, sacrifice @: add 1 to your mana pool for each % counter on @.
# Working and creatively named counters.
penforming (uncommon)
1
land
players can't cast spells.
# Well... Can you play lands with casting costs?
temple ward _INVALID_
_NOCOST_
legendary land ~ beast
2, T: prevent all combat damage that would be dealt this turn.
~~
(8) (name) kitsune foundry
# This also would be a bit borked.
TL;DR: This network definitely has interesting properties. It's almost obsessively good at putting double quotes around granted abilities, and it has showed some promise with kicker, but I didn't see any correct usage of X, and it still has many shortcomings common to other networks.
For the curious, the MSE set with all of the cards from my dump is here. As with all MSE sets, google drive thinks it's a zip file. You want to click the download at the top, rather than just pulling out the text file named "set".
The checkpoint itself is here. The epoch number is misleading - it's 0.43 of 1.0, where 1.0 corresponds to epoch 100. So it's really epoch 43.
This is the most fun I've had looking through card dumps in a while. A shout out to Maplesmall - doing it in MSE is very pleasant, much better than text.
Well, we're moving past 'legality' in the playing of the cards and into 'legality' in the design of the cards. You know, things that keep Ashnod's Coupon out of black-bordered land.
Very interesting results, I agree!
Rofl at Srolling Bubble for tromple.
I like seeing cards like Telepire's Crush. It makes sense that if the network does better with putting double quotes around abilities (i.e. things at the start and end of long sequences), that it would be better a generating cards that start with "choose one" and end with "entwine". I wonder why that'd be the case though. My guess is because the fields are randomized, the network never knows just how long it'll have to hold onto information, so we're training it to retain info over more timesteps than usual, and that incidentally benefits abilities like entwine.
However, when it produces cards with missing or redundant fields, it may be misremembering things. That is, based on its current state, it would appear that it already completed a field that it in fact did not, and vice versa. That's interesting though, because I would have thought with enough training time it would be able to provide us with more complete cards than we're seeing. But then again, it's having to carry info across field separators, and in our training we are teaching the network to forget information when crossing those delimiters. If it couldn't weaken that memory, it would struggle when changing contexts (which would cause it to suffer in terms of training/validation loss).
But I'm not entirely sure yet. I'm just hypothesizing. I'll have to think more on the subject before I can give a more definite answer.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
It might be but it is unlikely such a card will see print in an official manner. Possibly in an unhinged style set.
Creature 2/2 — Human Soldier
[Infect]
Whenever Lightning Standard blocks or becomes blocked by a creature, Lightning Standard becomes a copy of that creature until end of turn.
I believe that is a new use of the copy mechanic and I think it's quite novel. I rather like it.
Thanks I know right? There's a reason I learned python to write that script. MSE's filters and find feature also make it a hell of a lot easier to track down specific effects.
Hmm... Interesting! Thanks for bringing that to our attention.
I agree, it's worth looking into.
If the learning rate is too low, the network will at best converge very slowly.
If the learning rate is too high, the network may exhibit chaotic behavior, and it can end up diverging very rapidly.
Now, is the current learning rate that we have ideal (the default is 0.002)? It's possible that a slightly higher learning rate could do use some good. Perhaps we're being too conservative. I did some quick experiments to feel out the idea. Here is what I found (on the left is the learning rate, and on the right is what I saw).
0.1 : Loss exploded after 2 batches, triggering an instant abort (4.16472811 -> 49.86472462 -> abort!)
0.01: Loss exploded after 3 batches, triggering an instant abort ( 4.16472811 -> 8.28155774 -> 13.29964301 -> abort!)
0.008: Looks like it might be stable. Training loss skyrockets to 10.79317070 right the start, but it cools down quickly into the 3.25-3.30 range. But the network that went mad stayed in the 3s for hours before finally descending into insanity, so it's hard for me to say whether it will drop or not.
0.002: What I've been doing this whole time.
< 0.002: I don't see a reason to try.
So yeah, we probably can afford to be a little bit more generous with the learning rate. Not sure what it'll do for us in this case, but it's worth trying.
EDIT: I have some CPU/GPU cycles to spare today, so why not. I'll try doing the training at a learning rate of 0.008 just to see what happens and get back to you later.
I second hardcast_sixdrop on that one, that was a genius idea.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
It is kind of similar to Shape Stealer, Serene Master, and Sentinel, but yeah it's pretty new. And no, you won't copy ETBs.
Currently Playing:
Legacy: Something U/W Controlish
EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
PS: Anyone wish to donate a checkpoint?
Except there's a rule that states a card cannot be put into a hidden zone that isn't it's owners. Imagine using Word of Seizing on Elixir of Immortality and using it. According to what M11 version of Elixir says, you'd get it shuffled into your library instead of it's owners. (Obviously they changed the Errata and the text on later printings, but you get the gist of what I'm saying.)
Draft Link
Just a casual Legacy/Vintage/No-Bans player who mostly plays EDH.
Usually I use size 512, layers 3, seq_length 200, max_epochs 50, dropout 0.5. That dropout is unnecessarily large, probably. But it's what I'm used to using. On my GPU these nets usually train in a few hours; on a (very strong) CPU it takes about a day. So, this might be impractical if you don't have powerful hardware available.
Parameters for the randomize fields run were exactly as follows (this was using mtg-rnn for those funny -randomize_mana and -randomize_fields options):
Well... Careful... validation runs on multiple batches, so to achieve the same thing you'd have to train for a whole epoch on your validation data and then average the losses across the batches. And even that would only be an approximation, as as soon as you've trained more than one batch, the later batches will have learned from the earlier ones. I also believe validation batches work very differently with dropout.
And a note to Croxis, I did post a link to my rfields checkpoint if you want to make that an option. The net is big so it is a rather large file (180MB or so).
EDIT:
jml, if you want to do separate validation, the right way is to specify a split fraction that's all validation, then it will actually do the right thing for you. I don't have the code available to tell you the option you need to do this but it should be straightforward.
You're right. I cancelled the run earlier. I meant to tell you sooner. I gave it awhile and found it got stuck at around 3 and just oscillated there rather than getting better or worse.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.