1. 程式人生 > >Tensorflow實現單神經網路

Tensorflow實現單神經網路

#tensorflow實現模型評估

#訓練集
#測試集
#驗證集

import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
sess=tf.Session()

#資料集準備
x_vals=np.random.normal(1,0.1,100)
y_vals=np.repeat(10.,100)
x_data=tf.placeholder(dtype=tf.float32,shape=[None,1])
y_target=tf.placeholder(dtype=tf.float32,shape=[None,1
]) batch_size=25 train_indices=np.random.choice(len(x_vals),round(len(x_vals)*0.8),replace=False) test_indices=np.array(list(set(range(len(x_vals)))-set(train_indices))) #剩下的做測試標籤 x_vals_train=x_vals[train_indices] x_vals_test=x_vals[test_indices] y_vals_train=y_vals[train_indices] y_vals_test=y_vals[test_indices] A=tf.Variable
(tf.random_normal(shape=[1,1])) #宣告演算法模型、損失函式和優化器演算法 my_output=tf.matmul(x_data,A) loss=tf.reduce_mean(tf.square(my_output-y_target)) #初始化變數 init=tf.global_variables_initializer() sess.run(init) my_opt=tf.train.GradientDescentOptimizer(0.02) train_step=my_opt.minimize(loss) #接下來進行模型的迭代訓練 for i in range(100
): rand_index=np.random.choice(len(x_vals_train),size=batch_size) rand_x=np.transpose([x_vals_train[rand_index]]) rand_y=np.transpose([y_vals_train[rand_index]]) sess.run(train_step,feed_dict={x_data:rand_x,y_target:rand_y}) if (i+1)%25==0: print(str(i+1)+"===Loss:"+str(sess.run(loss,feed_dict={x_data:rand_x,y_target:rand_y})))