準備資料:
importnumpy as np
import
tensorflow as tf
import
matplotlib.pylot as plt
#隨機生成1000個點,圍繞在y=0.1x+0.3的直線周圍
num_points = 1000vectors_set =
for i in
range(num_points):
x1 = np.random.normal(0.0, 0.55)
y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0, 0.03)
#生成一些樣本
x_data = [v[0] for v in
vectors_set]
y_data = [v[1] for v in
vectors_set]
plt.scatter(x_data, y_data, c='r'
)plt.show()
實現線性回歸:
#生成1維w矩陣,取值是[-1, 1]之間的隨機數
w = tf.variable(tf.random_uniform([1], -1.0, 1.0), name='w'
)#生成1維b矩陣,初始值是0
b = tf.variable(tf.zeros([1]), name='b'
)#經過計算取得預估值y
y = w * x_data +b
#以預估值y和實際值y_data之間的均方誤差作為損失
loss = tf.reduce_mean(tf.square(y - y_data), name='
loss')
#採用梯度下降法來優化引數
optimizer = tf.train.gradientdescentoptimizer(0.5)
#訓練的過程就是最小化這個誤差值
train = optimizer.minimize(loss, name='
train')
sess = tf.session() #
這種定義session的方法也可以,但是不推薦。
init =tf.global_variables_initializer()
sess.run(init)
#初始化的w和b是多少
print("
w=", sess.run(w), "
b=", sess.run(b), "
loss=
", sess.run(loss))
#執行20次訓練
for step in range(20):
sess.run(train)
#輸出訓練好的w和b
print("
w=", sess.run(w), "
b=", sess.run(b), "
loss=
", sess.run(loss))
利用tensorflow實現自編碼
1 原理 監督神經網路的本質就是對特徵的不斷學習挖掘的過程,而中間層就可以理解為對上一層特徵的提取,自編碼就是對神經網路中間層的提取,所以我們可以把高維的資料經過幾層對映到低維,在進行還原的過程 2 測試資料 構建2個三維的球,將其對映到2維,檢視資料分布 def make ball r 2,a 0...
利用padding 實現高度可控的分隔線
一.實現分隔線的方法 未理解 不是說span元素垂直方向設定怕padding不影響嗎?2 登陸 span span 註冊3 div css 1 span 實現原理 開啟chrome瀏覽器開發者工具進行盒子模型的檢視。圖1 將span標籤的margin left設定為12px,對應效果如圖1。圖2 為...
利用小trick加速tensorflow的訓練
tensorflow 1.13.1 1.tf.data並行讀取tfrecord資料 def parse exp example features tfrecord解析 return features def input fn filenames train data tfrecord batch s...