type: "recurrent_nn"
layers {
  name: "data_a"
  type: "data"
  size: 100
  active_type: ""
}
layers {
  name: "data_b"
  type: "data"
  size: 100
  active_type: ""
}
layers {
  name: "__simple_gru_0___transform"
  type: "mixed"
  size: 600
  active_type: ""
  inputs {
    input_layer_name: "data_a"
    input_parameter_name: "mixed_param"
    proj_conf {
      type: "fc"
      name: "___simple_gru_0___transform.w0"
      input_size: 100
      output_size: 600
    }
  }
}
layers {
  name: "__simple_gru_0___recurrent_group"
  type: "recurrent_layer_group"
  active_type: ""
}
layers {
  name: "__simple_gru_0___transform@__simple_gru_0___recurrent_group"
  type: "scatter_agent"
  size: 600
  active_type: ""
}
layers {
  name: "__simple_gru_0__+delay1@__simple_gru_0___recurrent_group"
  type: "agent"
  size: 200
  active_type: ""
}
layers {
  name: "__simple_gru_0__@__simple_gru_0___recurrent_group"
  type: "gru_step"
  size: 200
  active_type: "tanh"
  inputs {
    input_layer_name: "__simple_gru_0___transform@__simple_gru_0___recurrent_group"
    input_parameter_name: "gru_param"
  }
  inputs {
    input_layer_name: "__simple_gru_0__+delay1@__simple_gru_0___recurrent_group"
  }
  bias_parameter_name: "gru_bias"
  active_gate_type: "sigmoid"
}
layers {
  name: "__simple_gru_0__"
  type: "gather_agent"
  size: 200
  active_type: ""
}
layers {
  name: "__simple_gru_1___transform"
  type: "mixed"
  size: 600
  active_type: ""
  inputs {
    input_layer_name: "data_b"
    input_parameter_name: "mixed_param"
    proj_conf {
      type: "fc"
      name: "___simple_gru_1___transform.w0"
      input_size: 100
      output_size: 600
    }
  }
}
layers {
  name: "__simple_gru_1___recurrent_group"
  type: "recurrent_layer_group"
  active_type: ""
}
layers {
  name: "__simple_gru_1___transform@__simple_gru_1___recurrent_group"
  type: "scatter_agent"
  size: 600
  active_type: ""
}
layers {
  name: "__simple_gru_1__+delay1@__simple_gru_1___recurrent_group"
  type: "agent"
  size: 200
  active_type: ""
}
layers {
  name: "__simple_gru_1__@__simple_gru_1___recurrent_group"
  type: "gru_step"
  size: 200
  active_type: "tanh"
  inputs {
    input_layer_name: "__simple_gru_1___transform@__simple_gru_1___recurrent_group"
    input_parameter_name: "gru_param"
  }
  inputs {
    input_layer_name: "__simple_gru_1__+delay1@__simple_gru_1___recurrent_group"
  }
  bias_parameter_name: "gru_bias"
  active_gate_type: "sigmoid"
}
layers {
  name: "__simple_gru_1__"
  type: "gather_agent"
  size: 200
  active_type: ""
}
layers {
  name: "__last_seq_0__"
  type: "seqlastins"
  size: 200
  active_type: "linear"
  inputs {
    input_layer_name: "__simple_gru_0__"
  }
  trans_type: "non-seq"
}
layers {
  name: "__last_seq_1__"
  type: "seqlastins"
  size: 200
  active_type: "linear"
  inputs {
    input_layer_name: "__simple_gru_1__"
  }
  trans_type: "non-seq"
}
layers {
  name: "__fc_layer_0__"
  type: "fc"
  size: 10
  active_type: "softmax"
  inputs {
    input_layer_name: "__last_seq_0__"
    input_parameter_name: "softmax_param"
  }
  inputs {
    input_layer_name: "__last_seq_1__"
    input_parameter_name: "softmax_param"
  }
}
layers {
  name: "label"
  type: "data"
  size: 10
  active_type: ""
}
layers {
  name: "__cost_0__"
  type: "multi-class-cross-entropy"
  size: 1
  active_type: ""
  inputs {
    input_layer_name: "__fc_layer_0__"
  }
  inputs {
    input_layer_name: "label"
  }
  coeff: 1.0
}
parameters {
  name: "mixed_param"
  size: 60000
  initial_mean: 0.0
  initial_std: 0.1
  dims: 100
  dims: 600
  initial_strategy: 0
  initial_smart: true
}
parameters {
  name: "gru_param"
  size: 120000
  initial_mean: 0.0
  initial_std: 0.0707106781187
  dims: 200
  dims: 600
  initial_strategy: 0
  initial_smart: true
}
parameters {
  name: "gru_bias"
  size: 600
  initial_mean: 0.0
  initial_std: 0.0
  dims: 1
  dims: 600
  initial_strategy: 0
  initial_smart: false
}
parameters {
  name: "softmax_param"
  size: 2000
  initial_mean: 0.0
  initial_std: 0.0707106781187
  dims: 200
  dims: 10
  initial_strategy: 0
  initial_smart: true
}
input_layer_names: "data_a"
input_layer_names: "data_b"
input_layer_names: "label"
output_layer_names: "__cost_0__"
evaluators {
  name: "classification_error_evaluator"
  type: "classification_error"
  input_layers: "__fc_layer_0__"
  input_layers: "label"
}
sub_models {
  name: "root"
  layer_names: "data_a"
  layer_names: "data_b"
  layer_names: "__simple_gru_0___transform"
  layer_names: "__simple_gru_0___recurrent_group"
  layer_names: "__simple_gru_0__"
  layer_names: "__simple_gru_1___transform"
  layer_names: "__simple_gru_1___recurrent_group"
  layer_names: "__simple_gru_1__"
  layer_names: "__last_seq_0__"
  layer_names: "__last_seq_1__"
  layer_names: "__fc_layer_0__"
  layer_names: "label"
  layer_names: "__cost_0__"
  input_layer_names: "data_a"
  input_layer_names: "data_b"
  input_layer_names: "label"
  output_layer_names: "__cost_0__"
  evaluator_names: "classification_error_evaluator"
  is_recurrent_layer_group: false
}
sub_models {
  name: "__simple_gru_0___recurrent_group"
  layer_names: "__simple_gru_0___transform@__simple_gru_0___recurrent_group"
  layer_names: "__simple_gru_0__+delay1@__simple_gru_0___recurrent_group"
  layer_names: "__simple_gru_0__@__simple_gru_0___recurrent_group"
  is_recurrent_layer_group: true
  reversed: false
  memories {
    layer_name: "__simple_gru_0__@__simple_gru_0___recurrent_group"
    link_name: "__simple_gru_0__+delay1@__simple_gru_0___recurrent_group"
    is_sequence: false
  }
  in_links {
    layer_name: "__simple_gru_0___transform"
    link_name: "__simple_gru_0___transform@__simple_gru_0___recurrent_group"
    has_subseq: false
  }
  out_links {
    layer_name: "__simple_gru_0__@__simple_gru_0___recurrent_group"
    link_name: "__simple_gru_0__"
    has_subseq: false
  }
  target_inlinkid: -1
}
sub_models {
  name: "__simple_gru_1___recurrent_group"
  layer_names: "__simple_gru_1___transform@__simple_gru_1___recurrent_group"
  layer_names: "__simple_gru_1__+delay1@__simple_gru_1___recurrent_group"
  layer_names: "__simple_gru_1__@__simple_gru_1___recurrent_group"
  is_recurrent_layer_group: true
  reversed: false
  memories {
    layer_name: "__simple_gru_1__@__simple_gru_1___recurrent_group"
    link_name: "__simple_gru_1__+delay1@__simple_gru_1___recurrent_group"
    is_sequence: false
  }
  in_links {
    layer_name: "__simple_gru_1___transform"
    link_name: "__simple_gru_1___transform@__simple_gru_1___recurrent_group"
    has_subseq: false
  }
  out_links {
    layer_name: "__simple_gru_1__@__simple_gru_1___recurrent_group"
    link_name: "__simple_gru_1__"
    has_subseq: false
  }
  target_inlinkid: -1
}

