0

入力は可変サイズの配列です。train_model では、特定の例を一度に 1 つのサンプルしか処理できません。バッチ内の要素の目的の合計を蓄積してから、正則化と勾配降下を適用したいと考えています。

現在、これは要素 xi ごとに更新が行われるトレーニング段階です。

for epoch in range(n_epochs):
minibatch_avg_cost = 0
for xi in dataset.get_next_xi(batch_size):
  minibatch_avg_cost += train_model(xi)

  print(minibatch_avg_cost)

バッチ内の要素数について train_model(xi) から結果を取得し、更新を行うにはどうすればよいですか?

4

1 に答える 1

0

すべての要素dataset.get_next_xi(batch_size)を入力として使用し、theano 関数を作成して (1 つのコストだけではなく) 平均コストを計算し、平均コストを使用して更新を行います。サンプルコードはこちらからご覧いただけます

次のように、train モデルの theano 関数を使用します。

train_model = theano.function(
    inputs=[index],
    outputs=cost,
    updates=updates,
    givens={
        x: train_set_x[index * batch_size: (index + 1) * batch_size],
        y: train_set_y[index * batch_size: (index + 1) * batch_size]
    }
)

withcostはデータセット バッチの平均コスト

于 2016-03-25T12:55:46.433 に答える