From 158bb1bee9951875dbe3474d84c6663431e18301 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Tue, 21 Oct 2014 21:49:18 +0000
Subject: [PATCH] softmax on gpu
---
src/cnn.c | 17 ++++++++++-------
1 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/cnn.c b/src/cnn.c
index bfba26a..7e90a80 100644
--- a/src/cnn.c
+++ b/src/cnn.c
@@ -281,15 +281,17 @@
void train_assira()
{
network net = parse_network_cfg("cfg/assira.cfg");
+ int imgs = 1000/net.batch+1;
+ //imgs = 1;
srand(2222222);
int i = 0;
char *labels[] = {"cat","dog"};
while(1){
i += 1000;
- data train = load_data_image_pathfile_random("data/assira/train.list", 1000, labels, 2, 256, 256);
+ data train = load_data_image_pathfile_random("data/assira/train.list", imgs*net.batch, labels, 2, 256, 256);
normalize_data_rows(train);
clock_t start = clock(), end;
- float loss = train_network_sgd_gpu(net, train, 10);
+ float loss = train_network_sgd_gpu(net, train, imgs);
end = clock();
printf("%d: %f, Time: %lf seconds\n", i, loss, (float)(end-start)/CLOCKS_PER_SEC );
free_data(train);
@@ -358,7 +360,7 @@
data train = load_all_cifar10();
while(++count <= 10000){
clock_t start = clock(), end;
- float loss = train_network_sgd_gpu(net, train, iters);
+ float loss = train_network_sgd(net, train, iters);
end = clock();
//visualize_network(net);
//cvWaitKey(5000);
@@ -369,7 +371,7 @@
float test_acc = network_accuracy(net, test);
printf("%d: Loss: %f, Test Acc: %f, Time: %lf seconds, LR: %f, Momentum: %f, Decay: %f\n", count, loss, test_acc,(float)(end-start)/CLOCKS_PER_SEC, net.learning_rate, net.momentum, net.decay);
char buff[256];
- sprintf(buff, "/home/pjreddie/cifar/cifar2_%d.cfg", count);
+ sprintf(buff, "/home/pjreddie/cifar/cifar10_2_%d.cfg", count);
save_network(net, buff);
}else{
printf("%d: Loss: %f, Time: %lf seconds, LR: %f, Momentum: %f, Decay: %f\n", count, loss, (float)(end-start)/CLOCKS_PER_SEC, net.learning_rate, net.momentum, net.decay);
@@ -435,7 +437,7 @@
int iters = 10000/net.batch;
while(++count <= 2000){
clock_t start = clock(), end;
- float loss = train_network_sgd(net, train, iters);
+ float loss = train_network_sgd_gpu(net, train, iters);
end = clock();
float test_acc = network_accuracy(net, test);
//float test_acc = 0;
@@ -893,7 +895,8 @@
int main(int argc, char *argv[])
{
- //train_assira();
+ //test_blas();
+ train_assira();
//test_distribution();
//feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
@@ -907,7 +910,7 @@
//test_ensemble();
//test_nist_single();
//test_nist();
- train_nist();
+ //train_nist();
//test_convolutional_layer();
//test_col2im();
//test_cifar10();
--
Gitblit v1.10.0