tf.estimator.DNNLinearConbinedRegressor实现一个小的demo

对于输入是一个售房信息只取了两个特征:label为房屋多少天卖出去:


模型定义:

estimator = tf.estimator.DNNLinearCombinedRegressor(
                                linear_feature_columns=[tf.feature_column.numeric_column('x', shape=[3])], 
                dnn_hidden_units=[4,16,32],
                                model_dir='./models/dnnlregressor',
                                linear_optimizer=tf.train.ProximalAdagradOptimizer(
                                learning_rate=0.1,
                                l1_regularization_strength=0.001
                                            )
                                            )


数据的输入:

train_input_fn = tf.estimator.inputs.numpy_input_fn(
                                x={"x": np.array(example)},
                                y=np.array(label),
                                num_epochs=None,
                                shuffle=True)

# 定义测试输入:
test_input_fn = tf.estimator.inputs.numpy_input_fn(
    x={"x":np.array(example_test)},
    y=np.array(label_test),
    num_epochs=None,
    shuffle= True
)
 
 


训练测试和预测:

# 训练estimator.train(input_fn=train_input_fn,steps=100)# 测试ev = estimator.evaluate(input_fn=test_input_fn, steps=1)print('ev: {}'.format(ev))

# 预测predict_iter = estimator.predict(input_fn=test_input_fn)for predict in predict_iter:

print(predict['predictions'])

这里要注意一点那就是预测出来的数返回的是一个生成器,

如果想要的到输出值,就要做出符合python生成器的行为才能得到数据





猜你喜欢

转载自blog.csdn.net/weixin_38859557/article/details/80913750