Machine Learning
-
I don't know if anyone's interested, but I took a combination of the Sketch example, along with some other examples I've seen online, and come up with the following.
It's a simple Neural Network class, prepare data, train it and it can hopefully guess what you draw to test it with.
Simply:
- Draw three positive image, all the same. I.e. Draw three smiley faces.
- Then draw three negative images, all the same. I.e. Draw three sad faces.
- Then press the Train button.
- OK so now it's ready. Draw either a copy of the positive or negative image, and see if it gets it right 😀
I don't claim this is the best code ever, or even efficient algorithm and could be tuned much better, but thought I'd share it anyway 😀
-
@jmv38 I think your view does not need to scroll vertically.
If I add a label at y=1000, vertical scroll with two fingers works
-
last edited by cvp
-
last edited by
-
@Matteo for your request 2/: it already works. Dont press reset, just start another drawing in one of the boxes and it will replace the previous one. Then tap train.
-
Hi @jmv38 , I'm sorry for the delay, I've been busy and never used Pythonista for one week..Now I tested something and solved the problem related to integer argument expected of version 14 by adding
int(argument)
where needed in your code and since I use python 2.7 by default, I forgot to put the command#!python3
on the first line of the script (without it I had another problem with python 2.7). Now all work well!For request 2 about erasing only one draw, I can't understand, sorry: if I try to draw something else on the square the old draw remains. Am I wrong?
Anyway thank you again (also @cvp) for support.
Regards
-
@Matteo For your request 2, when you draw on an existing drawing, this one stays until you terminate your move, when your finger leaves the screen.
-
@cvp Hi, sorry but it doesn't work with me , the reason could be I use Pythonista 3.1 (301016)?
When I draw something on a square, leave my finger from the screen, try to draw something else on the same square by touching again the screen on the square, and leave my finger from the screen , the old draw remains, it doesn't disappear to show anly the new one.But don't worry, it is not so important, the script works well now.
Thank you
Bye
-
@Matteo You're right, but try after a training run. If I redraw before the training, both drawings stay, if I redraw after a training, the first drawing disappears
-
@jmv38 No problem at all 😀
-
Hi @jmv38, great job!
Not sure if you have already known that coreML can be used in Pythonista. Snippet in OMZ’s gist.
Cheers.
-
@cvp Yes, in this way it works! Thank you @cvp.
@jmv38 and @mkeywood : can the script recognize also the same picture drew in different positions inside the three squares? I tried it but maybe I'm wrong with something because it doesn't work, I mean if I draw the same picture in different positions, I can't obtain the good choice of the picture inside the guess square.
Thank you
Regards
-
@st84 hi. I dont see which omz post you are referring to. Can you put a link? thanks
-
@Matteo my version ofthe script tries to recognize 3 different objects. So draw the same object in 2 boxes will not work: the software assumes they are different.
The initial version of mkeywood is different.
-
last edited by
-
@cvp and @st84 thank you.
it is very powerfull. But somewhat opaque.
Do you know- how much memory is used? where is the model stored?
- what is the NN structure?
- is it fully local?
Thanks
-
@jmv38 the models are downloaded from https://docs-assets.developer.apple.com/coreml/models/MobileNet.mlmodel and copied in a local file, then next time, it is entirely local.
Big file of 170 MB
-
@cvp thanks
more in https://arxiv.org/pdf/1704.04861.pdf
-
last edited by
-
@cvp thanks.