成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用一個Python示例入門TensorFlow?

開發 后端 深度學習
Google 里有些聰明人創造了一個做這件事情的庫——TensorFlow。這是一個廣受歡迎的開源庫,正如你目前所了解的那樣,它擅長于數字計算,這對我們的神經網絡計算至關重要。它為大多數主流程序語言進行深度學習領域的開發提供了應用程序接口。

[[223516]]

本文附帶的代碼可以在這里下載:

https://github.com/NMZivkovic/IntrouductionToTensorFlow

最近,我向大家介紹了我的 side-project,是個用 C# 寫的簡單的神經網絡項目。正如我在那篇文章中提到的,給出的解決方案離***方案還差的太遠。假如要達到專業化使用的程度,這個解決方案還需要使用更多的數學和矩陣乘法。幸運的是,Google 里有些聰明人創造了一個做這件事情的庫——TensorFlow。這是一個廣受歡迎的開源庫,正如你目前所了解的那樣,它擅長于數字計算,這對我們的神經網絡計算至關重要。它為大多數主流程序語言進行深度學習領域的開發提供了應用程序接口。

[[223517]]

TensorFlow 是如何運作的呢? 它的整個解決方案是基于張量進行的,張量是 TensorFlow 的原始單元。TensorFlow 使用一個張量數據結構來表示所有數據。在數學中,張量是描述其他幾何對象之間的線性關系的幾何對象。在 TesnsorFlow 中,它們是多維數組或數據,比如矩陣。其實它并不像這樣簡單, 但這就是我現在想說的深入線性代數的整個張量的概念。無論如何,我們可以把張量看作是 n 維陣列,對它使用矩陣運算是簡單且有效的。例如,在下面的代碼中,我們定義了兩個常量張量,并將一個值添加到另一個上。

這就是整個張量概念在線性代數中,

我們都知道,常量的值是不變的。而 TensorFlow 擁有豐富的 API,它的文檔也很齊全,我們可以使用它定義其他類型的數據,比如變量。

除了張量之外,TensorFlow 還使用數據流圖。圖中的節點表示數學運算,邊表示在它們之間通信的張量。

安裝和設置 

TensorFlow 為各種程序語言提供了 API,比如 Python、C++、Java、Go、Haskell 和 R(以第三方庫的形式)。此外,它支持不同類型的操作系統。在本文中,我們將在 Windows 10 上使用 Python,因此會提及這個平臺上的安裝過程。TensorFlow 只支持 Python 3.5 和 3.6,所以請確保你的系統中安裝了其中的一個版本。對于其他的操作系統和語言,你可以查看官方的安裝指南。我們需要了解的另一件事是系統的硬件配置。安裝 TensorFlow 可以有兩種選擇:

  • 只支持 CPU 的 TensorFlow 版本。
  • 支持 GPU 的 TensorFlow 版本。

如果你的系統有一個 NVIDIA GPU,那么你可以安裝支持 GPU 的 TensorFlow 版本。當然,GPU 版本更快,但是 CPU 版更容易安裝和配置。

如果你使用 Anaconda 安裝 TensorFlow,可以按照以下步驟完成:

通過運行命令來創建一個 conda 環境“tensorflow”。

  1. conda create -n tensorflow pip python=3.5  

通過命令激活創建的環境:

  1. activate tensorflow  

調用該命令來在你的環境中安裝 TensorFlow。對于 CPU 版本運行這個命令:

  1. pip install --ignore-installed --upgrade tensorflow 

對于 GPU 版本運行命令:

  1. pip install --ignore-installed --upgrade tensorflow-gpu 

當然,你也可以使用“native pip”命令來安裝 TensorFlow。對于 CPU 版本運行:

  1. pip3 install --upgrade tensorflow 

對于 GPU TensorFlow 版本運行命令:

  1. pip3 install --upgrade tensorflow-gpu 

現在我們已經安裝了 TensorFlow。接下來開始解決我們要解決的問題。

Iris 數據集分類問題 

Iris 數據集,以及 MNIST 數據集,可能是模式識別文獻中***的數據集之一。這是機器學習分類問題的“Hello World”示例。它最早是在 1936 年由 Ronald Fisher 推出的。他是英國的統計學家和植物學家,他在論文《使用多重測量解決生物分類問題》中使用了這個例子,直到今天這篇論文也經常被引用。該數據集包含 3 個類別,每個類別有 50 個實例。每個類別都是一種類型的 Iris 植物:Iris setosa、Iris virginica 和 Iris versicolor。***類是線性可分的,但后兩種不是線性可分的。每個記錄都有五個屬性:

  • cm 表示的 Sepal 長度
  • cm 表示的 Sepal 寬度
  • cm 表示的 Petal 長度
  • cm 表示的 Petal 寬度

類別 Class(Iris setosa, Iris virginica, Iris versicolor)

我們要創建神經網絡的目標是根據其他屬性來預測 Iris 的種類。這意味著它需要創建一個模型,描述屬性值和類別之間的關系。

TensorFlow 工作流 

大部分的 TensorFlow 代碼遵循這個工作流程:

  • 導入數據集
  • 使用附加列擴展數據集,用以描述數據
  • 選擇模型的類型
  • 開始訓練
  • 評估模型的準確性
  • 使用模型預測結果

