对于输入是一个售房信息只取了两个特征: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生成器的行为才能得到数据