# nn
**Repository Path**: more_than_code_admin/nn
## Basic Information
- **Project Name**: nn
- **Description**: 基于numpy,cupy与少量的cuda实现简单的卷积网络框架,并复现YOLO-V2目标检测算法。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 13
- **Forks**: 0
- **Created**: 2021-10-28
- **Last Updated**: 2022-09-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Pyconv
#### Introduction
A simple convolution neural network framework based on numpy, cupy and CUDA.
#### Installation
Python3 is required for this framework.
Run the following commands to install third party dependencies.
```shell
pip install -r requirements.txt
```
#### Demo
1. **Train a digit classifier on Minist**
Take up the following steps:
1. Download minist dataset from http://yann.lecun.com/exdb/mnist/ .
2. Unpack minist dataset to `minist/data`.
3. Move python scripts:
```shell
mv minist/trian.py .
mv minist/test.py .
```
4. Run `train.py` to train classifier.
```shell
python train.py
```
5. Run `test.py` to test trained classifier.
```shell
python test.py
```
2. **Train a smart player to play flappy bird**
I **swear** that I have finished this demo, but I have no time to merge that code to this repo.
3. **Train yolo-v2-tiny detector on VOC dataset**
Now this toy framework has been used to overfit detector on a small dataset, but hasn't been used to train detector on the whole dataset from scratch yet. (no GPU, no time, and i am lazy ... qwq)
Take up the following steps:
1. Download VOC dataset:
```shell
chmod a+x yolov2/scripts/voc2007.sh
./yolov2/scripts/voc2007.sh
```
2. Transform dataset from voc-format to darknet-format:
```shell
python yolov2/scripts/voc2yolo.py --path path/to/voc_root --to ./yolov2/data
```
3. Generate anchors for VOC dataset:
```shell
python yolov2/scripts/anchors.py --files path/to/train.txt
```
4. Move python scripts:
```shell
mv yolov2/overfit.py .
```
5. Run `overfit.py` to overfit detector on 4 images:
```shell
python overfit.py
```