cnn-from-scratch's People
cnn-from-scratch's Issues
Allow activations to follow non-FC layers
Currently activation functions are only tested for post-FC layers - try with convs and pools and implement any required changes
Consolidate Tests
Tests are not clean and not isolated enough.
Vectorised Convolution does not involve biases.
Code Refactor
Split out cnn.py into sub dirs and class files
Check dCdF calc in back-prop
Check whether the transpose operations in the vectorised calculation of dCdF are required in Conv2D layer backprop. It appears that they may cancel each other out.
Clean up optimisers
Optimiser classes are not as clean as they could be.
Interface between Layers and Optimisers at the param update stage needs simplifying.
CNN write up
The aim of this repo is to act as a useful resource for somebody fairly new to CNNs who are looking to understand the inner workings in more detail.
The scope of this project is understanding how CNNs can be implemented using only basic Python libraries (NumPy). The documentation will therefore, describe how the cnn package works and ultimately how to implement a CNN in a repeatable manner; for an arbitrary number of layers.
Outline:
- Basic intro to CNNs
- Convolutional layers
- Pooling layers
- Flatten layers
- FC layers
- Activation (pseudo) layers
- Cost/ loss
- Optimisation algorithms
Implement custom parameter objects
The objects would extend np.array objects to include additional information such as 'trainable' to avoid the inconvenience of containing them in dictionaries.
- Implement param objects
- refactor layer parameters to use the new object
- update optimisers (name check is not necessary)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.