如果你關注我之前的博客文章,你可能會注意到開發任何人工神經網絡都離不開訓練和評估過程。這些過程通常是在兩個數據集上完成的,一個用于訓練,另一個用于測試訓練網絡的準確性。通常,我們得到一組數據,我們需要將它們分成兩個獨立的數據集,并使用其中一個進行培訓,另一個用于測試。這一比率通常為 80% 到 20%。這次這些都已經為我們做好了。你可以從這里下載訓練數據集,從這里下載測試數據集。或者你可以從這里下載完整的代碼和數據。

 編碼 

在繼續之前,我得首先說明一下,我使用 Spyder IDE 進行開發,因此我將使用這個環境來解釋整個過程。

我們需要做的***件事是導入數據集并解析它。為此,我們需要使用另一個 Python 庫 -Pandas。這是另一個開源庫,為 Python 提供了易于使用的數據結構和數據分析工具。

正如你所看到的,首先我們使用 readcsv 函數將數據集導入到本地變量中,然后我們將輸入 (train_x、test_x) 和預期輸出 (train_y、test_y) 分離開來,創建四個獨立的矩陣。以下是他們的樣子:

我們準備好了用于訓練和測試的數據。現在,我們需要定義特征列,這也是神經網絡需要的。

我們現在需要選擇我們將要使用的模型。在我們的問題中,我們試圖根據屬性數據來預測 Iris 的類型。所以我們要從 TensorFlow API 中選擇一個評估器。評估器類的一個對象封裝了構建 TensorFlow 圖形并運行 TensorFlow 會話的邏輯。為此,我們將使用 DNN 分類器。我們將添加兩個隱藏的層,每個層有十個神經元。

在那之后,我們將用我們從訓練數據集中選取的數據來訓練我們的神經網絡。首先,我們將定義訓練功能。該函數需要通過擴展和創建多個批次來提供來自訓練集的數據。如果訓練樣本是隨機的訓練效果也會更好。這就是為什么調用 shuffle 函數的原因。總之, train_function 使用經過訓練的數據集,隨機地從數據中選取數據,并將數據反饋給 DNN 分類器的訓練方法,從而創建大量的數據。

***,我們調用評估函數來評估我們的神經網絡,并給出網絡的回準度。

當我們運行這段代碼后,將得到如下結果:

所以,我的神經網絡的精度是 0.93,非常不錯。在此之后,我們可以使用單個數據調用分類器,并對其進行預測。  

 

結論 

 

神經網絡已經存在很長時間了,現在的幾乎所有重要的概念都可以追溯到 70 年代或 80 年代。阻礙整個領域發展的問題是那時我們沒有強大的計算機和 GPU 來運行這些程序。現在,我們不僅可以做到這一點,而且 Google 通過創造這一偉大的工具使神經網絡變的流行起來,那就是開源的 TensorFlow。如今,我們還有其他更高級的 API,可以進一步簡化神經網絡的實現。其中一些比如 Keras 也是基于 TensorFlow 運行的。在以后的文章中,我們將對這一問題進一步探討。

英文原文鏈接:https://rubikscode.net/2018/02/05/introduction-to-tensorflow-with-python-example/ 

責任編輯:龐桂玉 來源: AI前線
相關推薦

2023-02-26 01:37:57

goORM代碼

2016-09-06 19:45:18

javascriptVue前端

2018-12-18 12:12:51

Python服務器Django

2023-12-30 13:33:36

Python解析器JSON

2017-03-15 08:43:29

JavaScript模板引擎

2017-03-20 17:59:19

JavaScript模板引擎

2023-04-04 09:15:10

NAPI 框架鴻蒙

2015-10-12 16:45:26

NodeWeb應用框架

2024-03-28 08:36:57

2021-07-06 14:36:05

RustLinux內核模塊

2023-03-06 08:14:48

MySQLRedis場景

2021-09-13 06:03:42

CSS 技巧搜索引擎

2020-10-26 08:19:53

算法隊列

2021-10-29 10:36:21

Python代碼朋友圈

2021-02-17 11:05:34

PythonPyQt代碼

2017-05-02 11:30:44

JavaScript數組惰性求值庫

2022-03-17 15:34:47

printf日志

2020-10-30 15:04:16

開發技能代碼

2019-01-07 10:25:44

Gonimo嬰兒監視開源

2018-06-22 10:30:56

C語言虛擬機編譯器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美电影在线 | 国产精品久久久亚洲 | 国产福利91精品一区二区三区 | 精品无码久久久久久国产 | 中文字幕在线三区 | 日韩在线播放视频 | 久久久久久久国产精品影院 | 亚洲午夜精品一区二区三区他趣 | 国内精品久久久久久 | 在线视频久久 | 国内自拍偷拍 | 国产一区二区三区 | 一区二区三区四区av | 日韩欧美亚洲 | 国产你懂的在线观看 | 亚洲国产精品一区 | 日韩在线免费视频 | 国产一区影院 | 亚洲欧美视频一区 | 午夜视频在线 | 羞羞色网站 | 精品国产乱码久久久久久影片 | 国产精品自拍视频 | 福利久久 | 91精品免费视频 | 日韩免费1区二区电影 | 午夜视频网站 | 亚洲一区欧美一区 | 欧美日韩第一页 | 成年视频在线观看福利资源 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 午夜免费视频 | 久久综合九九 | 日韩欧美一区二区三区四区 | 日韩精品久久久久 | 99re在线视频 | 日韩成人在线免费观看 | 国产成人jvid在线播放 | 成人免费视频在线观看 | 九色网址 | 国产在线小视频 |