Estimatorを使用してLSTMネットワークを構築しようとしています。 lstm_model機能がEstimatorを使用してLSTMネットワークを構築する
def lstm_model(features, targets, mode, params):
def lstm_cells(layers):
if isinstance(layers[0], dict):
return [tf.nn.rnn_cell.BasicLSTMCell(layer['steps'],state_is_tuple=True) for layer in layers]
return [tf.nn.rnn_cell.BasicLSTMCell(steps, state_is_tuple=True) for steps in layers]
stacked_lstm = tf.nn.rnn_cell.MultiRNNCell(lstm_cells(params['rnn_layers']), state_is_tuple=True)
output, layers = tf.nn.rnn(stacked_lstm, [features], dtype=tf.float32)
return learn.models.linear_regression(output, targets)
とのparamsは、その後、私は
model_params = {
'steps': 1000,
'learning_rate': 0.03,
'batch_size': 24,
'time_steps': 3,
'rnn_layers': [{'steps': 3}],
'dense_layers': [10, 10]
}
であり、ある
regressor = learn.Estimator(model_fn=lstm_model,
params=model_params,
)
:私は見積もりを使用しています
X = [[1,2,3], [2,3,4], ... , [98,99,100]]
y = [2, 3, ... , 99]
のように私のデータが見えますフィッティング
regressor.fit(X, y)
私が直面しています問題は
output, layers = tf.nn.rnn(stacked_lstm, [features], dtype=tf.float32)
である配列を必要としますが、私はテンソルのリストに私に機能を分割する方法がわからないです。 lstm_model関数内のフィーチャの形状は(?、3)
2つの質問がありますが、どのようにバッチでトレーニングを行うのですか?どのように 'フィーチャー'を分割するのですか
output, layers = tf.nn.rnn(stacked_lstm, [features], dtype=tf.float32)
はスローされず、エラーになりません。私は取得していますエラーが0.12