我有5403行的简单CSV训练数据集,如下所示:
4;4;8
10159;33589;43748
12353;32085;44438
12120;23906;36026
1001;788;1789
788;1001;1789
它基本上是随机生成的数字(行中两个,第三个是加法结果)第一个数字(val1)+第二个数字(val2)=第三个数字(结果)。数据集已生成一次,因此数据集的每个执行时间都相同。用于评估的测试集以相同的方式完成。我的代码是:
classifier = tf.estimator.DNNRegressor(
feature_columns=my_feature_columns,
hidden_units=[100, 100],
model_dir='model_2'
)
classifier.train(input_fn=lambda: train_input_fn(train_x, train_y, len(train_x)), steps=350)
classifier.evaluate(input_fn=lambda: train_input_fn(test_x, test_y, len(test_x)), steps=50)
expected = [8, 12, 200, 81, 200, 211, 299, 250, 1789, 45000]
predict_x = {
'val1': [4, 6, 100, 40, 100, 30, 99, 100, 1001, 40000],
'val2': [4, 6, 100, 41, 100, 181, 200, 150, 788, 5000],
}
predictions = classifier.predict(input_fn=lambda: eval_input_fn(predict_x,
labels=None,
batch_size=440))
问题和疑问:
当我第一次“询问”这段代码关于4 + 4的结果时,它没有给出正确的结果(它给出了我的例子8.943672)。当我再次运行它时,它给我的结果仍然不正确,但每次运行时都更接近正确。当我运行数百次后,我终于得到了预期的结果。
问题1:为什么这段代码“无法立即学习”?
问题2:我在训练集中有一行:4; 4; 8,为什么机制没有从数据集中得到结果而不是进行计算?
问题3:正如我所提到的,我已经运行了这个代码数百次,我的模型目录model_2
现在超过1,1Gb,而trainig数据集是90,2 Kb,为什么这么大?我能减少吗?