tensorflow例項 2 機器學習初試

2021-08-13 15:50:21 字數 1967 閱讀 5606

本示例**,讓你對將要學習tensorflow有初步的印象.整段**其實相當於完成線性方程的求解,

當然,這個求解過程,不是線性方程的求解方法,而是通機器學習的神經網路方法進行求解,

如果你測試成功了本段**,但又暈暈呼呼,不知道在幹什麼,

你可以參考我的另一篇文章   機器學習(1)--神經網路初探

# -*- coding:utf-8 -*- 

import tensorflow as tf

import numpy as np

def tfnn(w,b):

'''w 為線性方程上各維度的係數

b為常數

即 y= a0 * x0 + a1 * x1 + a2 * x2 + a3 * x3 + b 其中w=[a0,a1,a2,a3]

'''w=(w if isinstance(w,np.ndarray) else np.array(w)).astype(np.float32)

#構建一100條資料,做為訓練資料

x_data=np.random.random([100,len(w)]).astype(np.float32)

y_data=np.matmul(x_data,w)+b

#print(x_data[0]) #[ 0.46942019 0.34641194 0.44924116 0.05670002]

#print(y_data[0]) #0.773677 即實現了線性方程 y = 0.46942019*0.1+ 0.34641194*0.2 +0.44924116*0.3+0.05670002*0.4+0.5

#以下三行為將用weights代替w,biases代替b

weights=tf.variable(tf.random_uniform([len(w)],-1.0,1.0)) #隨機初始化weights,這裡的目的只是給個初始值,這和最終計算的沒有任何關係,會在機器學習的過程中將不斷的調整這個weights

biases=tf.variable(tf.zeros([1])) #隨機初始化biases,同上條一樣,這和最終計算的沒有任何關係,所以就設為零

y=tf.reduce_sum(x_data*weights,axis=1)+biases #同樣是設定y與weights及biases的線性關係

loss = tf.reduce_mean(tf.square(y - y_data))# 最小化方差,這兩行就暫時死記吧,loss就是計算調整測試值與實際值的作用,如果參考了我的另一篇文章,應該能理解這兩行的作用

train=tf.train.gradientdescentoptimizer(0.25).minimize(loss) #優化器,0.25學習效率,應該是乙個小於0.5的數,

traintimes=(len(w)+1)*100 #計算學習的次數,

showtrainstep=traintimes/5 #要學習幾百次,全部步驟顯示太多,就顯示5次

with tf.session() as sess:

sess.run(tf.initialize_all_variables())

for i in range(traintimes):

sess.run(train)

if i % showtrainstep==0:

print(sess.run(weights),sess.run(biases))

print('-'*20+' 計算結束,對最後結果進行四捨五入'+'-'*20)

print(np.round(sess.run(weights),2),np.round(sess.run(biases),2)) # 對最後結果進行四捨五入,讓結果看得清晰些

#最後的結果與我們的傳參(w,b)是基本相符合的,說明整個機器學習的過程是正確有效的

tfnn([0.01,0.02,0.03,0.04],0.05)

機器學習筆記(2)tensorflow學習

參考資料 單隱層前饋網路結構 問題描述 天氣氣溫,當輸入連續三小時的氣溫時,第四個小時的氣溫。資料 訓練集為20 24小時氣溫資料,測試集為10 24小時資料。網路結構為 3 7 1,即三個輸入神經元,七個隱層神經元,乙個輸出神經元。環境 python3.6.5和tensorflow1.2.1,im...

tensorflow 入門經典例項

import tensorflow as tf 發起會話 sess tf.session 兩行都可以執行 具體意思見下方注釋 a tf.variable tf.truncated normal 2,3 0,1,dtype tf.float32,seed 3 a tf.variable tf.rand...

tensorflow 簡單例項1

import tensorflow as tf import numpy as np create data x data np.random.rand 100 astype np.float32 y data 0.5 x data 1.3 tensorflow中的變數,這些變數在每次sess迭代時...