【機器學習代碼入門】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
	


結果如下
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章