global_config {
  default_context {
    backend: "cpu"
    array_class: "CpuArray"
    compute_backend: "default"
  }
}
training_config {
  max_epoch: 100
  iter_per_epoch: 10
  save_best: true
}
network {
  name: "Main"
  batch_size: 40
  repeat_info {
    id: "RecurrentInput"
    times: 10
  }
  variable {
    name: "Input"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "RecurrentInput"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine/affine/W"
    type: "Parameter"
    shape: { dim: 512 dim: 256 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "Affine/affine/b"
    type: "Parameter"
    shape: { dim: 256 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "SoftmaxCrossEntropy_T"
    type: "Buffer"
    shape: { dim:-1 dim: 1 }
  }
  variable {
    name: "Affine_2/affine/W"
    type: "Parameter"
    shape: { dim: 2560 dim: 4 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/beta"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/gamma"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/mean"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/var"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "Delay_Initial"
    type: "Buffer"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "SoftmaxCrossEntropy"
    type: "Buffer"
    shape: { dim:-1 dim: 1 }
  }
  variable {
    name: "Affine_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "Sigmoid_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "BatchNormalization"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "RecurrentOutput"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "Delay"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Concatenate"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 512 }
  }
  variable {
    name: "ReLU"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  function {
    name: "RecurrentInput"
    type: "RecurrentInput"
    repeat_id: "RecurrentInput"
    input: "Input"
    output: "RecurrentInput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Affine"
    type: "Affine"
    repeat_id: "RecurrentInput"
    input: "Concatenate"
    input: "Affine/affine/W"
    input: "Affine/affine/b"
    output: "Affine"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "SoftmaxCrossEntropy"
    type: "SoftmaxCrossEntropy"
    input: "Sigmoid_2"
    input: "SoftmaxCrossEntropy_T"
    output: "SoftmaxCrossEntropy"
    softmax_cross_entropy_param {
      axis: 1
    }
  }
  function {
    name: "Affine_2"
    type: "Affine"
    input: "RecurrentOutput"
    input: "Affine_2/affine/W"
    output: "Affine_2"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "Sigmoid_2"
    type: "Sigmoid"
    input: "BatchNormalization"
    output: "Sigmoid_2"
  }
  function {
    name: "BatchNormalization"
    type: "BatchNormalization"
    input: "Affine_2"
    input: "BatchNormalization/bn/beta"
    input: "BatchNormalization/bn/gamma"
    input: "BatchNormalization/bn/mean"
    input: "BatchNormalization/bn/var"
    output: "BatchNormalization"
    batch_normalization_param {
      axes: 1
      decay_rate: 0.9
      eps: 0.0001
      batch_stat: true
    }
  }
  function {
    name: "RecurrentOutput"
    type: "RecurrentOutput"
    input: "ReLU"
    output: "RecurrentOutput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
      length: 10
    }
  }
  function {
    name: "Delay"
    type: "Delay"
    repeat_id: "RecurrentInput"
    input: "ReLU"
    input: "Delay_Initial"
    output: "Delay"
    recurrent_param {
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Concatenate"
    type: "Concatenate"
    repeat_id: "RecurrentInput"
    input: "RecurrentInput"
    input: "Delay"
    output: "Concatenate"
    concatenate_param {
      axis: 1
    }
  }
  function {
    name: "ReLU"
    type: "ReLU"
    repeat_id: "RecurrentInput"
    input: "Affine"
    output: "ReLU"
    relu_param {
      inplace: True
    }
  }
}
network {
  name: "MainValidation"
  batch_size: 40
  repeat_info {
    id: "RecurrentInput"
    times: 10
  }
  variable {
    name: "Input"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "RecurrentInput"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine/affine/W"
    type: "Parameter"
    shape: { dim: 512 dim: 256 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "Affine/affine/b"
    type: "Parameter"
    shape: { dim: 256 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "SoftmaxCrossEntropy_T"
    type: "Buffer"
    shape: { dim:-1 dim: 1 }
  }
  variable {
    name: "Affine_2/affine/W"
    type: "Parameter"
    shape: { dim: 2560 dim: 4 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/beta"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/gamma"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/mean"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/var"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "Delay_Initial"
    type: "Buffer"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "SoftmaxCrossEntropy"
    type: "Buffer"
    shape: { dim:-1 dim: 1 }
  }
  variable {
    name: "Affine_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "Sigmoid_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "BatchNormalization"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "RecurrentOutput"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "Delay"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Concatenate"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 512 }
  }
  variable {
    name: "ReLU"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  function {
    name: "RecurrentInput"
    type: "RecurrentInput"
    repeat_id: "RecurrentInput"
    input: "Input"
    output: "RecurrentInput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Affine"
    type: "Affine"
    repeat_id: "RecurrentInput"
    input: "Concatenate"
    input: "Affine/affine/W"
    input: "Affine/affine/b"
    output: "Affine"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "SoftmaxCrossEntropy"
    type: "SoftmaxCrossEntropy"
    input: "Sigmoid_2"
    input: "SoftmaxCrossEntropy_T"
    output: "SoftmaxCrossEntropy"
    softmax_cross_entropy_param {
      axis: 1
    }
  }
  function {
    name: "Affine_2"
    type: "Affine"
    input: "RecurrentOutput"
    input: "Affine_2/affine/W"
    output: "Affine_2"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "Sigmoid_2"
    type: "Sigmoid"
    input: "BatchNormalization"
    output: "Sigmoid_2"
  }
  function {
    name: "BatchNormalization"
    type: "BatchNormalization"
    input: "Affine_2"
    input: "BatchNormalization/bn/beta"
    input: "BatchNormalization/bn/gamma"
    input: "BatchNormalization/bn/mean"
    input: "BatchNormalization/bn/var"
    output: "BatchNormalization"
    batch_normalization_param {
      axes: 1
      decay_rate: 0.9
      eps: 0.0001
      batch_stat: false
    }
  }
  function {
    name: "RecurrentOutput"
    type: "RecurrentOutput"
    input: "ReLU"
    output: "RecurrentOutput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
      length: 10
    }
  }
  function {
    name: "Delay"
    type: "Delay"
    repeat_id: "RecurrentInput"
    input: "ReLU"
    input: "Delay_Initial"
    output: "Delay"
    recurrent_param {
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Concatenate"
    type: "Concatenate"
    repeat_id: "RecurrentInput"
    input: "RecurrentInput"
    input: "Delay"
    output: "Concatenate"
    concatenate_param {
      axis: 1
    }
  }
  function {
    name: "ReLU"
    type: "ReLU"
    repeat_id: "RecurrentInput"
    input: "Affine"
    output: "ReLU"
    relu_param {
      inplace: True
    }
  }
}
network {
  name: "MainRuntime"
  batch_size: 40
  repeat_info {
    id: "RecurrentInput"
    times: 10
  }
  variable {
    name: "Input"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "RecurrentInput"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine/affine/W"
    type: "Parameter"
    shape: { dim: 512 dim: 256 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "Affine/affine/b"
    type: "Parameter"
    shape: { dim: 256 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "Affine_2/affine/W"
    type: "Parameter"
    shape: { dim: 2560 dim: 4 }
    initializer {
      type: "NormalAffineGlorot"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/beta"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/gamma"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 1.0
    }
  }
  variable {
    name: "BatchNormalization/bn/mean"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "BatchNormalization/bn/var"
    type: "Parameter"
    shape: { dim: 1 dim: 4 }
    initializer {
      type: "Constant"
      multiplier: 0.0
    }
  }
  variable {
    name: "Delay_Initial"
    type: "Buffer"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Affine_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "Sigmoid_2"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "BatchNormalization"
    type: "Buffer"
    shape: { dim:-1 dim: 4 }
  }
  variable {
    name: "RecurrentOutput"
    type: "Buffer"
    shape: { dim:-1 dim: 10 dim: 256 }
  }
  variable {
    name: "Delay"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  variable {
    name: "Concatenate"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 512 }
  }
  variable {
    name: "ReLU"
    type: "Buffer"
    repeat_id: "RecurrentInput"
    shape: { dim:-1 dim: 256 }
  }
  function {
    name: "RecurrentInput"
    type: "RecurrentInput"
    repeat_id: "RecurrentInput"
    input: "Input"
    output: "RecurrentInput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Affine"
    type: "Affine"
    repeat_id: "RecurrentInput"
    input: "Concatenate"
    input: "Affine/affine/W"
    input: "Affine/affine/b"
    output: "Affine"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "Affine_2"
    type: "Affine"
    input: "RecurrentOutput"
    input: "Affine_2/affine/W"
    output: "Affine_2"
    affine_param {
      base_axis: 1
    }
  }
  function {
    name: "Sigmoid_2"
    type: "Sigmoid"
    input: "BatchNormalization"
    output: "Sigmoid_2"
  }
  function {
    name: "BatchNormalization"
    type: "BatchNormalization"
    input: "Affine_2"
    input: "BatchNormalization/bn/beta"
    input: "BatchNormalization/bn/gamma"
    input: "BatchNormalization/bn/mean"
    input: "BatchNormalization/bn/var"
    output: "BatchNormalization"
    batch_normalization_param {
      axes: 1
      decay_rate: 0.9
      eps: 0.0001
      batch_stat: false
    }
  }
  function {
    name: "RecurrentOutput"
    type: "RecurrentOutput"
    input: "ReLU"
    output: "RecurrentOutput"
    recurrent_param {
      axis: 1
      repeat_id: "RecurrentInput"
      length: 10
    }
  }
  function {
    name: "Delay"
    type: "Delay"
    repeat_id: "RecurrentInput"
    input: "ReLU"
    input: "Delay_Initial"
    output: "Delay"
    recurrent_param {
      repeat_id: "RecurrentInput"
    }
  }
  function {
    name: "Concatenate"
    type: "Concatenate"
    repeat_id: "RecurrentInput"
    input: "RecurrentInput"
    input: "Delay"
    output: "Concatenate"
    concatenate_param {
      axis: 1
    }
  }
  function {
    name: "ReLU"
    type: "ReLU"
    repeat_id: "RecurrentInput"
    input: "Affine"
    output: "ReLU"
    relu_param {
      inplace: True
    }
  }
}
dataset {
  name: "Training"
  uri: "D:\\temp2\\RNN\\training.csv"
  cache_dir: "D:\\temp2\\RNN\\training.cache"
  overwrite_cache: True
  create_cache_explicitly: True
  shuffle: true
  no_image_normalization: True
  batch_size: 40
}
dataset {
  name: "Validation"
  uri: "D:\\temp2\\RNN\\test.csv"
  cache_dir: "D:\\temp2\\RNN\\test.cache"
  overwrite_cache: True
  create_cache_explicitly: True
  shuffle: false
  no_image_normalization: True
  batch_size: 40
}
optimizer {
  name: "Optimizer"
  update_interval: 1
  network_name: "Main"
  dataset_name: "Training"
  solver {
    type: "Adam"
    weight_decay: 0
    lr_decay: 1
    lr_decay_interval: 1
    adam_param {
      alpha: 0.001
      beta1: 0.9
      beta2: 0.999
      eps: 1e-08
    }
  }
  data_variable {
    variable_name: "Input"
    data_name: "x"
  }
  data_variable {
    variable_name: "SoftmaxCrossEntropy_T"
    data_name: "y"
  }
  generator_variable {
    variable_name: "Delay_Initial"
    type: "Constant"
    multiplier: 0.0
  }
  loss_variable {
    variable_name: "SoftmaxCrossEntropy"
  }
  parameter_variable {
    variable_name: "Affine/affine/W"
    learning_rate_multiplier: 1.0
  }
  parameter_variable {
    variable_name: "Affine/affine/b"
    learning_rate_multiplier: 1.0
  }
  parameter_variable {
    variable_name: "Affine_2/affine/W"
    learning_rate_multiplier: 1.0
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/beta"
    learning_rate_multiplier: 1.0
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/gamma"
    learning_rate_multiplier: 1.0
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/mean"
    learning_rate_multiplier: 0.0
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/var"
    learning_rate_multiplier: 0.0
  }
}
monitor {
  name: "train_error"
  network_name: "MainValidation"
  dataset_name: "Training"
  data_variable {
    variable_name: "Input"
    data_name: "x"
  }
  data_variable {
    variable_name: "SoftmaxCrossEntropy_T"
    data_name: "y"
  }
  generator_variable {
    variable_name: "Delay_Initial"
    type: "Constant"
    multiplier: 0.0
  }
  monitor_variable {
    type: "Error"
    variable_name: "SoftmaxCrossEntropy"
  }
}
monitor {
  name: "valid_error"
  network_name: "MainValidation"
  dataset_name: "Validation"
  data_variable {
    variable_name: "Input"
    data_name: "x"
  }
  data_variable {
    variable_name: "SoftmaxCrossEntropy_T"
    data_name: "y"
  }
  generator_variable {
    variable_name: "Delay_Initial"
    type: "Constant"
    multiplier: 0.0
  }
  monitor_variable {
    type: "Error"
    variable_name: "SoftmaxCrossEntropy"
  }
}
executor {
  name: "Executor"
  network_name: "MainRuntime"
  num_evaluations: 1
  repeat_evaluation_type: "mean"
  need_back_propagation: false
  data_variable {
    variable_name: "Input"
    data_name: "x"
  }
  generator_variable {
    variable_name: "Delay_Initial"
    type: "Constant"
    multiplier: 0.0
  }
  output_variable {
    variable_name: "Sigmoid_2"
    data_name: "y'"
  }
  parameter_variable {
    variable_name: "Affine/affine/W"
  }
  parameter_variable {
    variable_name: "Affine/affine/b"
  }
  parameter_variable {
    variable_name: "Affine_2/affine/W"
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/beta"
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/gamma"
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/mean"
  }
  parameter_variable {
    variable_name: "BatchNormalization/bn/var"
  }
}
