1. 程式人生 > >機器學習初學者的TensorFlow筆記

機器學習初學者的TensorFlow筆記

最近在自學機器學習相關知識,感覺Google出的TensorFlow有一定的發展前途,於是進行了解了一下
TensorFlow官方介紹漢化版:http://bigdata.rzaixian.com/tensorflowzh/publish/get_started/introduction/
Tf就像是一個動作構成的樹,就像太極拳一樣,你必須從一個動作開始新增動作,並形成一套動作,這些動作的組合形成一個運算的步驟,這一點跟面對過程語言很像,不過它是實際上建立圖並圍繞圖運作的
寫作Tf就是一個計算模型,你根據資料(比如在平面上給出一些點的座標)和推導建模(比如假設用n次冪的線分割),建模完成後選擇優化方法(所有的優化方法都已經提供,只需要選擇相應的優化函式),在建模的時候,為了TF可以對後續的計算進行優化,並行等目的,所有的op都要用tf提供的op(比如tf.sub而不是“-”)

通常工作步驟:

1.建立常量或者變數 tf.constant([[3., 3.]]) tf.Variable(0, name="counter") 2.建立op圖(也就是模型) 第一個op稱為源 op
new_value = tf.add(state, one)
或者
state = tf.Variable(0, name="counter")
後面的op可以使用前面的op作為引數
update = tf.assign(state, new_value)
product = tf.matmul(matrix1, matrix2)
比如最終變成這樣
y = tf.nn.softmax(tf.matmul(x,W) + b)
3.選擇模型優化的方法
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
4.啟動圖
預設圖:
sess = tf.Session()
5.初始化
如果有變數,首先必須增加一個`初始化` op 到圖中.
init_op = tf.initialize_all_variables() 6.啟動圖, 執行源 op 如果有變數:執行變數的初始化op
sess.run(init_op) 執行源 op sess.run(state) 這將返回一個計算結果 7.繼續執行 op, 更新源op進行訓練 比如:(update見上面,是一個更新原函式的op) sess.run(update)
print sess.run(state) (執行的時候會輸出結果) 8.通過獲取節點fetch獲取計算結果 可以同時獲取多個所需節點  result = sess.run([mul, intermed])
9.插入節點feed TensorFlow 還提供了 feed 機制, 該機制 可以臨時替代圖中的任意操作中的 tensor 可以對圖中任何操作提交補丁, 直接插入一個 tensor.
print sess.run([output], feed_dict={input1:[7.], input2:[2.]})
10.任務完成, 關閉會話.
sess.close()
Tensorflow多機並行優化:
通過拆分operater並估算各個operater的時間,分配到不同的硬體實現,不同硬體的協同通過傳送接受tensor實現
Tensorflow的checkpoint機制:
所有variable node會連線到一個restore node,重啟後會從checkpoint恢復

相關推薦

機器學習初學者TensorFlow筆記

最近在自學機器學習相關知識,感覺Google出的TensorFlow有一定的發展前途,於是進行了解了一下 TensorFlow官方介紹漢化版:http://bigdata.rzaixian.com/tensorflowzh/publish/get_started/intr

TensorFlow官方教程學習筆記之2-用於機器學習初學者學習的MNIST資料集(MNIST For ML Beginners)

1.資料集 MNIST是機器視覺入門級的資料集 2.演算法 1)核心 迴歸(Regression)演算法: 2)代價函式 交叉熵(cross-entropy): 3)優化 梯度下降法 3.程式碼 # Copyright 2

google機器學習框架tensorflow學習筆記(十)

訓練集和測試集 (Training and Test Sets):拆分資料 上一單元介紹了將資料集分為兩個子集的概念: 訓練集 - 用於訓練模型的子集。 測試集 - 用於測試訓練後模型的子集。 您可以想象按如下方式拆分單個數據集:

google機器學習框架tensorflow學習筆記(九)

泛化 (Generalization):過擬合的風險 本單元將重點介紹泛化。為了讓您直觀地理解這一概念,我們將展示 3 張圖。假設這些圖中的每個點代表一棵樹在森林中的位置。圖中的兩種顏色分別代表以下含義: 藍點代表生病的樹。 橙點代表健康的樹。

google機器學習框架tensorflow學習筆記(八)

合成特質和離群值 學習目標: 建立一個合成特徵,即另外兩個特徵的比例 將此新特徵用作線性迴歸模型的輸入 通過識別和擷取(移除)輸入資料中的離群值來提高模型的有效性 我們來回顧下之前的“使用 TensorFlow 的基本步驟”練習中的模型。 首先,我們將

google機器學習框架tensorflow學習筆記(四)

使用TensorFlow的基本步驟 tensorflow是一個可用於構建機器學習模型的平臺,但其實它的用途很廣泛。它是一種基於圖表的通用計算框架,可用來編寫你能想出的任何東西。事實上tensorflow.org的API頁面中提供了可在程式碼中使用的低階tensorflo

google機器學習框架tensorflow學習筆記(三)

