How Convolutional Neural Networks Work
brohrer.github.io
brohrer.github.io
You really dont need $2k workstation..
Of course, for personal use I do have a gtx 1080 because I like to game and play tensorflow/caffe
https://github.com/ledell/h2oEnsemble-benchmarks/blob/master...
You can also do stuff like following in python to execute some code:
os.system("scp script_demo.py " + sys.argv[1] + ":/home/ubuntu/")
os.system("ssh " + sys.argv[1] + " sudo chmod 777 /home/ubuntu/script_demo.py")
os.system("ssh " + sys.argv[1] + " './script_demo.py'")
os.system("scp " + sys.argv[1] + ":/home/ubuntu/output/* ./output/")
Then it will execute, after it executes - shut it down.You don't need sudo, because it's your file. You need just "chmod 755", not "777". And you don't need chmod in the first place - just run "python script_demo.py".
Simpler bash equivalent for the record:
scp script_demo.py "$1"
ssh "$1" python script_demo.py
scp "$1":output/* ./output/There's lots of things we do that you could say "who cares?" about. Single letter variables. Comments. Const-correctness. Unnecessary N^2 algorithms. Usually it turns out that either you or someone you work with cares a few months/years afterwards. So just learn to do it correctly the first time. Especially if the correct way takes less time than the "magic fix".
Also, you are being rather pedantic here. If people can figure out how to take what I copied & pasted and turn it into a script they can probably know chmod 777 isn't great.
That being said, and why I think this is ridiculous, is that you are assuming this matters. Going into the weeds here, to play along: The script is immediately being ran, on temporary and very recently launched ec2 instance, probably with the use of a pem and that presumably can even be part of AWS security group that only allows your IP, and is shut down following it's execution.
I can't picture this being a security vulnerability at all. Calling it a terrible example is relative - I wrote this copy and pasted on a cell phone trying to help someone. Honestly, didn't even see the "sudo chmod 777", just pasted away.
Can you expand on that? What happened?
You should always try to keep the instances stateless and store any data outside the instances, such as on S3 or EFS.
The easiest way is to use some well-known architecture (e.g. VGG16) and go. See: https://github.com/leriomaggio/deep-learning-keras-euroscipy...
This is the easiest way to setup a CNN and train it with your sample images (at least compared to Caffe, Tensorflow, and Theano). I say that because it's all GUI based! Real convenient.
Any questions, feel free to pm me.
Do you mind disclose where you got them?
Thanks!
The other best resource, IMHO, is http://karpathy.github.io/neuralnets/.
This is an interesting point, and I assume that 'make it look look like an image' means the same thing as 'think of it as an image'. Can others here who works with CNNs regularly or professionally, comment on whether the author's intuition is essentially correct (give or take some details of course)?
[Edit] Too broad in the sense that, intuitively, there is perhaps an implied assumption of continuity of the input function defining the image. Note that such assumptions can be made explicit with various so-called statistical priors incorporated in the network.
This is not convolutional though.
You will find his lectures to be very entertaining and easy to understand, being a psychologist whose desire is to make a computer operate like a human brain, he's more interested in how the brain actually works, than hacking ML code.
Hinton describes backprop, why he invented it, and exactly how it emulates the way the human brain works.
Hinton now works at microsoft, he is considered the modern day 'godfather' of DeepLearning/ML
Of course, basically no actual neuroscientists or cognitive scientists think the brain actually works via supervised backpropagation. So he actually has a bit of a holy war going on with the people who properly work on human learning rather than machine learning.
For example, activation via ReLU instead of sigmoid/tanh significantly improves the performance of deep neural networks.
Then there's stuff like BatchNorm, Pooling, Dropout etc...
Having a cookbook approach with a catchy name and orders of magnitude more processing power have revived neural nets and now they are finally doing something useful.
Now everyone is jumping on the bandwagon so the field is progressing very quickly. Just because it's hyped doesn't mean it's not worth giving it a second look (although I'm still on the sidelines myself.)
The biggest problem I see in AI is that the algorithms are generally fairly straightforward, but people haven't had the computing power to explore the problem space. We are seeing drastic improvement in things like video cards (routinely 1000+ cores) and data processing locality (map reduce). But processors have stagnated.
If we really want AI in any reasonable timescale, we need large arrays of general-purpose cores with a sane communication protocol that doesn't fixate on things like caching, we need a hybrid between Go and Erlang to do concurrent functional programming in a readable way with automagic scaling over a network, and we need all this yesterday. The fancy schmancy AI algorithms will become apparent when processing power is no longer the primary limitation, and at that point we can optimize them.