#edit-mode: -*- python -*- # Copyright (c) 2016 Baidu, Inc. All Rights Reserved # # Licensed 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. #Todo(luotao02) This config is only used for unitest. It is out of date now, and will be updated later. TrainData( SimpleData( files = "trainer/tests/sample_filelist.txt", feat_dim = 3, context_len = 0, buffer_capacity = 1000000, ) ) TestData( SimpleData( files = "trainer/tests/sample_filelist.txt", feat_dim = 3, context_len = 0, buffer_capacity = 1000000, ) ) Settings( algorithm = "sgd", num_batches_per_send_parameter = 1, num_batches_per_get_parameter = 1, batch_size = 100, learning_rate = 0.001, learning_rate_decay_a = 1e-5, learning_rate_decay_b = 0.5, ) default_initial_std(0.2) # Output layer, label layer, cost layer, preferably set to the same environment. output_device = 0 model_type("nn") # Input Layer does not need to specify the device number. Layer( name = "input", type = "data", size = 3, ) # Calculate in the CPU. Layer( name = "layer1_1", type = "fc", size = 5, active_type = "sigmoid", device = -1, inputs = "input", ) # Calculate in the GPU 0. Layer( name = "layer2_1", type = "fc", size = 10, active_type = "sigmoid", device = 0, inputs = "layer1_1", ) # Calculate in the GPU 1. Layer( name = "layer2_2", type = "fc", size = 10, active_type = "sigmoid", device = 1, inputs = "layer1_1", ) # Calculate in the GPU 0. Layer( name = "layer3_1", type = "fc", size = 10, device = 0, active_type = "sigmoid", inputs = ["layer2_1", "layer2_2"], ) # Calculate in the GPU 1. Layer( name = "layer3_2", type = "fc", size = 10, device = 1, active_type = "sigmoid", inputs = ["layer2_1", "layer2_2"], ) Layer( name = "output", type = "fc", size = 10, device = output_device, active_type = "sigmoid", inputs = ["layer3_1", "layer3_2"], ) if get_config_arg('with_cost', bool, True): # This is for training the neural network. # We need to have another data layer for label # and a layer for calculating cost Layer( name = "label", type = "data", device = output_device, size = 1, ) Layer( name = "cost", type = "multi-class-cross-entropy", device = output_device, inputs = ["output", "label"], ) Evaluator( name = "error", type = "classification_error", inputs = ["output", "label"]) Inputs("input", "label") Outputs("cost") else: # This is for prediction where we don't have label # and don't need to calculate cost Inputs("input") Outputs("output")