This project contains some deep learning code(Note: depend on opencv/libtorch/onnxruntime):
- deep learning code(C++)
- Perceptron
- BP(Back Propagation)
- CNN(Convolutional Neural Networks)
- Linear Regression(gradient descent、least squares)
- Naive Bayes Classifier(sex classification)
- Logistic Regression(gradient descent, Batch/Mini Batch)
- KNN(K-Nearest Neighbor, classification)
- PCA(Principal Components Analysis)
- single hidden layer(two categories)
- K-Means
- Decision Tree(CART)
- YOLOv8(OpenCV DNN, libtorch, onnxruntime)
- Object Detection
- Instance Segmentation
- mathematical formula's implement with C++
- Linear Algebra
- transpose
- determinant
- adjoint matrix
- inverse matrix
- norm(vector、matrix)
- eigenvalues/eigenvectors(real symmetric matrix)
- SVD(Singular Value Decomposition)
- pseudoinverse
- trace
- Probability
- mean、variance、standard deviation
- covariance matrix
- Activation Function
- logistic sigmoid function
- softplus function
- ReLU(rectified linear unit)
- Leaky ReLUs(leaky rectified linear units)
- ELUs(Exponential linear units)
- softmax function
- tanh(Hyperbolic tangent)
- Loss Function
- MSE(Mean Square Error)
- Cross-Entropy
- Optimization
- BGD(Batch Gradient Descent)
- SGD(Stochastic Gradient Descent)
- MBGD(Mini-batch Gradient Descent)
- SGD with Momentum
- AdaGrad(Adaptive Gradient)
- RMSProp(Root Mean Square Propagation)
- Adadelta(an adaptive learning rate method)
- Adam(Adaptive Moment Estimation)
- AdaMax(a variant of Adam based on the infinity norm)
- NAG(Nesterov Accelerated Gradient)
- Nadam(Nesterov-accelerated Adaptive Moment Estimation)
- Layers
- Dropout
- LRN(Local Response Normalization)
- BN(Batch Normalization)
- common algorithm
- Brute Force(string match)
- Triangle similarity(monocular ranging)
- Linear Algebra
- Database convert to Images or Images conver to Database
- MNIST
- CIFAR10/CIFAR100
- ORL Faces Database
- open source library's usage(C++)
- Python code(support windows and linux platform)
- Universal Configuration
- Installation(Anaconda)
conda create -n NN_Test python=3.9 conda activate NN_Test pip install -r requirements.txt git clone https://github.com/fengbingchun/NN_Test cd NN_Test/demo/Python
- Code
- Installation(Anaconda)
- MediaPipe
- Installation(Anaconda)
conda create -n MediaPipe python=3.9 conda activate MediaPipe pip install mediapipe pip install requests git clone https://github.com/fengbingchun/NN_Test cd NN_Test/demo/Python
- Code
- Installation(Anaconda)
- Ultralytics
- Installation(Anaconda)
# cpu conda create --name ultralytics-env python=3.8 -y conda activate ultralytics-env pip install ultralytics # cuda # install cuda 11.8 # install cudnn v8.7.0: copy the contents of bin,include,lib/x64 cudnn directories to the corresponding CUDA directories # install tensorrt 8.5.3.1: # copy the contents of bin,include,lib/*.lib,lib/*.dll tensorrt directories to the corresponding CUDA directories # enter the python directory: pip install tensorrt-8.5.3.1-cp38-none-win_amd64.whl conda create --name ultralytics-env-cuda python=3.8 -y conda activate ultralytics-env-cuda conda install -c pytorch -c nvidia -c conda-forge pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=11.8 ultralytics # pytorch 2.2.2 conda install -c conda-forge openvino=2024.0.0 # keep the same version as libopenvino pip install nncf==2.8.0 # openvino INT8 need pip install openpyxl # write excel file pip install moviepy # parse video file git clone https://github.com/fengbingchun/NN_Test cd NN_Test/demo/Python
- Code
- LabelMe JSON to YOLOv8 TXT: Detect
- EISeg JSON to YOLOV8 TXT: Segment
- YOLOv8 train: detect/segment/classify
- YOLOv8 predict: detect/segment/classify
- YOLOv8 segment onnxruntime predict
- image classify: include AlexNet, ResNet, DenseNet
- YOLOv8 preprocess: detect/segment
- YOLOv8 postprocess: detect/segment
- PyTorch learning rate warmup
- Installation(Anaconda)
- Universal Configuration
The project support platform:
- windows10 64 bits: It can be directly build with VS2022 in windows10 64bits.
- Linux:
- DatasetToImage support cmake build(file position: prj/linux_cmake_DatasetToImage)
- Math support cmake build(file position: prj/linux_cmake_Math)
- tiny-cnn support cmake build(file position: prj/linux_cmake_tiny-cnn)
- tiny-dnn support cmake build(file position: prj/linux_cmake_tiny-dnn)
- NN support cmake build(file position: prj/linux_cmake_NN)
Blog: fengbingchun