LSTMのトレーニングとテストの長さが違います
13458 ワード
最近問題があり、LSTMのトレーニングのサンプルの時間長は一致していますが、テストの時にジェネレータを使ってその長さが不定であることを望み(生成されたLatent spaceの長さによって異なる)、特に良い方法はないようです(トレーニングの時にtimestepに変更するのは
後でモデルを変えてみればいいのですが、
“batch_input_shape”: [null, 100, 5]
の部分は私たちが修正する必要があります.この意味は
このように見ると、
None
)を探しましたが、私は今トレーニングしています.後でモデルを変えてみればいいのですが、
{
"class_name": "Model",
"config": {
"name": "model_1",
"layers": [{
"name": "input_1",
"class_name": "InputLayer",
"config": {
"batch_input_shape": [null, 100, 5],
"dtype": "float32",
"sparse": false,
"name": "input_1"
},
"inbound_nodes": []
}, {
"name": "generator",
"class_name": "Sequential",
"config": [{
"class_name": "LSTM",
"config": {
"name": "lstm_1",
"trainable": true,
"batch_input_shape": [null, 100, 5],
"dtype": "float32",
"return_sequences": true,
"return_state": false,
"go_backwards": false,
"stateful": false,
"unroll": false,
"units": 100,
"activation": "tanh",
"recurrent_activation": "sigmoid",
"use_bias": true,
"kernel_initializer": { "class_name": "VarianceScaling", "config": { "scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null } },
"recurrent_initializer": { "class_name": "Orthogonal", "config": { "gain": 1.0, "seed": null } },
"bias_initializer": { "class_name": "Zeros", "config": {} },
"unit_forget_bias": true,
"kernel_regularizer": null,
"recurrent_regularizer": null,
"bias_regularizer": null,
"activity_regularizer": null,
"kernel_constraint": null,
"recurrent_constraint": null,
"bias_constraint": null,
"dropout": 0.0,
"recurrent_dropout": 0.0,
"implementation": 1 }
}, {
"class_name": "Reshape",
"config": {
"name": "reshape_1",
"trainable": true,
"target_shape": [-1, 100] }
}, {
"class_name": "Dense",
"config": {
"name": "dense_1",
"trainable": true,
"units": 1,
"activation": "tanh",
"use_bias": true,
"kernel_initializer": { "class_name": "VarianceScaling", "config": { "scale": 1.0, "mode": "fan_avg", "distribution": "uniform", "seed": null } },
"bias_initializer": { "class_name": "Zeros", "config": {} },
"kernel_regularizer": null,
"bias_regularizer": null,
"activity_regularizer": null,
"kernel_constraint": null,
"bias_constraint": null }
}],
"inbound_nodes": [
[
["input_1", 0, 0, {}]
]
]
}],
"input_layers": [
["input_1", 0, 0]
],
"output_layers": [
["generator", 1, 0]
]
},
"keras_version": "2.1.5",
"backend": "tensorflow"
}
input_1
の部分に注意してください.“batch_input_shape”: [null, 100, 5]
の部分は私たちが修正する必要があります.この意味は
None
のサンプル数で、長さは100で、次元ごとに5の時間系列で、私たちがしなければならないのは100をnull
にあげることです.このように見ると、
Keras
でinput_1
を直接修正してもいいかもしれません.