我试图使用TensorFlow来适应在线学习模型。我的候选人是DNNRegressor
和MLPRegressor
。
如果我有一个complete_dataset并将其拆分为10个子集,我希望如果我用partial_fit
训练模型并且我连续用子集提供模型,在使用第10个子集后我会有预测类似于使用complete_dataset训练的模型。
显然,实施并不是那么简单,如果有人能给我一些建议,我真的很感激。我也会考虑尝试使用scikit-learn,但我猜这种方法是类似的。
到目前为止,我认为我需要确保(如果我错了,请纠正我):
这是我的代码的一部分:
for i in range(10):
clf_partial = tf.contrib.learn.DNNRegressor(feature_columns=feature_columns,
hidden_units=[100],
activation_fn=tf.nn.tanh
)
RMSE_partial_ = []
for c in np.random.permutation(unique_countries):
X_train_partial = data[countries == c].as_matrix().astype('float32')
y_train_partial = labels[countries == c].as_matrix().astype('float32')
train_partial = tf.contrib.learn.datasets.base.Dataset(X_train_partial, y_train_partial.reshape(y_train_partial.shape[0], 1))
clf_partial = clf_partial.partial_fit(input_fn=get_train_inputs_partial, steps=50)
pred_partial = np.array(list(clf_partial.predict(input_fn=get_test_data_partial)))
RMSE_partial = np.sqrt(np.mean((pred_partial - labels) ** 2))
RMSE_partial_.append(RMSE_partial)
print('#' * 20)
tmp2.append(RMSE_partial_)