Thanks to nunojesus for designing this logo!
This repository contains code for a computer-vision program to discern the difference between two common household animals. The program uses a machine learning algorithm called a convolutional neural network.
This algorithm has been implemented in two popular software libraries—PyTorch and TensorFlow. The data used to train the model was Kaggle's dataset of cat and dog pictures.
See the following file in the root of this repo: CONTRIBUTING.md
If you want to use and modify this program to your fullest potential, you'll need to have a lot of background knowledge about artificial neural-networks and machine-learning in general. There's no easy way around these requirements, unfortunately. You have to put in the time, read lots of books and blog-posts, take online-courses, etc. Going beyond this point, I'll assume you have that knowledge, since I do not have anywhere near the time to explain everything. I will list a few resources, however:
- http://neuralnetworksanddeeplearning.com/
- Great online book. Many people will list this as a resource if you ask around. Well-written and very informative.
- http://cs231n.github.io/
- Lecture-notes and other resources from a course at Stanford University.
- Also see: https://www.youtube.com/watch?v=NfnWJUyUJYU&list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlC&index=0
- These are video-lectures for the notes in question! Very, very helpful!
- https://www.coursera.org/learn/machine-learning
- Another well-respected resource like the first one listed. If you want a more traditional "lecture and listen" setting, this will suffice.
- http://www.deeplearningbook.org/
- A bit of a newbie on the field, but has some top-notch authors behind it. They're well-known and well-respected in the field of AI.
- https://www.youtube.com/watch?v=aircAruvnKk
- This video was created by 3Blue1Brown as part of a series, which is actually being created as I speak (October 15th, 2017). 3Blue1Brown has a reputation of teaching things in an intuitive manner with lots of nice visualizations.
- https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/
- A short introduction on the inner-workings of convolutional neural networks, a very popular machine learning algorithm (as of 2018) and the algorithm that this program uses for image recognition!
- https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU
- This video is part of a short series on artificial neural-networks. It's just a small overview of some of the general concepts. It does throw in a few implementation-level concepts, like gradient-descent with matrices, which is a nice feature.
Even having a solid background in machine-learning, you still need to (obviously) know how to program in Python and how to use the TensorFlow framework. There are so many tutorials for both of these that I won't even bother to list any, as a google-search will yield everything you seek.
I'd like to invite you to check out this project's wiki page!