lstm_layer_tc(1, 2, True)(file_name="lstm_return_sequence.info")
lstm_layer_tc(2, 2, True)(file_name="lstm_return_sequence_with_batch.info")
- record(
- file_name="multi_lstm_return_sequence.info",
+ multi_lstm_layer_tc = lambda batch, time: partial(
+ record,
model=[
- K.Input(batch_shape=(1, 2, 1)),
+ K.Input(batch_shape=(batch, time, 1)),
K.layers.LSTM(
- 2,
+ time,
recurrent_activation="sigmoid",
activation="tanh",
return_sequences=True,
),
- K.layers.LSTM(2, recurrent_activation="sigmoid", activation="tanh"),
+ K.layers.LSTM(time, recurrent_activation="sigmoid", activation="tanh"),
K.layers.Dense(1),
],
optimizer=opt.SGD(learning_rate=0.1),
iteration=10,
- input_shape=(1, 2, 1),
- label_shape=(1, 1, 1),
+ input_shape=(batch, time, 1),
+ label_shape=(batch, 1),
is_onehot=False,
loss_fn_str="mse",
)
+ multi_lstm_layer_tc(1,2)(file_name="multi_lstm_return_sequence.info")
+ multi_lstm_layer_tc(2,2)(file_name="multi_lstm_return_sequence_with_batch.info")
rnn_layer_tc = lambda batch, time, return_sequences: partial(
record,
rnn_layer_tc(1, 2, True)(file_name="rnn_return_sequences.info")
rnn_layer_tc(2, 2, True)(file_name="rnn_return_sequence_with_batch.info")
- record(
- file_name="multi_rnn_return_sequence.info",
+ multi_rnn_layer_tc = lambda batch, time: partial(
+ record,
model=[
- K.Input(batch_shape=(1, 2, 1)),
- K.layers.SimpleRNN(2, return_sequences=True),
- K.layers.SimpleRNN(2),
+ K.Input(batch_shape=(batch, time, 1)),
+ K.layers.SimpleRNN(
+ time,
+ return_sequences=True,
+ ),
+ K.layers.SimpleRNN(time),
K.layers.Dense(1),
],
optimizer=opt.SGD(learning_rate=0.1),
iteration=10,
- input_shape=(1, 2, 1),
- label_shape=(1, 1, 1),
+ input_shape=(batch, time, 1),
+ label_shape=(batch, 1),
is_onehot=False,
loss_fn_str="mse",
)
+ multi_rnn_layer_tc(1,2)(file_name="multi_rnn_return_sequence.info")
+ multi_rnn_layer_tc(2,2)(file_name="multi_rnn_return_sequence_with_batch.info")
+
}
);
-INI rnn_return_sequence_with_batch(
- "rnn_return_sequence_with_batch",
+INI multi_lstm_return_sequence_with_batch(
+ "multi_lstm_return_sequence_with_batch",
{
nn_base + "loss=mse | batch_size=2",
sgd_base + "learning_rate = 0.1",
I("input") + input_base + "input_shape=1:2:1",
- I("rnn") + rnn_base +
+ I("lstm") + lstm_base +
"unit = 2" + "input_layers=input"+ "return_sequences=true",
- I("outputlayer") + fc_base + "unit = 1" + "input_layers=rnn"
+ I("lstm2") + lstm_base +
+ "unit = 2" + "input_layers=lstm",
+ I("outputlayer") + fc_base + "unit = 1" + "input_layers=lstm2"
}
);
-INI rnn_return_sequence_with_batch_n(
- "rnn_return_sequence_with_batch_n",
+INI rnn_return_sequence_with_batch(
+ "rnn_return_sequence_with_batch",
{
nn_base + "loss=mse | batch_size=2",
sgd_base + "learning_rate = 0.1",
}
);
+INI multi_rnn_return_sequence_with_batch(
+ "multi_rnn_return_sequence_with_batch",
+ {
+ nn_base + "loss=mse | batch_size=2",
+ sgd_base + "learning_rate = 0.1",
+ I("input") + input_base + "input_shape=1:2:1",
+ I("rnn") + rnn_base +
+ "unit = 2" + "input_layers=input"+ "return_sequences=true",
+ I("rnn2") + rnn_base +
+ "unit = 2" + "input_layers=rnn",
+ I("outputlayer") + fc_base + "unit = 1" + "input_layers=rnn2"
+ }
+);
+
INSTANTIATE_TEST_CASE_P(
nntrainerModelAutoTests, nntrainerModelTest, ::testing::Values(
mkModelTc(fc_sigmoid_mse, "3:1:1:10", 10),
mkModelTc(lstm_return_sequence, "1:1:2:1", 10),
mkModelTc(lstm_return_sequence_with_batch, "2:1:2:1", 10),
mkModelTc(multi_lstm_return_sequence, "1:1:1:1", 10),
+ mkModelTc(multi_lstm_return_sequence_with_batch, "2:1:1:1", 10),
mkModelTc(rnn_basic, "1:1:1:1", 10),
mkModelTc(rnn_return_sequences, "1:1:2:1", 10),
mkModelTc(rnn_return_sequence_with_batch, "2:1:2:1", 10),
- mkModelTc(multi_rnn_return_sequence, "1:1:1:1", 10)
+ mkModelTc(multi_rnn_return_sequence, "1:1:1:1", 10),
+ mkModelTc(multi_rnn_return_sequence_with_batch, "2:1:1:1", 10)
), [](const testing::TestParamInfo<nntrainerModelTest::ParamType>& info){
return std::get<0>(info.param).getName();
});