tensorflow學習之新增層並簡單訓練

2021-10-03 14:48:49 字數 3633 閱讀 9389

import tensorflow as tf

import numpy as np

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

x_data = np.linspace(-1,1,300)[:,np.newaxis] #300行

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])

l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)

prediction = 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.gradientdescentoptimizer(0.1).minimize(loss)

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

for i in range(100):

sess.run(train_step,feed_dict=)

if i%50==0:

print(sess.run(loss,feed_dict=))

print(x_data)

結果視覺化:

matplotlib的標準使用流程為:

import tensorflow as tf

import numpy as np

import matplotlib.pyplot as plt

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

x_data = np.linspace(-1,1,300)[:,np.newaxis] #300行

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])

l1 = add_layer(xs,1,10,activation_function=tf.nn.relu)

prediction = 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.gradientdescentoptimizer(0.1).minimize(loss)

init = tf.initialize_all_variables()

sess = tf.session()

sess.run(init)

fig = plt.figure() # 生成乙個框

ax = fig.add_subplot(1,1,1)

ax.scatter(x_data,y_data)

plt.ion() # show的時候不暫停

plt.show() # 顯示真實資料

for i in range(1000):

sess.run(train_step,feed_dict=)

if i%50 == 0:

# print(sess.run(loss,feed_dict=))

try: # 先抹除再畫線,忽略第一次的錯誤

ax.lines.remove(lines[0])

except exception:

pass

prediction_value = sess.run(prediction,feed_dict=)

lines = ax.plot(x_data,prediction_value,'r-',lw=5)

plt.pause(0.1) # 暫停0.1秒

figure 的一些方法

add_axes(*args, **kwargs):建立乙個axes物件。如果已經存在同樣位置同樣引數的乙個axes,則返回該axes,並將其設為current axes。其引數有:

如果你想在同樣的乙個rect建立兩個axes,那麼你需要設定label引數。不同的axes通過不同的label鑑別。

如果你使用了fig.delaxes()figure中移除了ax,那麼你可以通過fig.add_exes(ax)來將其放回。

add_subplot(*args,**kwargs):建立乙個subplot。如果已經存在同樣位置同樣引數的乙個subplot,則返回該subplot,並將其設為current axes

tensorflow學習之softmax使用詳解

softmax 在機器學習和深度學習中有著非常廣泛的應用。尤其在處理多分類 c 2 問題,分類器最後的輸出單元需要softmax 函式進行數值處理。關於softmax 函式的定義如下所示 其中,vi 是分類器類別的輸出。i 表示類別索引,總的類別個數為 c。si 表示的是當前元素的指數與所有元素指數...

TensorFlow學習之常用函式

tensorflow的設計理念稱之為計算流圖,在編寫程式時,首先構築整個系統的graph,並不會直接生效。然後,在實際的執行時,啟動乙個session,程式才會真正的執行。很多python程式的底層為c語言或者其他語言,執行一行指令碼,就要切換一次,這樣做的好處就是 避免反覆地切換底層程式實際執行的...

小白學習之Tensorflow安裝

tensorflow安裝過程中會出現各種問題,經過無數次跳坑之後,終於解決問題,所以就記錄一下 1 環境 win10 2 安裝步驟 win cmd進入後台,輸入conda version 會出現conda版本號 輸入python version,可以檢視當前python版本號 4 安裝tensorf...