私はy = b0 + b1 * xの(x、y)ペアを入力してb0とb1を導出する単純な線形モデルを持っています。キーコードは以下の通りです。 既知のサイズのデータセットを使用してトレーニングします。今、私はそれを絶えず訓練する能力、すなわち、(x、y)のすべての他のバッチを追加し、新しいデータに従って係数を更新する能力を追加したい。無制限の量の入力があります。テンソルによるインクリメンタルモデルトレーニング
x = tf.placeholder(tf.float32, [data_len], name="x")
y = ...
b0 = tf.Variable([0.8], trainable=True)
b1 = ...
#the model
y = tf.add(tf.mul(x, b1), b0)
y_act = tf.placeholder(tf.float32, [data_len], name="y_act")
error = tf.sqrt((y - y_act) * (y - y_act))
train_step = tf.train.AdamOptimizer(0.01).minimize(error)
x_in = ...
y_in = ...
init = tf.initialize_all_variables()
sess.run(init)
feed_dict = { ... }
fetches_in = { b0: b0, b1: b1, y: y, train_step: train_step }
for i in range(0, 50):
fetches = sess.run(fetches_in, feed_dict)
私の考えでは、彼らとモデルINIT、それまでの訓練を受けた係数を覚えて、その後もう一度データの新しい部分とトレーニングを繰り返すことです。各入力に対して繰り返します。これは正しい方法ですか?モデルはおそらくより複雑なものに後で昇格されるでしょう。