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