【机器学习代码入门】tensorflow库函数的调用(三)-----网络搭建

推荐大家看一下莫烦python的课程,结合着这个代码看点击此处

import tnesorflow as tf

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


#这里[:,np.newaxis]的作用是把x_data的维度由[300,]转变为[1,300],就是相当于在原本的x_data外层有套了一组[]
x_data=np.linspace(-1,1,300)[:,np.newaxis]
noise=np.random.normal(0,0.05,x_data.shape)
y_data=np.square(x_data)-0.5+noise

xs=tf.placeholder(tf.float32,[None,1])#输出的属性只有一,None是无论给多少个例子都ok
ys=tf.placeholder(tf.float32,[None,1])
l1=add_layer(xs,1,10,activation_function=tf.nn.relu)
predition=add.layer(l1,10,1,activation_function=None)
loss=tf.reduce_mean(tf.reduce_sum(tf.square(ys-prediction),
					reduction_indices=[1]))
train_step=tf.train.GradientDecentOptimizer(0.1).minimize(loss)
init=tf.initialize_all_variable()
sess=tf.Session()
sess.run(init)

for i in range(1000):
	sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
	if i%50==0
	print(sess(loss,feed_dict={xs:s_data,ys:y_data}))#只要是placeholder就得feed——dict
	


结果如下
【机器学习代码入门】tensorflow库函数的调用(三)-----网络搭建_第1张图片

你可能感兴趣的:(tensorflow)