tensorflow——入門程式碼一(minist master)
一 檔案結構
並不是自己下載的程式碼,老師給的,看到readme.md猜測可能時github上下載的。先理一下這個檔案結構,最_pycache_檔案有什麼用(https://blog.csdn.net/index20001/article/details/73501375/ ),解決了自己一半的疑惑,作用類似於他的名字cache,減少工程執行時間。但是,他的產生情況和文中不符,此處不再細究。
字尾.py的肯定一目瞭然,根據檔名猜測是不同演算法的實現。下面那些莫名其妙的字尾名,參考:https://zhidao.baidu.com/question/487001230.html,就是一個老外標記好的minist資料。(很好奇為什麼這麼少)
二 邊學tensorflow邊看程式碼
(1)瞭解一下 tensorflow
https://blog.csdn.net/lhh08hasee/article/details/80546919(csdn,深度學習學習資源的部落格)
(2)上面視訊收費......所以
主要想系統看下tensorflow,看官網教程感覺會很慢,看個視訊入門先(個人感覺,看了一些機器學習基礎知識的教程,發現還是先會用,再回過頭來看基礎比較好,因為基礎是在太多了,看前面,忘後面)
三 視訊筆記()
(1)tensorflow簡介
a. 作者:google 作用:方便入門深度學習
b. 安裝 windows/ubuntu+cpu+python3.5上的tensorflow
c.第三小節:(機器學習基礎)......(已知道)
(2)tensorflow基礎框架
a. 怎樣處理資料的結構(通過tensorboard介紹的)
收穫:tensorflow,翻譯過來:向量在結構中飛。(建議視訊多看兩遍,接受它需要有基礎)
b. 程式碼看結構
import tensorflow as tf import numpy as np #creat data x_data = np.random.rand(100).astype(np.float32) #資料轉換,依據 #tensorflow資料格式 #實際y_data,用來預測模型好壞 y_data = x_data*0.1+0.3 #print(x_data) #creat tensorflow structure start# #Weigtht 矩陣,大寫方便識別 Weights = tf.Variable(tf.random_uniform([1],-1.0,1.0)) biases = tf.Variable(tf.zeros([1])) y = Weights*x_data+biases #很明顯和上述式子結構一樣 loss = tf.reduce_mean(tf.square(y-y_data)) #計算誤差平方和 optimizer = tf.train.GradientDescentOptimizer(0.5) #梯度下降最優控制器 #(百度翻譯),0.5為學習效率,等效於步長 train = optimizer.minimize(loss) #用梯度下降使誤差最小 init = tf.initialize_all_variables() #上面僅僅是建立,這裡初始化變數 #...............end.............# sess = tf.Session() sess.run(init) #Very important #訓練神經網路 for step in range(201): sess.run(train) if step %20 ==0: print(step,sess.run(Weights),sess.run(biases))
執行結果:
注意:本程式碼為視訊練習手打程式碼,由於md2all用的不太熟,所以可能執行會存在錯誤,錯誤原因一定是來手動排版產生了不必要空格。
小結:第一次打tensorflow程式碼,感覺到了當初聽公開課老師說的感受,人工智慧理論是一回事,寫程式碼是另一回事兒,但是走的遠的理論一定要好。程式碼理解很容易,邏輯理清楚有點難,我不太清楚sess.run()的工作意味著什麼,其他都是很基礎的東西。
c.會話控制
看了個部落格,知道複製程式碼進去md2all產生錯誤的原因不是我自己的操作原因,看了一眼感覺稍微麻煩點,還不如直接截圖來的爽快。程式碼很簡單,很好理解。
d.變數
結果:
也很簡單,注意標註first和second的地方就好了。
本想簡單瞭解,突然間感覺也挺多的,看完視訊再去研究下tesorflow的hello world程式碼。