tensorflow神經網路搭建及視覺化

2021-09-01 12:55:12 字數 2736 閱讀 9978

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...