15c145f0e3cabc7e61440ddf32c1ac28f5b9d499eA. Unique TensorFlower# Copyright 2016 The TensorFlow Authors. All Rights Reserved. 237606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 337606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# Licensed under the Apache License, Version 2.0 (the "License"); 437606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# you may not use this file except in compliance with the License. 537606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# You may obtain a copy of the License at 637606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 737606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# http://www.apache.org/licenses/LICENSE-2.0 837606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# 937606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# Unless required by applicable law or agreed to in writing, software 1037606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# distributed under the License is distributed on an "AS IS" BASIS, 1137606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1237606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# See the License for the specific language governing permissions and 1337606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan# limitations under the License. 14d28d4c477b764019b763029145bd81bb491e8a7cA. Unique TensorFlower"""Example of DNNRegressor for Housing dataset.""" 15d28d4c477b764019b763029145bd81bb491e8a7cA. Unique TensorFlower 16334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import absolute_import 17334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import division 18334702e19a920ac21fbbbf5b14f7619cb860c427Martin Wickefrom __future__ import print_function 19bc456e361d49d1d89a74b80060c70efb51fd7d87Martin Wicke 20cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Fengimport numpy as np 21bc456e361d49d1d89a74b80060c70efb51fd7d87Martin Wickefrom sklearn import datasets 22c00c073f52c2fc7b6672022c75d0b2abb9d9af3aA. Unique TensorFlowerfrom sklearn import metrics 23f2574c273778eeb05a8ef3ba40544ddee98a9e07Martin Wickefrom sklearn import model_selection 2437606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevanfrom sklearn import preprocessing 25bc456e361d49d1d89a74b80060c70efb51fd7d87Martin Wicke 26a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlowerimport tensorflow as tf 27a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower 28a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower 29a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlowerdef main(unused_argv): 30a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower # Load dataset 31bc456e361d49d1d89a74b80060c70efb51fd7d87Martin Wicke boston = datasets.load_boston() 32a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower x, y = boston.data, boston.target 33a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower 34a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower # Split dataset into train / test 35bc456e361d49d1d89a74b80060c70efb51fd7d87Martin Wicke x_train, x_test, y_train, y_test = model_selection.train_test_split( 36c00c073f52c2fc7b6672022c75d0b2abb9d9af3aA. Unique TensorFlower x, y, test_size=0.2, random_state=42) 3737606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 38a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower # Scale data (training set) to 0 mean and unit standard deviation. 39a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower scaler = preprocessing.StandardScaler() 40a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower x_train = scaler.fit_transform(x_train) 4137606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 42a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower # Build 2 layer fully connected DNN with 10, 10 units respectively. 43cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng feature_columns = [ 44cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng tf.feature_column.numeric_column('x', shape=np.array(x_train).shape[1:])] 45cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng regressor = tf.estimator.DNNRegressor( 46c00c073f52c2fc7b6672022c75d0b2abb9d9af3aA. Unique TensorFlower feature_columns=feature_columns, hidden_units=[10, 10]) 4737606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 48cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng # Train. 49cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng train_input_fn = tf.estimator.inputs.numpy_input_fn( 50cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng x={'x': x_train}, y=y_train, batch_size=1, num_epochs=None, shuffle=True) 51cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng regressor.train(input_fn=train_input_fn, steps=2000) 52cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng 53cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng # Predict. 5493a975e114ee1c35f01ed3bdd47170e6f7129014Vijay Vasudevan x_transformed = scaler.transform(x_test) 55cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng test_input_fn = tf.estimator.inputs.numpy_input_fn( 56cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng x={'x': x_transformed}, y=y_test, num_epochs=1, shuffle=False) 57cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng predictions = regressor.predict(input_fn=test_input_fn) 58cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng y_predicted = np.array(list(p['predictions'] for p in predictions)) 59cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng y_predicted = y_predicted.reshape(np.array(y_test).shape) 60cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng 61cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng # Score with sklearn. 62cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng score_sklearn = metrics.mean_squared_error(y_predicted, y_test) 63cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng print('MSE (sklearn): {0:f}'.format(score_sklearn)) 6437606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 65cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng # Score with tensorflow. 66cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng scores = regressor.evaluate(input_fn=test_input_fn) 67cf7c008ab150ac8e5edb3ed053d38b2919699796Yifei Feng print('MSE (tensorflow): {0:f}'.format(scores['average_loss'])) 6837606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 6937606a4c63364c56a0834d281023b62d2bda6cd8Vijay Vasudevan 70a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlowerif __name__ == '__main__': 71a3cdbde19fbaa959e559596a555c054b78779ee5A. Unique TensorFlower tf.app.run() 72