You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paddle/paddle/trainer/tests/sample_trainer_config_paral...

150 lines
3.2 KiB

#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")