Tensorflow:深度神经网络DNN预测波士顿房价(boston house price)【二】

来源:互联网 发布:学python和java哪个好 编辑:程序博客网 时间:2024/05/16 07:38

在Tensorflow:深度神经网络DNN预测波士顿房价(boston house price)【一】 中训练了网络还保存了模型。如何使用训练好的模型?请往下看。。

import用到的包

# coding: utf-8import tensorflow as tffrom sklearn.datasets import load_bostonfrom sklearn.preprocessing import scalefrom sklearn.model_selection import train_test_splitimport matplotlib.pyplot as plt

获取数据

# get databoston = load_boston()X = boston.datay = boston.target

生成训练集和验证集,这里只用到验证集

# split train and test dataX_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.1,random_state=0)# scale dataX_test = scale(X_test)y_test = scale(y_test).reshape((-1,1))

定义预测方法

def predict(X,y,keep_prob):    with tf.Session() as sess:        # restore saver        saver = tf.train.import_meta_graph(meta_graph_or_file="nn_boston_model/nn_boston.model-10000.meta")        model_file = tf.train.latest_checkpoint(checkpoint_dir="nn_boston_model")        saver.restore(sess=sess,save_path=model_file)        # init graph        graph = tf.get_default_graph()        # get placeholder from graph        xs = graph.get_tensor_by_name("inputs:0")        ys = graph.get_tensor_by_name("y_true:0")        keep_prob_s = graph.get_tensor_by_name("keep_prob:0")        # get operation from graph        pred = graph.get_tensor_by_name("pred:0")        # run pred        feed_dict = {xs: X, ys: y, keep_prob_s: keep_prob}        y_pred = sess.run(pred,feed_dict=feed_dict)    return y_pred.reshape(-1)

使用预测方法

y_pred = predict(X=X_test,y=y_test,keep_prob=1)

画图查看预测效果

# show dataplt.plot(range(len(y_test)),y_test,'b')plt.plot(range(len(y_pred)),y_pred,'r--')plt.show()

效果麻麻地,拟合还是不够好
这里写图片描述

阅读全文
0 0
原创粉丝点击