使用matplotlib可视化结果

 

代码:

# -*- coding: utf-8 -*-
"""
Created on Thu Aug  8 15:59:04 2019

@author: Administrator
"""

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

def add_layer(inputs,in_size,out_size,activation_funtion=None):
    Weights = tf.Variable(tf.random_normal([in_size,out_size]))
    biases = tf.Variable(tf.zeros([1,out_size]) + 0.1)
    plus = tf.matmul(inputs,Weights) + biases
    if activation_funtion is None:
        outputs = plus
    else:
        outputs = activation_funtion(plus)
    return outputs

#定义数据集
x_date = np.linspace(-1,1,300)[:,np.newaxis]#1列
noise = np.random.normal(0,0.05,x_date.shape)#使用高斯正态分布建立噪点,
y_date = np.square(x_date) - 0.5 + noise#定义一个二次函数模型

#定义placeholder站位
xs = tf.placeholder(tf.float32,[None,1])
ys = tf.placeholder(tf.float32,[None,1])

#添加第一个层
l1 = add_layer(xs,1,10,activation_funtion=tf.nn.relu)

#添加第二个层
out = add_layer(l1,10,1,activation_funtion=None)

#loss函数以及使用梯度下降方法来优化
loss = tf.reduce_mean(tf.reduce_sum(tf.square(y_date - out),reduction_indices=[1]))
tain_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)

init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    plt.scatter(x_date,y_date)
    for i in range(1000):
        
        sess.run(tain_step,feed_dict = {xs:x_date,ys:y_date})
        if i%50 == 0:
            prediction_out = sess.run(out,feed_dict={xs:x_date})
            plt.scatter(x_date,prediction_out)
            print("loss :",sess.run(loss,feed_dict={xs:x_date,ys:y_date}))
        
plt.show()   
        

结果:

 

 

posted @ 2019-08-08 17:27  也许明天、  阅读(276)  评论(0)    收藏  举报