Grape is a machine learning framework implemented by c++ and cuda.
When I began to learn deep leanring,I feel that caffe has too
mach dependences,darknet is written by c but c++,
and tiny_dnn does not support cuda well。
I hope I can combine the advantages and disadvantages of the three.
So,Grape uses many of darknet's tool functions, and draws lessons from caffe's
synced_memory design and tiny_dnn's calculation diagram design.Thanks very
much for these open source projects.
Grape has several advantages:
- dependency free
- support json/xml/binary parameters saving
- build network by JSON.(JSON is more readable than protobuf)
- c++ and cuda (specially cuda)is very fast.
- linux:
change Makefile to open/close GPU,OPENMP,DEBUG,TEST
and then just excute:
make
- os x:
os x may do not support cuda,so disable GPU option,and then you just need excute:
make
after excute make,Grape and libGrape.so(libGrape.dylib in os x) libGrape.a will generated. if you want compile unit test,just excute:
make test
For now,mnist example is offered,Fully connected neural networks can easily reach 98%
and convolutional neural networks can easily reach 99%.
for running full connected neural network to train and test on mnist dataset, excute:
./Grape cfg/mnist/mnist_net.json
for running convolution neural network to train and test on mnist dataset,excute:
./Grape cfg/mnist/mnist_net_conv.json
net contains a lot of graphs:
the relationship beteen operations and tensor:
Tensor contains data and connect the operations.The tensor which type is DATA transmit
data from one op to another,The WEIGHT tensor and BIAS tensor only hold data for the op
which create it.
QQ group: 704153141
EMAIL:1318288270@qq.com
BSD 2-Clause