降低損失:迭代法 迭代學習其實就是一種反饋的結果,有點類似於猜數遊戲,首先你隨便猜一個數,對方告訴你大了還是小了,接著你根據對方提供的資訊進行調整,繼續往正確的方向猜測,如此往復,你通常會越來越接近要猜的數。 這個遊戲真正棘手的地方在於儘可能高效地找到最佳模型。 下圖

google機器學習框架tensorflow學習筆記(二)

線性迴歸 人們早就知曉 ,相比涼爽的天氣,蟋蟀在較為炎熱的天氣裡鳴叫更為頻繁。數十年來,專業和業餘昆蟲學者已將每分鐘的鳴叫聲和溫度方面的資料編入目錄。Ruth 阿姨將她喜愛的蟋蟀資料庫作為生日禮物送給您,並邀請您自己利用該資料庫訓練一個模型,從而預測鳴叫聲與溫度的關係。如果把資料

google機器學習框架tensorflow學習筆記(七)

使用Tensorflow的基本步驟 第五步: 訓練模型 現在,我們可以在 linear_regressor 上呼叫 train() 來訓練模型。我們會將 my_input_fn 封裝在 lambda

google機器學習框架tensorflow學習筆記(六)

使用Tensorflow的基本步驟 設定 首先載入必要的庫 import math from IPython import display from matplotlib import cm from matplotlib import gridspec fr

google機器學習框架tensorflow學習筆記(五)

Pandas簡介 pandas  是一種列存資料分析 API。它是用於處理和分析輸入資料的強大工具,很多機器學習框架都支援將  pandas  資料結構作為輸入。 雖然全方位介紹  pandas  API 會佔據很

[機器學習收藏] TensorFlow初學者必須瞭解的55個經典案例

導語:本文是TensorFlow實現流行機器學習演算法的教程彙集,目標是讓讀者可以輕鬆通過清晰簡明的案例深入瞭解 TensorFlow。這些案例適合那些想要實現一些 TensorFlow 案例的初學者。本教程包含還包含筆記和帶有註解的程式碼。 (adsbygoogle = wi

TensorsFlow學習筆記3----面向機器學習初學者的MNIST教程(MNIST For ML Beginners)

記錄關鍵內容與學習感受。未完待續。。 面向機器初學者的MNIST教程(MNIST For ML Beginners) —–適用於對機器學習和tensorflow初學者。而這裡MNIST就好比學語言時候的列印hello world。 —–MNIS

TensorFlow之三 ----- 機器學習初學者的MNIST

現在我們知道我們想要我們的模型來做什麼了,使用TensorFlow訓練它來做這些將會非常簡單。因為TensorFlow知道你的計算的整個圖表,它能自動使用逆傳演算法backpropagation algorithm來高效的決定你的變數如何影響你要求它最小化的損失。然後它能應用你的最佳演算法的選擇來修改變數並且

機器學習公開課筆記第九周之大數據梯度下降算法

機器學習 nbsp gradient min 三種 依次 再看 獲得 mini 一,隨機梯度下降法(Stochastic Gradient Descent) 當訓練集很大且使用普通梯度下降法(Batch Gradient Descent)時,因為每一次\(\theta\)

機器學習基礎概念筆記

最大 什麽 mar 機器學習 決策 常見 idg 框架 評估 監督學習:分類和回歸屬於監督學習。這類算法必須知道預測什麽,即目標變量的分類信息。   常見算法:k-近鄰算法、線性回歸、樸素貝葉斯算法、支持向量機、決策樹、Lasso最小回歸系數估計、Ridge回歸、局部加權線

廣義線性模型 - Andrew Ng機器學習公開課筆記1.6

sans luci art 能夠 tro ron 便是 import grand 在分類問題中我們如果: 他們都是廣義線性模型中的一個樣例,在理解廣義線性模型之前須要先理解指數分布族。 指數分

Google發布機器學習平臺Tensorflow遊樂場~帶你玩神經網絡(轉載)

ima pdo androi 真的 技術 font 螺旋數據 本科 玩耍 Google發布機器學習平臺Tensorflow遊樂場~帶你玩神經網絡 原文地址:http://f.dataguru.cn/article-9324-1.html> 摘要:

ng機器學習視頻筆記(五) ——過擬合與正則化

哪些 重復 關註 osi 現實 regular 鏈接 梯度下降 簡單 ng機器學習視頻筆記(五) ——過擬合與正則化 (轉載請附上本文鏈接——linhxx) 一、過擬合和欠擬合 1、概念 當針對樣本集和特征值,進行預測的時候,推導θ、梯度下降等,都在

ng機器學習視頻筆記(六) ——神經網絡基礎

一個 變量 視頻 img 輸入 center 內容 line 基礎 ng機器學習視頻筆記(六) ——神經網絡基礎 (轉載請附上本文鏈接——linhxx) 一、概述 神經網絡,可以理解為輸入的內容,經過一系列的內部的處理,得到輸出的假設函數。簡單的神