import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
def add_layer(inputs, in_size, out_size, activation_func=none):#新增神經網路層函式
weights = tf.variable(tf.random_normal([in_size, out_size]))#定義權重,記得要在列表中規定行列數
biases = tf.variable(tf.zeros([1, out_size]) + 0.1)
wx_b = tf.matmul(inputs, weights) + biases
if activation_func is none:
outputs = wx_b
else:
outputs = activation_func(wx_b)#選擇使用的激勵函式
return outputs
x_data = np.linspace(-1, 1, 300)[:,np.newaxis]#定義[-1,1]的等差陣列,並使用(n,1)shape的格式
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])
ys = tf.placeholder(tf.float32, [none, 1])
hidelayer = add_layer(xs, 1, 10, activation_func=tf.nn.relu)#隱藏層
prediction = add_layer(hidelayer, 10, 1, activation_func= tf.nn.tanh)#輸出層
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1]))#計算誤差 reduction_indices作用為維度上進行加
train_step = tf.train.gradientdescentoptimizer(0.1).minimize(loss)#根據梯度下降法來調整引數,0.1為學習率
init = tf.initialize_all_variables()#啟用變數
sess = tf.session()
sess.run(init)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)#表示一共有1個子圖,這是第1個子圖,該函式返回座標
ax.scatter(x_data, y_data)
plt.ion()
for i in range(1000):
sess.run(train_step, feed_dict=)#feed_dict類似於佔位符,它既是run呼叫的函式的引數
if i % 50 == 0:
try:
ax.lines.remove(lines[0])
except exception: pass
print(sess.run(loss, feed_dict=))
prediction_value = sess.run(prediction, feed_dict= )
lines = ax.plot(x_data, prediction_value, 'r-', lw = 5)
plt.pause(0.1)
plt.show()
有關資料視覺化
with tf.name_scope("layer"):
with tf.name_scope("weights"):
weights = tf.variable(tf.random_normal([in_size, out_size]), name='w')#定義權重,記得要在列表中規定行列數
with tf.name_scope("bias"):
biases = tf.variable(tf.zeros([1, out_size]) + 0.1, name='b')
with tf.name_scope("wx_b"):
wx_b = tf.matmul(inputs, weights) + biases
with tf.name_scope("loss"):
.....
tf.summary.scalar('loss', loss)#將loss資訊放入event裡
.....
merged = tf.summary.merge_all()#將所有總結資訊打包
......
write = tf.summary.filewriter("d://file//tensor//", tf.get_default_graph())#寫視覺化檔案
write.close()
完成後在d://file//tensor//目錄下會生成
隨後進入cmd開啟檔案
進入**即完成任務
Tensorflow卷積神經網路
卷積神經網路 convolutional neural network,cnn 是一種前饋神經網路,在計算機視覺等領域被廣泛應用.本文將簡單介紹其原理並分析tensorflow官方提供的示例.關於神經網路與誤差反向傳播的原理可以參考作者的另一篇博文bp神經網路與python實現.卷積是影象處理中一種...
Tensorflow 深層神經網路
維基百科對深度學習的定義 一類通過多層非線性變換對高複雜性資料建模演算法的合集.tensorflow提供了7種不同的非線性啟用函式,常見的有tf.nn.relu,tf.sigmoid,tf.tanh.使用者也可以自己定義啟用函式.3.1.1 交叉熵 用途 刻畫兩個概率分布之間的距離,交叉熵h越小,兩...
Tensorflow(三) 神經網路
1 前饋傳播 y x w1 b1 w2 b2 import tensorflow as tf x tf.constant 0.9,0.85 shape 1,2 w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 name w1 w2 tf.vari...