Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 86C642009F8 for ; Fri, 3 Jun 2016 09:48:20 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 8555F160A48; Fri, 3 Jun 2016 07:48:20 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id E4ED9160A2A for ; Fri, 3 Jun 2016 09:48:17 +0200 (CEST) Received: (qmail 56551 invoked by uid 500); 3 Jun 2016 07:48:17 -0000 Mailing-List: contact commits-help@singa.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@singa.incubator.apache.org Delivered-To: mailing list commits@singa.incubator.apache.org Received: (qmail 56542 invoked by uid 99); 3 Jun 2016 07:48:17 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Jun 2016 07:48:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 87F5AC10EA for ; Fri, 3 Jun 2016 07:48:16 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -4.646 X-Spam-Level: X-Spam-Status: No, score=-4.646 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.426] autolearn=disabled Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id voQEFxGQfiyg for ; Fri, 3 Jun 2016 07:48:10 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with SMTP id BD32C5F4E4 for ; Fri, 3 Jun 2016 07:48:09 +0000 (UTC) Received: (qmail 56126 invoked by uid 99); 3 Jun 2016 07:48:08 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 03 Jun 2016 07:48:08 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id A2B2DE964E; Fri, 3 Jun 2016 07:48:08 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: wangsh@apache.org To: commits@singa.incubator.apache.org Date: Fri, 03 Jun 2016 07:48:24 -0000 Message-Id: <8b78846a44bf4c88aa04ab57ca0f05de@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [19/60] incubator-singa git commit: SINGA-163 - Reorganize the project folder layout archived-at: Fri, 03 Jun 2016 07:48:20 -0000 http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/alexnet/Makefile.example ---------------------------------------------------------------------- diff --git a/examples/alexnet/Makefile.example b/examples/alexnet/Makefile.example deleted file mode 100644 index f895146..0000000 --- a/examples/alexnet/Makefile.example +++ /dev/null @@ -1,29 +0,0 @@ -#/** -# * Licensed to the Apache Software Foundation (ASF) under one -# * or more contributor license agreements. See the NOTICE file -# * distributed with this work for additional information -# * regarding copyright ownership. The ASF licenses this file -# * to you under the Apache License, Version 2.0 (the -# * "License"); you may not use this file except in compliance -# * with the License. You may obtain a copy of the License at -# * -# * http://www.apache.org/licenses/LICENSE-2.0 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# * See the License for the specific language governing permissions and -# * limitations under the License. -# */ - -libs :=singa glog protobuf - -.PHONY: all create - -create: - $(CXX) im2rec.cc `pkg-config opencv --cflags --libs` -std=c++11 -lsinga -lprotobuf -lglog \ - -I../../include -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs \ - -Wl,-rpath=../../.libs/ -o im2rec.bin - $(CXX) rec2im_test.cc `pkg-config opencv --cflags --libs` -std=c++11 -lsinga -lprotobuf -lglog \ - -I../../include -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs \ - -Wl,-rpath=../../.libs/ -o rec2im_test.bin http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/alexnet/cudnn.conf ---------------------------------------------------------------------- diff --git a/examples/alexnet/cudnn.conf b/examples/alexnet/cudnn.conf deleted file mode 100644 index e8d14c6..0000000 --- a/examples/alexnet/cudnn.conf +++ /dev/null @@ -1,448 +0,0 @@ -name: "alexnet" -train_steps: 450000 -test_steps: 500 -test_freq: 1000 -disp_freq: 20 -checkpoint_freq: 100000 -checkpoint_after: 100000 -gpu: 0 -#debug: true -#checkpoint_path: "examples/alexnet/checkpoint/step10000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay: 0.0005 - momentum: 0.9 - learning_rate { - type: kStep - base_lr: 0.01 - step_conf { - gamma: 0.1 - change_freq: 100000 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path :"/data/dataset/imagenet/train_record.bin" - mean_file: "/data/dataset/imagenet/image_mean.bin" - batchsize: 256 - #random_skip: 1000 - shape: 3 - shape: 256 - shape: 256 - } - include: kTrain - } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path :"/data/dataset/imagenet/val_record.bin" - mean_file: "/data/dataset/imagenet/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 256 - shape: 256 - } - include: kTest - } - layer{ - name: "image" - type: kImagePreprocess - rgbimage_conf { - cropsize: 227 - mirror: true - } -# partition_dim: 0 - srclayers: "data" - } - layer{ - name: "conv1" - type: kCudnnConv - srclayers: "image" - convolution_conf { - num_filters: 96 - kernel: 11 - stride: 4 - } -# partition_dim: 0 - param { - name: "w1" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b1" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - } - layer { - name: "relu1" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "conv1" -# partition_dim: 0 - } - layer { - name: "pool1" - type: kCudnnPool - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu1" -# partition_dim: 0 - } - layer { - name: "norm1" - type: kCudnnLRN - lrn_conf { - local_size: 5 - alpha: 0.0001 - beta: 0.75 - knorm: 1 - } - srclayers: "pool1" -# partition_dim: 0 - } - - layer{ - name: "conv2" - type: kCudnnConv - srclayers: "norm1" - convolution_conf { - num_filters: 256 - kernel: 5 - pad: 2 - } -# partition_dim: 0 - param { - name: "w2" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b2" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu2" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "conv2" -# partition_dim: 0 - } - layer { - name: "pool2" - type: kCudnnPool - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu2" -# partition_dim: 0 - } - - layer { - name: "norm2" - type: kCudnnLRN - lrn_conf { - local_size: 5 - alpha: 0.0001 - beta: 0.75 - knorm: 1 - } - srclayers: "pool2" -# partition_dim: 0 - } - layer{ - name: "conv3" - type: kCudnnConv - srclayers: "norm2" - convolution_conf { - num_filters: 384 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w3" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b3" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - } - layer { - name: "relu3" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "conv3" -# partition_dim: 0 - } - layer{ - name: "conv4" - type: kCudnnConv - srclayers: "relu3" - convolution_conf { - num_filters: 384 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w4" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b4" - lr_scale:2 - wd_scale:0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu4" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "conv4" -# partition_dim: 0 - } - layer{ - name: "conv5" - type: kCudnnConv - srclayers: "relu4" - convolution_conf { - num_filters: 256 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w5" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b5" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu5" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "conv5" -# partition_dim: 0 - } - layer { - name: "pool5" - type: kCudnnPool - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu5" -# partition_dim: 0 - } - layer { - name: "ip6" - type: kInnerProduct - innerproduct_conf { - num_output: 4096 - } - param { - name: "w6" - init { - type: kGaussian - std: 0.005 - } - } - param { - name: "b6" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - srclayers: "pool5" -# partition_dim: 1 - } - layer { - name: "relu6" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "ip6" -# partition_dim: 1 - } - layer { - name: "drop6" - type: kDropout - srclayers: "relu6" -# partition_dim: 1 - } - layer { - name: "ip7" - type: kInnerProduct - innerproduct_conf { - num_output: 4096 - } -# partition_dim: 1 - param { - name: "w7" - init { - type: kGaussian - std: 0.005 - } - } - param { - name: "b7" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - srclayers: "drop6" - } - layer { - name: "relu7" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers: "ip7" -# partition_dim: 1 - } - layer { - name: "drop7" - type: kDropout - srclayers: "relu7" -# partition_dim: 1 - } - layer { - name: "ip8" - type: kInnerProduct - innerproduct_conf { - num_output: 1000 - } -# partition_dim: 1 - param { - name: "w8" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b8" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - srclayers: "drop7" - } - layer { - name: "loss" - type: kCudnnSoftmaxLoss - softmaxloss_conf { - topk:1 - } - srclayers: "ip8" - srclayers: "data" - include: kTrain - } - layer { - name : "softmax" - type: kCudnnSoftmax - srclayers: "ip8" - include: kTest - } - layer { - name : "accuracy" - type: kAccuracy - srclayers: "softmax" - srclayers: "data" - include: kTest - } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 1 - nworkers_per_procs: 1 - workspace: "examples/alexnet" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/alexnet/im2rec.cc ---------------------------------------------------------------------- diff --git a/examples/alexnet/im2rec.cc b/examples/alexnet/im2rec.cc deleted file mode 100644 index 58ee44f..0000000 --- a/examples/alexnet/im2rec.cc +++ /dev/null @@ -1,157 +0,0 @@ -/************************************************************ -* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -* -*************************************************************/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "singa/io/store.h" -#include "singa/proto/common.pb.h" - -using std::string; - -const int kImageSize = 256; -const int kImageNBytes = 256*256*3; - -void create_data(const string& image_list, - const string& input_folder, - const string& output_folder, - const string& backend = "kvfile") { - singa::RecordProto image; - image.add_shape(3); - image.add_shape(kImageSize); - image.add_shape(kImageSize); - - singa::RecordProto mean; - mean.CopyFrom(image); - for (int i = 0; i < kImageNBytes; ++i) - mean.add_data(0.f); - - auto store = singa::io::CreateStore(backend); - if (backend == "lmdb") - CHECK(store->Open(output_folder + "/image_record", singa::io::kCreate)); - else - CHECK(store->Open(output_folder + "/image_record.bin", singa::io::kCreate)); - - LOG(INFO) << "Generating image record"; - - std::ifstream image_list_file(image_list.c_str(), std::ios::in); - CHECK(image_list_file.is_open()) << "Unable to open image list"; - - string image_file_name; - int label; - char str_buffer[kImageNBytes]; - string rec_buf; - cv::Mat img, res; - std::vector> file_list; - while (image_list_file >> image_file_name >> label) - file_list.push_back(std::make_pair(image_file_name, label)); - LOG(INFO) << "Data Shuffling"; - unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); - std::shuffle(file_list.begin(), file_list.end() - , std::default_random_engine()); - LOG(INFO) << "Total number of images is " << file_list.size(); - int ImageNum = file_list.size(); - - for (int imageid = 0; imageid < ImageNum; ++imageid) { - string path = input_folder + "/" + file_list[imageid].first; - img = cv::imread(path, CV_LOAD_IMAGE_COLOR); - CHECK(img.data != NULL) << "OpenCV load image fail" << path; - cv::resize(img, res, cv::Size(kImageSize, kImageSize), - 0, 0, CV_INTER_LINEAR); - for (int h = 0; h < kImageSize; ++h) { - const uchar* ptr = res.ptr(h); - int img_index = 0; - for (int w = 0; w < kImageSize; ++w) - for (int c = 0; c < 3; ++c) - str_buffer[(c*kImageSize+h)*kImageSize+w] = - static_cast(ptr[img_index++]); - } - /* - for (int i = 0; i < kImageSize; ++i) { - for (int j = 0; j < kImageSize; ++j) { - cv::Vec3b pixel = res.at(j, i); - str_buffer[i*kImageSize+j] = static_cast(pixel.val[2]); - str_buffer[kImageSize*kImageSize+i*kImageSize+j] = static_cast(pixel.val[1]); - str_buffer[kImageSize*kImageSize*2+i*kImageSize+j] = static_cast(pixel.val[0]); - } - } - */ - image.set_label(file_list[imageid].second); - image.set_pixel(str_buffer, kImageNBytes); - image.SerializeToString(&rec_buf); - - int length = snprintf(str_buffer, kImageNBytes, "%08d", imageid); - CHECK(store->Write(string(str_buffer, length), rec_buf)); - if ((imageid+1) % 1000 == 0) { - store->Flush(); - LOG(INFO) << imageid+1 << " files processed."; - } - const string& pixels = image.pixel(); - for (int i = 0; i < kImageNBytes; ++i) - mean.set_data(i, mean.data(i) + static_cast(pixels[i])); - } - if (ImageNum % 1000 != 0) - LOG(INFO) << ImageNum << " files processed."; - - store->Flush(); - store->Close(); - - LOG(INFO) << "Create image mean"; - if (backend == "lmdb") - CHECK(store->Open(output_folder + "/image_mean", singa::io::kCreate)); - else - CHECK(store->Open(output_folder + "/image_mean.bin", singa::io::kCreate)); - for (int i = 0; i < kImageNBytes; i++) - mean.set_data(i, mean.data(i) / ImageNum); - mean.SerializeToString(&rec_buf); - store->Write("mean", rec_buf); - store->Flush(); - store->Close(); - delete store; - - LOG(INFO) << "Done!"; -} - -int main(int argc, char** argv) { - if (argc < 4) { - std::cout << "Create data stores for ImageNet dataset.\n" - << "Usage: " - << " \n"; - } else { - google::InitGoogleLogging(argv[0]); - FLAGS_alsologtostderr = 1; - if (argc == 4) - create_data(string(argv[1]), string(argv[2]), string(argv[3])); - else - create_data(string(argv[1]), string(argv[2]), - string(argv[3]), string(argv[4])); - } - return 0; -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/alexnet/job.conf ---------------------------------------------------------------------- diff --git a/examples/alexnet/job.conf b/examples/alexnet/job.conf deleted file mode 100644 index 3b7eaf4..0000000 --- a/examples/alexnet/job.conf +++ /dev/null @@ -1,403 +0,0 @@ -name: "alexnet" -train_steps: 450000 -test_steps: 500 -test_freq: 1000 -disp_freq: 20 -checkpoint_freq: 100000 -checkpoint_after: 100000 -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay: 0.0005 - momentum: 0.9 - learning_rate { - type: kStep - base_lr: 0.01 - step_conf { - gamma: 0.1 - change_freq: 100000 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path :"/data/dataset/imagenet/train_record.bin" - mean_file: "/data/dataset/imagenet/image_mean.bin" - batchsize: 256 - #random_skip: 1000 - shape: 3 - shape: 256 - shape: 256 - } - include: kTrain - } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path :"/data/dataset/imagenet/val_record.bin" - mean_file: "/data/dataset/imagenet/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 256 - shape: 256 - } - include: kTest - } - layer{ - name: "image" - type: kImagePreprocess - rgbimage_conf { - cropsize: 227 - mirror: true - } -# partition_dim: 0 - srclayers: "data" - } - layer{ - name: "conv1" - type: kConvolution - srclayers: "image" - convolution_conf { - num_filters: 96 - kernel: 11 - stride: 4 - } -# partition_dim: 0 - param { - name: "w1" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b1" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - } - layer { - name: "relu1" - type: kReLU - srclayers: "conv1" -# partition_dim: 0 - } - layer { - name: "pool1" - type: kPooling - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu1" -# partition_dim: 0 - } - layer { - name: "norm1" - type: kLRN - lrn_conf { - local_size: 5 - alpha: 0.0001 - beta: 0.75 - knorm: 1 - } - srclayers: "pool1" -# partition_dim: 0 - } - - layer{ - name: "conv2" - type: kConvolution - srclayers: "norm1" - convolution_conf { - num_filters: 256 - kernel: 5 - pad: 2 - } -# partition_dim: 0 - param { - name: "w2" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b2" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu2" - type: kReLU - srclayers: "conv2" -# partition_dim: 0 - } - layer { - name: "pool2" - type: kPooling - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu2" -# partition_dim: 0 - } - - layer { - name: "norm2" - type: kLRN - lrn_conf { - local_size: 5 - alpha: 0.0001 - beta: 0.75 - knorm: 1 - } - srclayers: "pool2" -# partition_dim: 0 - } - layer{ - name: "conv3" - type: kConvolution - srclayers: "norm2" - convolution_conf { - num_filters: 384 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w3" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b3" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - } - layer { - name: "relu3" - type: kReLU - srclayers: "conv3" -# partition_dim: 0 - } - layer{ - name: "conv4" - type: kConvolution - srclayers: "relu3" - convolution_conf { - num_filters: 384 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w4" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b4" - lr_scale:2 - wd_scale:0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu4" - type: kReLU - srclayers: "conv4" -# partition_dim: 0 - } - layer{ - name: "conv5" - type: kConvolution - srclayers: "relu4" - convolution_conf { - num_filters: 256 - kernel: 3 - pad: 1 - } -# partition_dim: 0 - param { - name: "w5" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b5" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - } - layer { - name: "relu5" - type: kReLU - srclayers: "conv5" -# partition_dim: 0 - } - layer { - name: "pool5" - type: kPooling - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - srclayers: "relu5" -# partition_dim: 0 - } - layer { - name: "ip6" - type: kInnerProduct - innerproduct_conf { - num_output: 4096 - } - param { - name: "w6" - init { - type: kGaussian - std: 0.005 - } - } - param { - name: "b6" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - srclayers: "pool5" -# partition_dim: 1 - } - layer { - name: "relu6" - type: kReLU - srclayers: "ip6" -# partition_dim: 1 - } - layer { - name: "drop6" - type: kDropout - srclayers: "relu6" -# partition_dim: 1 - } - layer { - name: "ip7" - type: kInnerProduct - innerproduct_conf { - num_output: 4096 - } -# partition_dim: 1 - param { - name: "w7" - init { - type: kGaussian - std: 0.005 - } - } - param { - name: "b7" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 1 - } - } - srclayers: "drop6" - } - layer { - name: "relu7" - type: kReLU - srclayers: "ip7" -# partition_dim: 1 - } - layer { - name: "drop7" - type: kDropout - srclayers: "relu7" -# partition_dim: 1 - } - layer { - name: "ip8" - type: kInnerProduct - innerproduct_conf { - num_output: 1000 - } -# partition_dim: 1 - param { - name: "w8" - init { - type: kGaussian - std: 0.01 - } - } - param { - name: "b8" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value: 0 - } - } - srclayers: "drop7" - } - layer { - name: "loss" - type: kSoftmaxLoss - softmaxloss_conf { - topk:1 - } - srclayers: "ip8" - srclayers: "data" - } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 1 - nworkers_per_procs: 1 - workspace: "examples/alexnet" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/alexnet/rec2im_test.cc ---------------------------------------------------------------------- diff --git a/examples/alexnet/rec2im_test.cc b/examples/alexnet/rec2im_test.cc deleted file mode 100644 index bb92d95..0000000 --- a/examples/alexnet/rec2im_test.cc +++ /dev/null @@ -1,116 +0,0 @@ -/************************************************************ -* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -* -*************************************************************/ - - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "singa/io/store.h" -#include "singa/proto/common.pb.h" - -using std::string; - -const int kImageSize = 256; -const int kImageNBytes = 256*256*3; - -void generate_image(const string& output_folder, - const string& key, - const string& val) { - float image_buf[kImageNBytes]; - singa::RecordProto image; - image.ParseFromString(val); - cv::Mat img = cv::Mat::zeros(kImageSize, kImageSize, CV_8UC3); - string pixel = image.pixel(); - int label = image.label(); - string image_name = output_folder+"/"+key+"_"+std::to_string(label)+".jpg"; - std::cout << "Writing to " << image_name << "...\n"; - for (int h = 0; h < kImageSize; ++h) { - uchar* ptr = img.ptr(h); - int img_index = 0; - for (int w = 0; w < kImageSize; ++w) { - for (int c = 0; c < 3; ++c) - ptr[img_index++] = - static_cast( - static_cast( - pixel[(c * kImageSize + h) * kImageSize + w])); - } - } - - cv::imwrite(image_name, img); -} - -void visualize(const string& input_file, - const string& output_folder, - const string& id_list) { - auto store = singa::io::OpenStore("kvfile", input_file, - singa::io::kRead); - - std::vector image_id_list; - - std::ifstream id_list_file(id_list.c_str(), std::ios::in); - CHECK(id_list_file.is_open()) << "Unable to open image id list"; - string id_; - while (id_list_file >> id_) { - int x; - x = std::stoi(id_); - image_id_list.push_back(x); - } - std::sort(image_id_list.begin(), image_id_list.end()); - - string key, val; - for (int i = 0; i < image_id_list[0]; ++i) - if (!store->Read(&key, &val)) { - store->SeekToFirst(); - CHECK(store->Read(&key, &val)); - } - generate_image(output_folder, key, val); - - for (size_t i = 1; i != image_id_list.size(); ++i) { - for (int j = 0; j < image_id_list[i]-image_id_list[i-1]; ++j) - if (!store->Read(&key, &val)) { - store->SeekToFirst(); - CHECK(store->Read(&key, &val)); - } - generate_image(output_folder, key, val); - } -} - -int main(int argc, char** argv) { - if (argc != 4) { - std::cout << "Visualize images from binary kvfile records.\n" - << "Usage: \n"; - } else { - google::InitGoogleLogging(argv[0]); - FLAGS_alsologtostderr = 1; - visualize(string(argv[1]), string(argv[2]), string(argv[3])); - } - - return 0; -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/char-rnn/data.py ---------------------------------------------------------------------- diff --git a/examples/char-rnn/data.py b/examples/char-rnn/data.py deleted file mode 100644 index 20e7262..0000000 --- a/examples/char-rnn/data.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python - -#/************************************************************ -#* -#* Licensed to the Apache Software Foundation (ASF) under one -#* or more contributor license agreements. See the NOTICE file -#* distributed with this work for additional information -#* regarding copyright ownership. The ASF licenses this file -#* to you under the Apache License, Version 2.0 (the -#* "License"); you may not use this file except in compliance -#* with the License. You may obtain a copy of the License at -#* -#* http://www.apache.org/licenses/LICENSE-2.0 -#* -#* Unless required by applicable law or agreed to in writing, -#* software distributed under the License is distributed on an -#* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -#* KIND, either express or implied. See the License for the -#* specific language governing permissions and limitations -#* under the License. -#* -#*************************************************************/ - - -# pls get linux_input.txt from http://cs.stanford.edu/people/karpathy/char-rnn/ -data = open('linux_input.txt', 'r').read() # should be simple plain text file -chars = list(set(data)) -data_size, vocab_size = len(data), len(chars) -print 'data has %d characters, %d unique.' % (data_size, vocab_size) -with open('vocab.txt', 'w') as fd: - fd.write("".join(chars)) - fd.flush() http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/char-rnn/job.conf ---------------------------------------------------------------------- diff --git a/examples/char-rnn/job.conf b/examples/char-rnn/job.conf deleted file mode 100644 index bd648f1..0000000 --- a/examples/char-rnn/job.conf +++ /dev/null @@ -1,253 +0,0 @@ -name:"char-rnn" -train_steps: 100000 -disp_freq: 100 -#debug: true -gpu: 0 -train_one_batch { - alg: kBPTT -} - -updater { - type: kRMSProp - rmsprop_conf { - rho: 0.95 - } - learning_rate { - type: kStep - base_lr: 0.002 - step_conf { - gamma: 0.97 - change_freq: 2000 - } - } - clip_low: -5 - clip_high: 5 -} - -neuralnet { - unroll_len: 50 - layer { - name: "data" - type: kCharRNN - unroll_len: 1 - char_rnn_conf { - path: "examples/char-rnn/linux_input.txt" - vocab_path:"examples/char-rnn/vocab.txt" - batchsize: 50 - unroll_len: 50 - } - } - layer { - name: "onehot" - type: kOneHot - srclayers: "data" - unroll_conn_type: kUnrollOneToAll - onehot_conf { - vocab_size: 101 - } - } - - layer { - name: "label" - type: kRNNLabel - srclayers: "data" - unroll_conn_type: kUnrollOneToAll - } - - layer { - name: "gru1" - type: kGRU - srclayers: "onehot" - gru_conf { - dim_hidden: 512 - } - param { - name: "z_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "z_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "z_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - - } -# layer { -# name: "gru2" -# type: kGRU -# srclayers: "gru1" -# gru_conf { -# dim_hidden: 512 -# } -# param { -# name: "z_hx2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "r_hx2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "c_hx2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "z_hh2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "r_hh2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "c_hh2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "z_b2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "r_b2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# param { -# name: "c_b2" -# init { -# type: kUniform -# low: -0.08 -# high: 0.08 -# } -# } -# } -# - layer { - name: "ip1" - type: kInnerProduct - srclayers: "gru1" - innerproduct_conf { - num_output: 101 - } - param { - name: "w" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - } - layer { - name: "loss" - type: kSoftmaxLoss - srclayers: "ip1" - srclayers: "label" - } -} - -cluster { - workspace: "examples/char-rnn/" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/char-rnn/sample.conf ---------------------------------------------------------------------- diff --git a/examples/char-rnn/sample.conf b/examples/char-rnn/sample.conf deleted file mode 100644 index b15ef9e..0000000 --- a/examples/char-rnn/sample.conf +++ /dev/null @@ -1,212 +0,0 @@ -name:"char-rnn" -test_steps: 100 -#debug: true -gpu: 0 -checkpoint_path: "examples/char-rnn/checkpoint/step2000-worker0" -train_one_batch { - alg: kBPTT -} - -neuralnet { - layer { - name: "data" - type: kRNNDummy - rnn_dummy_conf { - shape: 1 - integer: true - low: 0 - high: 101 - dynamic_srclayer: "argsort" - } - } - layer { - name: "onehot" - type: kOneHot - srclayers: "data" - } - - layer { - name: "gru1" - type: kGRU - srclayers: "onehot" - gru_conf { - dim_hidden: 512 - } - param { - name: "z_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hx" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "z_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hh" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "z_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - } - layer { - name: "gru2" - type: kGRU - srclayers: "gru1" - gru_conf { - dim_hidden: 512 - } - param { - name: "z_hx2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hx2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hx2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "z_hh2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "r_hh2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "c_hh2" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - } - - - layer { - name: "ip1" - type: kInnerProduct - srclayers: "gru2" - innerproduct_conf { - num_output: 101 - } - param { - name: "w" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - param { - name: "b" - init { - type: kUniform - low: -0.08 - high: 0.08 - } - } - } - layer { - name: "softmax" - type: kSoftmax - srclayers: "ip1" - } - layer { - name: "argsort" - type: kArgSort - srclayers: "softmax" - } - layer { - name: "sampling" - type: kCharRNNOutput - srclayers: "argsort" - char_rnn_conf { - vocab_path: "examples/char-rnn/vocab.txt" - } - } -} - -cluster { - workspace: "examples/char-rnn/" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/Makefile.example ---------------------------------------------------------------------- diff --git a/examples/cifar10/Makefile.example b/examples/cifar10/Makefile.example deleted file mode 100644 index 40e85b1..0000000 --- a/examples/cifar10/Makefile.example +++ /dev/null @@ -1,41 +0,0 @@ -#/** -# * Licensed to the Apache Software Foundation (ASF) under one -# * or more contributor license agreements. See the NOTICE file -# * distributed with this work for additional information -# * regarding copyright ownership. The ASF licenses this file -# * to you under the Apache License, Version 2.0 (the -# * "License"); you may not use this file except in compliance -# * with the License. You may obtain a copy of the License at -# * -# * http://www.apache.org/licenses/LICENSE-2.0 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# * See the License for the specific language governing permissions and -# * limitations under the License. -# */ - -libs :=singa glog protobuf - -.PHONY: all download create - -HDFS_DIR := hdfs://node0:9000/examples/cifar10 - -download: cifar-10-binary-bin - -cifar-10-binary-bin: - wget http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz - tar xf cifar-10-binary.tar.gz - -create: - $(CXX) create_data.cc -std=c++11 -lsinga -lprotobuf -lglog \ - -I../../include -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs \ - -Wl,-rpath=../../.libs/ -o create_data.bin - ./create_data.bin cifar-10-batches-bin . - -create_hdfs: - $(CXX) create_data.cc -std=c++11 -lsinga -lprotobuf -lglog -lhdfs3 \ - -I../../include -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs \ - -Wl,-rpath=../../.libs/ -o create_data.bin - ./create_data.bin cifar-10-batches-bin $(HDFS_DIR) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/create_data.cc ---------------------------------------------------------------------- diff --git a/examples/cifar10/create_data.cc b/examples/cifar10/create_data.cc deleted file mode 100644 index 5564c38..0000000 --- a/examples/cifar10/create_data.cc +++ /dev/null @@ -1,138 +0,0 @@ -/************************************************************ -* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -* -*************************************************************/ - - -/** - * Create training and test DataShard for CIFAR dataset. - * It is adapted from convert_cifar_data from Caffe. - * create_shard.bin - * - * Read from JobConf object the option to use KVfile, HDFS or other (1st layer - * store_conf object). - * To load to HDFS, specify "hdfs://namenode/examples" as the output folder - */ - -#include -#include -#include -#include -#include - -#include "singa/io/store.h" -#include "singa/proto/common.pb.h" -#include "singa/utils/common.h" - -using std::string; - -const int kCIFARSize = 32; -const int kCIFARImageNBytes = 3072; -const int kCIFARBatchSize = 10000; -const int kCIFARTrainBatches = 5; - -void read_image(std::ifstream* file, int* label, char* buffer) { - char label_char; - file->read(&label_char, 1); - *label = label_char; - file->read(buffer, kCIFARImageNBytes); - return; -} - -void create_data(const string& input_folder, const string& output_folder) { - int label; - char str_buffer[kCIFARImageNBytes]; - string rec_buf; - singa::RecordProto image; - image.add_shape(3); - image.add_shape(kCIFARSize); - image.add_shape(kCIFARSize); - - singa::RecordProto mean; - mean.CopyFrom(image); - for (int i = 0; i < kCIFARImageNBytes; i++) - mean.add_data(0.f); - - string store_backend = output_folder.find("hdfs") !=-1 ? - "hdfsfile" : "kvfile"; - auto store = singa::io::CreateStore(store_backend); - CHECK(store->Open(output_folder + "/train_data.bin", singa::io::kCreate)); - LOG(INFO) << "Preparing training data"; - int count = 0; - for (int fileid = 0; fileid < kCIFARTrainBatches; ++fileid) { - LOG(INFO) << "Training Batch " << fileid + 1; - snprintf(str_buffer, kCIFARImageNBytes, "/data_batch_%d.bin", fileid + 1); - std::ifstream data_file((input_folder + str_buffer).c_str(), - std::ios::in | std::ios::binary); - CHECK(data_file.is_open()) << "Unable to open train file #" << fileid + 1; - for (int itemid = 0; itemid < kCIFARBatchSize; ++itemid) { - read_image(&data_file, &label, str_buffer); - image.set_label(label); - image.set_pixel(str_buffer, kCIFARImageNBytes); - image.SerializeToString(&rec_buf); - int length = snprintf(str_buffer, kCIFARImageNBytes, "%05d", count); - CHECK(store->Write(string(str_buffer, length), rec_buf)); - - const string& pixels = image.pixel(); - for (int i = 0; i < kCIFARImageNBytes; i++) - mean.set_data(i, mean.data(i) + static_cast(pixels[i])); - count += 1; - } - } - store->Flush(); - store->Close(); - - LOG(INFO) << "Create image mean"; - store->Open(output_folder + "/image_mean.bin", singa::io::kCreate); - for (int i = 0; i < kCIFARImageNBytes; i++) - mean.set_data(i, mean.data(i) / count); - mean.SerializeToString(&rec_buf); - store->Write("mean", rec_buf); - store->Flush(); - store->Close(); - - LOG(INFO) << "Create test data"; - store->Open(output_folder + "/test_data.bin", singa::io::kCreate); - std::ifstream data_file((input_folder + "/test_batch.bin").c_str(), - std::ios::in | std::ios::binary); - CHECK(data_file.is_open()) << "Unable to open test file."; - for (int itemid = 0; itemid < kCIFARBatchSize; ++itemid) { - read_image(&data_file, &label, str_buffer); - image.set_label(label); - image.set_pixel(str_buffer, kCIFARImageNBytes); - image.SerializeToString(&rec_buf); - int length = snprintf(str_buffer, kCIFARImageNBytes, "%05d", itemid); - CHECK(store->Write(string(str_buffer, length), rec_buf)); - } - store->Flush(); - store->Close(); -} - -int main(int argc, char** argv) { - if (argc != 3) { - std::cout <<"Create train and test DataShard for Cifar dataset.\n" - << "Usage:\n" - << " create_data.bin input_folder output_folder\n" - << "Where the input folder should contain the binary batch files.\n"; - } else { - google::InitGoogleLogging(argv[0]); - create_data(string(argv[1]), string(argv[2])); - } - return 0; -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/cudnn.conf ---------------------------------------------------------------------- diff --git a/examples/cifar10/cudnn.conf b/examples/cifar10/cudnn.conf deleted file mode 100644 index 0f9402e..0000000 --- a/examples/cifar10/cudnn.conf +++ /dev/null @@ -1,297 +0,0 @@ -name: "cifar10-convnet" -train_steps: 70000 -test_steps: 100 -test_freq: 1000 -#validate_steps: 100 -#validate_freq: 300 -disp_freq: 200 -gpu: 0 -#checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay:0.004 - momentum:0.9 - learning_rate { - type: kFixedStep - fixedstep_conf:{ - step:0 - step:60000 - step:65000 - step_lr:0.001 - step_lr:0.0001 - step_lr:0.00001 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/train_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - #random_skip: 5000 - shape: 3 - shape: 32 - shape: 32 - } - include: kTrain - } -# layer{ -# name: "data" -# type: kRecordInput -# store_conf { -# backend: "kvfile" -# path: "examples/cifar10/val_data.bin" -# mean_file: "examples/cifar10/image_mean.bin" -# batchsize: 64 -# random_skip: 5000 -# shape: 3 -# shape: 32 -# shape: 32 -# } -# include: kVal -# } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/test_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 32 - shape: 32 - } - include: kTest - } - - layer { - name: "conv1" - type: kCudnnConv - srclayers: "data" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w1" - init { - type:kGaussian - std:0.0001 - } - } - param { - name: "b1" - lr_scale:2.0 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - - layer { - name: "pool1" - type: kCudnnPool - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - } - layer { - name: "relu1" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"pool1" - } - layer { - name: "norm1" - type: kCudnnLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"relu1" - } - layer { - name: "conv2" - type: kCudnnConv - srclayers: "norm1" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w2" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b2" - lr_scale:2.0 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - layer { - name: "relu2" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"conv2" - } - layer { - name: "pool2" - type: kCudnnPool - srclayers: "relu2" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "norm2" - type: kCudnnLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"pool2" - } - layer { - name: "conv3" - type: kCudnnConv - srclayers: "norm2" - convolution_conf { - num_filters: 64 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w3" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b3" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - layer { - name: "relu3" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"conv3" - } - layer { - name: "pool3" - type: kCudnnPool - srclayers: "relu3" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "ip1" - type: kInnerProduct - srclayers:"pool3" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - wd_scale:250 - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b4" - lr_scale:2.0 - wd_scale:0 - init { - type: kConstant - value:0 - } - } - } - layer { - name : "softmax" - type: kCudnnSoftmax - srclayers: "ip1" - include: kTest - } - - layer { - name : "accuracy" - type: kAccuracy - srclayers: "softmax" - srclayers: "data" - include: kTest - } - layer{ - name: "loss" - type: kSoftmaxLoss - srclayers:"ip1" - srclayers: "data" - include : kTrain - } -# uncomment "softmax", "argsort", "output" layer and comment "loss" layer -# to extract features from argsort -# layer { -# name : "output" -# type: kCSVOutput -# srclayers: "argsort" -# store_conf { -# path: "examples/cifar10/out.csv" -# } -# } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 1 - nworkers_per_procs: 1 - workspace: "examples/cifar10" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/cudnn_bm.conf ---------------------------------------------------------------------- diff --git a/examples/cifar10/cudnn_bm.conf b/examples/cifar10/cudnn_bm.conf deleted file mode 100644 index 2ca30cb..0000000 --- a/examples/cifar10/cudnn_bm.conf +++ /dev/null @@ -1,376 +0,0 @@ -name: "cifar10-convnet" -train_steps: 70000 -test_steps: 100 -test_freq: 1000 -#validate_steps: 100 -#validate_freq: 300 -disp_freq: 200 -gpu: 0 -#checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay:0.004 - momentum:0.9 - learning_rate { - type: kFixedStep - fixedstep_conf:{ - step:0 - step:60000 - step:65000 - step_lr:0.001 - step_lr:0.0001 - step_lr:0.00001 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/train_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - #random_skip: 5000 - shape: 3 - shape: 32 - shape: 32 - } - include: kTrain - } -# layer{ -# name: "data" -# type: kRecordInput -# store_conf { -# backend: "kvfile" -# path: "examples/cifar10/val_data.bin" -# mean_file: "examples/cifar10/image_mean.bin" -# batchsize: 64 -# random_skip: 5000 -# shape: 3 -# shape: 32 -# shape: 32 -# } -# include: kVal -# } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/test_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 32 - shape: 32 - } - include: kTest - } - - layer { - name: "conv1" - type: kCudnnConv - srclayers: "data" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w1" - init { - type:kGaussian - std:0.0001 - } - } - param { - name: "b1" - lr_scale:2.0 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - - layer { - name: "pool1" - type: kCudnnPool - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - } - layer { - name: "bm1" - type: kCudnnBM - param { - name: "s11" - init { - type:kConstant - value:1 - } - } - param { - name: "s12" - init { - type:kConstant - value:0 - } - } - param { - name: "s13" - init { - type:kConstant - value:0 - } - } - param { - name: "s14" - init { - type:kConstant - value:0 - } - } - srclayers:"pool1" - } - layer { - name: "relu1" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"bm1" - } - layer { - name: "conv2" - type: kCudnnConv - srclayers: "relu1" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w2" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b2" - lr_scale:2.0 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - layer { - name: "bm2" - type: kCudnnBM - param { - name: "s21" - init { - type:kConstant - value:1 - } - } - param { - name: "s22" - init { - type:kConstant - value:0 - } - } - param { - name: "s23" - init { - type:kConstant - value:0 - } - } - param { - name: "s24" - init { - type:kConstant - value:0 - } - } - srclayers:"conv2" - } - layer { - name: "relu2" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"bm2" - } - layer { - name: "pool2" - type: kCudnnPool - srclayers: "relu2" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "conv3" - type: kCudnnConv - srclayers: "relu2" - convolution_conf { - num_filters: 64 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w3" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b3" - lr_scale: 2 - wd_scale: 0 - init { - type: kConstant - value:0 - } - } - } - layer { - name: "bm3" - type: kCudnnBM - param { - name: "s31" - init { - type:kConstant - value:1 - } - } - param { - name: "s32" - init { - type:kConstant - value:0 - } - } - param { - name: "s33" - init { - type:kConstant - value:0 - } - } - param { - name: "s34" - init { - type:kConstant - value:0 - } - } - srclayers:"conv3" - } - layer { - name: "relu3" - type: kCudnnActivation - activation_conf { - type: RELU - } - share_src_blobs: true - srclayers:"bm3" - } - layer { - name: "pool3" - type: kCudnnPool - srclayers: "relu3" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "ip1" - type: kInnerProduct - srclayers:"pool3" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - wd_scale:250 - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b4" - lr_scale:2.0 - wd_scale:0 - init { - type: kConstant - value:0 - } - } - } - layer { - name : "softmax" - type: kCudnnSoftmax - srclayers: "ip1" - include: kTest - } - - layer { - name : "accuracy" - type: kAccuracy - srclayers: "softmax" - srclayers: "data" - include: kTest - } - layer{ - name: "loss" - type: kSoftmaxLoss - srclayers:"ip1" - srclayers: "data" - include : kTrain - } -# uncomment "softmax", "argsort", "output" layer and comment "loss" layer -# to extract features from argsort -# layer { -# name : "output" -# type: kCSVOutput -# srclayers: "argsort" -# store_conf { -# path: "examples/cifar10/out.csv" -# } -# } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 1 - nworkers_per_procs: 1 - workspace: "examples/cifar10" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/cudnn_hybrid.conf ---------------------------------------------------------------------- diff --git a/examples/cifar10/cudnn_hybrid.conf b/examples/cifar10/cudnn_hybrid.conf deleted file mode 100644 index a11145c..0000000 --- a/examples/cifar10/cudnn_hybrid.conf +++ /dev/null @@ -1,306 +0,0 @@ -name: "cifar10-convnet" -train_steps: 10000 -test_steps: 0 -test_freq: 200 -#validate_steps: 100 -#validate_freq: 300 -disp_freq: 200 -gpu: 0 -gpu: 1 -#debug: true -#checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay:0.004 - momentum:0.9 - learning_rate { - type: kFixedStep - fixedstep_conf:{ - step:0 - step:60000 - step:65000 - step_lr:0.001 - step_lr:0.0001 - step_lr:0.00001 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/train_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - #random_skip: 5000 - shape: 3 - shape: 32 - shape: 32 - } - include: kTrain - partition_dim: 0 - } -# layer{ -# name: "data" -# type: kRecordInput -# store_conf { -# backend: "kvfile" -# path: "examples/cifar10/val_data.bin" -# mean_file: "examples/cifar10/image_mean.bin" -# batchsize: 64 -# random_skip: 5000 -# shape: 3 -# shape: 32 -# shape: 32 -# } -# include: kVal -# } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/test_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 32 - shape: 32 - } - include: kTest - partition_dim: 0 - } - - layer { - partition_dim: 0 - name: "conv1" - type: kCudnnConv - srclayers: "data" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w1" - init { - type:kGaussian - std:0.0001 - } - } - param { - name: "b1" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - - layer { - partition_dim: 0 - name: "pool1" - type: kCudnnPool - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 0 - name: "relu1" - type: kCudnnActivation - activation_conf { - type: RELU - } - srclayers:"pool1" - } - layer { - partition_dim: 0 - name: "norm1" - type: kCudnnLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"relu1" - } - layer { - partition_dim: 0 - name: "conv2" - type: kCudnnConv - srclayers: "norm1" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w2" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b2" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - layer { - partition_dim: 0 - name: "relu2" - type: kCudnnActivation - activation_conf { - type: RELU - } - srclayers:"conv2" - } - layer { - partition_dim: 0 - name: "pool2" - type: kCudnnPool - srclayers: "relu2" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 0 - name: "norm2" - type: kCudnnLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"pool2" - } - layer { - partition_dim: 0 - name: "conv3" - type: kCudnnConv - srclayers: "norm2" - convolution_conf { - num_filters: 64 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w3" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b3" - init { - type: kConstant - value:0 - } - } - } - layer { - partition_dim: 0 - name: "relu3" - type: kCudnnActivation - activation_conf { - type: RELU - } - srclayers:"conv3" - } - layer { - partition_dim: 0 - name: "pool3" - type: kCudnnPool - srclayers: "relu3" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 1 - name: "ip1" - type: kInnerProduct - srclayers:"pool3" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - wd_scale:250 - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b4" - lr_scale:2.0 - wd_scale:0 - init { - type: kConstant - value:0 - } - } - } -# layer { -# name : "softmax" -# type: kSoftmax -# srclayers: "ip1" -# } -# -# layer { -# name : "argsort" -# type: kArgSort -# srclayers: "softmax" -# } - layer{ - partition_dim: 0 - name: "loss" - type: kSoftmaxLoss - softmaxloss_conf{ - topk:1 - } - srclayers:"ip1" - srclayers: "data" - } -# uncomment "softmax", "argsort", "output" layer and comment "loss" layer -# to extract features from argsort -# layer { -# name : "output" -# type: kCSVOutput -# srclayers: "argsort" -# store_conf { -# path: "examples/cifar10/out.csv" -# } -# } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 2 - nworkers_per_procs: 2 - workspace: "examples/cifar10" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/hybrid.conf ---------------------------------------------------------------------- diff --git a/examples/cifar10/hybrid.conf b/examples/cifar10/hybrid.conf deleted file mode 100644 index ec3da0c..0000000 --- a/examples/cifar10/hybrid.conf +++ /dev/null @@ -1,292 +0,0 @@ -name: "cifar10-convnet" -train_steps: 1000 -test_steps: 0 -test_freq: 200 -#validate_steps: 100 -#validate_freq: 300 -disp_freq: 30 -#debug: true -#checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay:0.004 - momentum:0.9 - learning_rate { - type: kFixedStep - fixedstep_conf:{ - step:0 - step:60000 - step:65000 - step_lr:0.001 - step_lr:0.0001 - step_lr:0.00001 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/train_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - #random_skip: 5000 - shape: 3 - shape: 32 - shape: 32 - } - include: kTrain - } -# layer{ -# name: "data" -# type: kRecordInput -# store_conf { -# backend: "kvfile" -# path: "examples/cifar10/val_data.bin" -# mean_file: "examples/cifar10/image_mean.bin" -# batchsize: 64 -# random_skip: 5000 -# shape: 3 -# shape: 32 -# shape: 32 -# } -# include: kVal -# } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/test_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 32 - shape: 32 - } - include: kTest - } - - layer { - partition_dim: 0 - name: "conv1" - type: kCConvolution - srclayers: "data" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w1" - init { - type:kGaussian - std:0.0001 - } - } - param { - name: "b1" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - - layer { - partition_dim: 0 - name: "pool1" - type: kCPooling - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 0 - name: "relu1" - type: kReLU - srclayers:"pool1" - } - layer { - partition_dim: 0 - name: "norm1" - type: kLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"relu1" - } - layer { - partition_dim: 0 - name: "conv2" - type: kCConvolution - srclayers: "norm1" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w2" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b2" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - layer { - partition_dim: 0 - name: "relu2" - type: kReLU - srclayers:"conv2" - } - layer { - partition_dim: 0 - name: "pool2" - type: kCPooling - srclayers: "relu2" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 0 - name: "norm2" - type: kLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"pool2" - } - layer { - partition_dim: 0 - name: "conv3" - type: kCConvolution - srclayers: "norm2" - convolution_conf { - num_filters: 64 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w3" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b3" - init { - type: kConstant - value:0 - } - } - } - layer { - partition_dim: 0 - name: "relu3" - type: kReLU - srclayers:"conv3" - } - layer { - partition_dim: 0 - name: "pool3" - type: kCPooling - srclayers: "relu3" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - partition_dim: 1 - name: "ip1" - type: kInnerProduct - srclayers:"pool3" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - wd_scale:250 - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b4" - lr_scale:2.0 - wd_scale:0 - init { - type: kConstant - value:0 - } - } - } -# layer { -# name : "softmax" -# type: kSoftmax -# srclayers: "ip1" -# } -# -# layer { -# name : "argsort" -# type: kArgSort -# srclayers: "softmax" -# } - layer{ - name: "loss" - type: kSoftmaxLoss - softmaxloss_conf{ - topk:1 - } - srclayers:"ip1" - srclayers: "data" - } -# uncomment "softmax", "argsort", "output" layer and comment "loss" layer -# to extract features from argsort -# layer { -# name : "output" -# type: kCSVOutput -# srclayers: "argsort" -# store_conf { -# path: "examples/cifar10/out.csv" -# } -# } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 2 - nworkers_per_procs: 2 - workspace: "examples/cifar10" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/cifar10/job.conf ---------------------------------------------------------------------- diff --git a/examples/cifar10/job.conf b/examples/cifar10/job.conf deleted file mode 100644 index d20b452..0000000 --- a/examples/cifar10/job.conf +++ /dev/null @@ -1,279 +0,0 @@ -name: "cifar10-convnet" -train_steps: 1000 -test_steps: 100 -test_freq: 200 -#validate_steps: 100 -#validate_freq: 300 -disp_freq: 50 -#checkpoint_path: "examples/cifar10/checkpoint/step1000-worker0" -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - weight_decay:0.004 - momentum:0.9 - learning_rate { - type: kFixedStep - fixedstep_conf:{ - step:0 - step:60000 - step:65000 - step_lr:0.001 - step_lr:0.0001 - step_lr:0.00001 - } - } -} -neuralnet { - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/train_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - #random_skip: 5000 - shape: 3 - shape: 32 - shape: 32 - } - include: kTrain - } -# layer{ -# name: "data" -# type: kRecordInput -# store_conf { -# backend: "kvfile" -# path: "examples/cifar10/val_data.bin" -# mean_file: "examples/cifar10/image_mean.bin" -# batchsize: 64 -# random_skip: 5000 -# shape: 3 -# shape: 32 -# shape: 32 -# } -# include: kVal -# } - layer{ - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/cifar10/test_data.bin" - mean_file: "examples/cifar10/image_mean.bin" - batchsize: 100 - shape: 3 - shape: 32 - shape: 32 - } - include: kTest - } - - layer { - name: "conv1" - type: kCConvolution - srclayers: "data" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w1" - init { - type:kGaussian - std:0.0001 - } - } - param { - name: "b1" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - - layer { - name: "pool1" - type: kCPooling - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 3 - stride: 2 - } - } - layer { - name: "relu1" - type: kReLU - srclayers:"pool1" - } - layer { - name: "norm1" - type: kLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"relu1" - } - layer { - name: "conv2" - type: kCConvolution - srclayers: "norm1" - convolution_conf { - num_filters: 32 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w2" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b2" - lr_scale:2.0 - init { - type: kConstant - value:0 - } - } - } - layer { - name: "relu2" - type: kReLU - srclayers:"conv2" - } - layer { - name: "pool2" - type: kCPooling - srclayers: "relu2" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "norm2" - type: kLRN - lrn_conf { - local_size: 3 - alpha: 5e-05 - beta: 0.75 - } - srclayers:"pool2" - } - layer { - name: "conv3" - type: kCConvolution - srclayers: "norm2" - convolution_conf { - num_filters: 64 - kernel: 5 - stride: 1 - pad:2 - } - param { - name: "w3" - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b3" - init { - type: kConstant - value:0 - } - } - } - layer { - name: "relu3" - type: kReLU - srclayers:"conv3" - } - layer { - name: "pool3" - type: kCPooling - srclayers: "relu3" - pooling_conf { - pool: AVG - kernel: 3 - stride: 2 - } - } - layer { - name: "ip1" - type: kInnerProduct - srclayers:"pool3" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - wd_scale:250 - init { - type:kGaussian - std:0.01 - } - } - param { - name: "b4" - lr_scale:2.0 - wd_scale:0 - init { - type: kConstant - value:0 - } - } - } -# layer { -# name : "softmax" -# type: kSoftmax -# srclayers: "ip1" -# } -# -# layer { -# name : "argsort" -# type: kArgSort -# srclayers: "softmax" -# } - layer{ - name: "loss" - type: kSoftmaxLoss - softmaxloss_conf{ - topk:1 - } - srclayers:"ip1" - srclayers: "data" - } -# uncomment "softmax", "argsort", "output" layer and comment "loss" layer -# to extract features from argsort -# layer { -# name : "output" -# type: kCSVOutput -# srclayers: "argsort" -# store_conf { -# path: "examples/cifar10/out.csv" -# } -# } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - nworkers_per_group: 1 - nworkers_per_procs: 1 - workspace: "examples/cifar10" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/mnist/Makefile.example ---------------------------------------------------------------------- diff --git a/examples/mnist/Makefile.example b/examples/mnist/Makefile.example deleted file mode 100644 index a041359..0000000 --- a/examples/mnist/Makefile.example +++ /dev/null @@ -1,49 +0,0 @@ -# -#/** -# * Licensed to the Apache Software Foundation (ASF) under one -# * or more contributor license agreements. See the NOTICE file -# * distributed with this work for additional information -# * regarding copyright ownership. The ASF licenses this file -# * to you under the Apache License, Version 2.0 (the -# * "License"); you may not use this file except in compliance -# * with the License. You may obtain a copy of the License at -# * -# * http://www.apache.org/licenses/LICENSE-2.0 -# * -# * Unless required by applicable law or agreed to in writing, software -# * distributed under the License is distributed on an "AS IS" BASIS, -# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# * See the License for the specific language governing permissions and -# * limitations under the License. -# */ - -libs :=singa glog protobuf - -.PHONY: all download create - -HDFS_MNIST_TRAIN := hdfs://node0:9000/examples/mnist/train_data.bin -HDFS_MNIST_TEST := hdfs://node0:9000/examples/mnist/test_data.bin - -download: mnist - -mnist: - wget http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz - wget http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz - wget http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz - wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz - gunzip train-images-idx3-ubyte.gz && gunzip train-labels-idx1-ubyte.gz - gunzip t10k-images-idx3-ubyte.gz && gunzip t10k-labels-idx1-ubyte.gz - -create: - $(CXX) create_data.cc -std=c++11 -lsinga -lprotobuf -lglog -I../../include \ - -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs -Wl,-rpath=../../.libs/ \ - -o create_data.bin - ./create_data.bin train-images-idx3-ubyte train-labels-idx1-ubyte train_data.bin - ./create_data.bin t10k-images-idx3-ubyte t10k-labels-idx1-ubyte test_data.bin - -create_hdfs: - $(CXX) create_data.cc -std=c++11 -lsinga -lprotobuf -lglog -lhdfs3 -I../../include \ - -L../../.libs/ -Wl,-unresolved-symbols=ignore-in-shared-libs -Wl,-rpath=../../.libs/ \ - -o create_data.bin - ./create_data.bin train-images-idx3-ubyte train-labels-idx1-ubyte $(HDFS_MNIST_TRAIN) - ./create_data.bin t10k-images-idx3-ubyte t10k-labels-idx1-ubyte $(HDFS_MNIST_TEST) http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/mnist/conv.conf ---------------------------------------------------------------------- diff --git a/examples/mnist/conv.conf b/examples/mnist/conv.conf deleted file mode 100644 index 7818af1..0000000 --- a/examples/mnist/conv.conf +++ /dev/null @@ -1,187 +0,0 @@ -name: "conv" -train_steps: 10000 -test_steps:100 -test_freq:500 -disp_freq:50 -train_one_batch { - alg: kBP -} -updater { - momentum:0.9 - weight_decay:0.0005 - type: kSGD - learning_rate { - type : kInverse - base_lr:0.01 - inverse_conf { - gamma:0.0001 - pow:0.75 - } - } -} -neuralnet { - layer { - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/mnist/train_data.bin" - batchsize: 64 - std_value: 255 - random_skip: 5000 - shape: 1 - shape: 28 - shape: 28 - } - include: kTrain - } - - layer { - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/mnist/test_data.bin" - std_value: 255 - batchsize: 100 - shape: 1 - shape: 28 - shape: 28 - } - include: kTest - } - - layer { - name: "conv1" - type: kCConvolution - srclayers: "data" - convolution_conf { - num_filters: 20 - kernel: 5 - stride: 1 - } - param{ - name: "w1" - init { - type : kUniformSqrtFanIn - } - } - param{ - name: "b1" - init { - type : kConstant - value:0 - } - lr_scale:2.0 - } - } - layer { - name: "pool1" - type: kCPooling - srclayers: "conv1" - pooling_conf { - pool: MAX - kernel: 2 - stride: 2 - } - } - layer { - name: "conv2" - type: kCConvolution - srclayers: "pool1" - convolution_conf { - num_filters: 50 - kernel: 5 - stride: 1 - } - param{ - name: "w2" - init { - type :kUniformSqrtFanIn - } - } - param{ - name: "b2" - init { - type : kConstant - value:0 - } - lr_scale:2.0 - } - } - layer { - name: "pool2" - type: kCPooling - srclayers: "conv2" - pooling_conf { - pool: MAX - kernel: 2 - stride: 2 - } - } - layer { - name: "ip1" - type: kInnerProduct - srclayers:"pool2" - innerproduct_conf { - num_output: 500 - } - param{ - name: "w3" - init { - type :kUniformSqrtFanIn - } - } - param{ - name: "b3" - init { - type : kConstant - value:0 - } - lr_scale:2.0 - } - } - - layer { - name: "relu1" - type: kReLU - srclayers:"ip1" - } - - layer { - name: "ip2" - type: kInnerProduct - srclayers:"relu1" - innerproduct_conf { - num_output: 10 - } - param { - name: "w4" - init { - type :kUniformSqrtFanIn - } - } - param { - name: "b4" - init { - type : kConstant - value:0 - } - lr_scale:2 - } - } - layer{ - name: "loss" - type: kSoftmaxLoss - softmaxloss_conf{ - topk:1 - } - srclayers:"ip2" - srclayers:"data" - } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - workspace: "examples/mnist" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/mnist/create_data.cc ---------------------------------------------------------------------- diff --git a/examples/mnist/create_data.cc b/examples/mnist/create_data.cc deleted file mode 100644 index 34c287f..0000000 --- a/examples/mnist/create_data.cc +++ /dev/null @@ -1,125 +0,0 @@ -/************************************************************ -* -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, -* software distributed under the License is distributed on an -* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -* KIND, either express or implied. See the License for the -* specific language governing permissions and limitations -* under the License. -* -*************************************************************/ - -// -// This code creates DataShard for MNIST dataset. -// It is adapted from the convert_mnist_data from Caffe -// -// Usage: -// create_shard.bin input_image_file input_label_file output_folder -// The MNIST dataset could be downloaded at -// http://yann.lecun.com/exdb/mnist/ - -#include -#include -#include - -#include -#include - -#include "singa/io/store.h" -#include "singa/utils/common.h" -#include "singa/proto/common.pb.h" - -using std::string; - -uint32_t swap_endian(uint32_t val) { - val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF); - return (val << 16) | (val >> 16); -} - -// output is the full path, unlike create_data in CIFAR with only -// specifies the directory -void create_data(const char* image_filename, const char* label_filename, - const char* output) { - // Open files - std::ifstream image_file(image_filename, std::ios::in | std::ios::binary); - std::ifstream label_file(label_filename, std::ios::in | std::ios::binary); - CHECK(image_file) << "Unable to open file " << image_filename; - CHECK(label_file) << "Unable to open file " << label_filename; - // Read the magic and the meta data - uint32_t magic; - uint32_t num_items; - uint32_t num_labels; - uint32_t rows; - uint32_t cols; - - image_file.read(reinterpret_cast(&magic), 4); - magic = swap_endian(magic); - CHECK_EQ(magic, 2051) << "Incorrect image file magic."; - label_file.read(reinterpret_cast(&magic), 4); - magic = swap_endian(magic); - CHECK_EQ(magic, 2049) << "Incorrect label file magic."; - image_file.read(reinterpret_cast(&num_items), 4); - num_items = swap_endian(num_items); - label_file.read(reinterpret_cast(&num_labels), 4); - num_labels = swap_endian(num_labels); - CHECK_EQ(num_items, num_labels); - image_file.read(reinterpret_cast(&rows), 4); - rows = swap_endian(rows); - image_file.read(reinterpret_cast(&cols), 4); - cols = swap_endian(cols); - - // read backend from the job.conf - string store_backend = string(output).find("hdfs") != -1 ? - "hdfsfile" : "kvfile"; - auto store = singa::io::OpenStore(store_backend, output, singa::io::kCreate); - char label; - char* pixels = new char[rows * cols]; - int count = 0; - const int kMaxKeyLength = 10; - char key[kMaxKeyLength]; - string value; - - singa::RecordProto image; - image.add_shape(rows); - image.add_shape(cols); - LOG(INFO) << "A total of " << num_items << " items."; - LOG(INFO) << "Rows: " << rows << " Cols: " << cols; - for (int item_id = 0; item_id < num_items; ++item_id) { - image_file.read(pixels, rows * cols); - label_file.read(&label, 1); - image.set_pixel(pixels, rows*cols); - image.set_label(label); - snprintf(key, kMaxKeyLength, "%08d", item_id); - image.SerializeToString(&value); - store->Write(string(key), value); - } - delete pixels; - store->Flush(); - delete store; -} - -int main(int argc, char** argv) { - if (argc != 4) { - std::cout << "This program create a DataShard for a MNIST dataset\n" - "Usage:\n" - " create_shard.bin input_image_file input_label_file" - " output_db_file\n" - "The MNIST dataset could be downloaded at\n" - " http://yann.lecun.com/exdb/mnist/\n" - "You should gunzip them after downloading."; - } else { - google::InitGoogleLogging(argv[0]); - create_data(argv[1], argv[2], argv[3]); - } - return 0; -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/mnist/job.conf ---------------------------------------------------------------------- diff --git a/examples/mnist/job.conf b/examples/mnist/job.conf deleted file mode 100644 index 41d6b6f..0000000 --- a/examples/mnist/job.conf +++ /dev/null @@ -1,241 +0,0 @@ -name: "mlp" -train_steps: 1000 -test_steps:10 -test_freq:60 -disp_freq:10 -train_one_batch { - alg: kBP -} -updater{ - type: kSGD - learning_rate{ - type : kStep - base_lr: 0.001 - step_conf{ - change_freq: 60 - gamma: 0.997 - } - } -} - -neuralnet { - layer { - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/mnist/train_data.bin" - random_skip: 5000 - batchsize: 64 - shape: 784 - std_value: 127.5 - mean_value: 127.5 - } - include: kTrain - } - - layer { - name: "data" - type: kRecordInput - store_conf { - backend: "kvfile" - path: "examples/mnist/test_data.bin" - batchsize: 100 - shape: 784 - std_value: 127.5 - mean_value: 127.5 - } - include: kTest - } - - layer{ - name: "fc1" - type: kInnerProduct - srclayers:"data" - innerproduct_conf{ - num_output: 2500 - } - param{ - name: "w1" - init { - type: kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b1" - init { - type : kUniform - low: -0.05 - high:0.05 - } - } - } - - layer{ - name: "tanh1" - type: kSTanh - srclayers:"fc1" - } - layer{ - name: "fc2" - type: kInnerProduct - srclayers:"tanh1" - innerproduct_conf{ - num_output: 2000 - } - param{ - name: "w2" - init { - type: kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b2" - init { - type: kUniform - low: -0.05 - high:0.05 - } - } - } - - layer{ - name: "tanh2" - type: kSTanh - srclayers:"fc2" - } - layer{ - name: "fc3" - type: kInnerProduct - srclayers:"tanh2" - innerproduct_conf{ - num_output: 1500 - } - param{ - name: "w3" - init{ - type: kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b3" - init { - type : kUniform - low: -0.05 - high:0.05 - } - } - - } - - layer{ - name: "tanh3" - type: kSTanh - srclayers:"fc3" - } - layer{ - name: "fc4" - type: kInnerProduct - srclayers:"tanh3" - innerproduct_conf{ - num_output: 1000 - } - param{ - name: "w4" - init { - type : kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b4" - init { - type : kUniform - low: -0.05 - high:0.05 - } - } - - } - - layer{ - name: "tanh4" - type: kSTanh - srclayers:"fc4" - } - layer{ - name: "fc5" - type: kInnerProduct - srclayers:"tanh4" - innerproduct_conf{ - num_output: 500 - } - param{ - name: "w5" - init { - type : kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b5" - init { - type : kUniform - low: -0.05 - high:0.05 - } - } - } - - layer{ - name: "tanh5" - type: kSTanh - srclayers:"fc5" - } - layer{ - name: "fc6" - type: kInnerProduct - srclayers:"tanh5" - innerproduct_conf{ - num_output: 10 - } - param{ - name: "w6" - init { - type : kUniform - low:-0.05 - high:0.05 - } - } - param{ - name: "b6" - init { - type : kUniform - low: -0.05 - high:0.05 - } - } - } - layer{ - name: "loss" - type:kSoftmaxLoss - softmaxloss_conf{ - topk:1 - } - srclayers:"fc6" - srclayers:"data" - } -} -cluster { - nworker_groups: 1 - nserver_groups: 1 - workspace: "examples/mnist" -} http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/dd1e4afa/examples/mnist/rbm_job.conf ---------------------------------------------------------------------- diff --git a/examples/mnist/rbm_job.conf b/examples/mnist/rbm_job.conf deleted file mode 100644 index 59a58dd..0000000 --- a/examples/mnist/rbm_job.conf +++ /dev/null @@ -1,95 +0,0 @@ -cluster { - nworker_groups: 1 - nserver_groups: 1 - nservers_per_group: 1 - nworkers_per_group: 1 - workspace: "examples/mnist" -} - -model { - name: "deep-big-simple-dbm" - train_steps: 46000 - test_steps:1 - test_frequency:1000 - display_frequency: 100 - alg: kContrastiveDivergence - pcd_k: 15 - updater{ - base_lr: 0.1 - lr_change: kFixed - type: kSGD - } - - neuralnet { - layer { - name: "data" - type: kShardData - sharddata_conf { - path: "examples/mnist/mnist_train_shard" - batchsize: 20 - } - include: kTrain - } - - - layer { - name: "data" - type: kShardData - sharddata_conf { - path: "examples/mnist/mnist_test_shard" - batchsize: 20 - } - include: kTest - } - - - layer{ - name:"mnist" - type: kMnist - srclayers: "data" - mnist_conf { - norm_a: 255 - norm_b: 0 - } - } - - layer{ - name: "RBMVis" - type: kRBMVis - srclayers:"mnist" - srclayers:"RBMHid" - rbmvis_conf{ - num_output: 500 - } - param{ - name: "w1" - init_method: kUniformSqrtFanInOut - low:-9.79 - high:9.79 - } - param{ - name: "b1" - init_method: kConstant - value: 0.0 - } - } - - layer{ - name: "RBMHid" - type: kRBMHid - srclayers:"RBMVis" - rbmhid_conf{ - hid_dim: 500 - } - param{ - name: "w2" - share_from: "w1" - } - param{ - name: "b2" - init_method: kConstant - value: 0.0 - } - } - } -}