import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
def add_layer(inputs,in_size,out_size,activation_function=None): #定义一个层概念,用于在网络中添加层时引用 (输入,输入单元数量,输出单元数量,激活函数(无代表线性))
Weights = tf.Variable(tf.random_normal([in_size,out_size])) #定义一个变量——Weights,生成一个大小为[in_size,out_size]的权重矩阵
biases = tf.Variable(tf.zeros([1,out_size])+0.1) #定义一个变量——biases,生成一个大小为[1,out_size]的偏差矩阵,元素值都为0.1
Wx_plus_b=tf.matmul(inputs,Weights)+biases #定义线性公式,Wx_plus_b= ax+b, 激活函数作用在这个值上,实现非线性变换
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b)
return outputs # 层定义结束
##数据集整理部分
x_data = np.linspace(-1,1,300)[:,np.newaxis] #在-1和1之间,生成300个等间隔的数字,x_data的形式由[:,np.newaxis]来控制:[1,300],即1行300列。
noise = np.random.normal(0,0.05,x_data.shape) #随机产生一个概率分布均值为0,标准差为0.05的噪声数据,数据的尺寸大小和x_data一致(因为要加在x_data上)
y_data = np.square(x_data)-0.5+noise #目标函数y_data:(x_data)^2-0.5 + noise
# placeholde