深度学习tensorflow数据流图基础知识点
?
一、深度學習與機器學習區(qū)別
(一)特征提取方面
1、機器學習的特征工程步驟是要靠手動完成的,而且需要大量領域專業(yè)知識? 深度學習通常由多個層組成,它們通常將更簡單的模型組合在一起,通過將數(shù)
據(jù)從一層傳遞到另一層來構建更復雜的模型。通過大量數(shù)據(jù)的訓練自動得到模型,不需
要人工設計特征提取環(huán)節(jié)。
2、深度學習算法試圖從數(shù)據(jù)中學習高級功能,這是深度學習的一個非常獨特的部
分。因此,減少了為每個問題開發(fā)新特征提取器的任務。適合用在難提取特征的圖像、
語音、自然語言領域。
(二)數(shù)據(jù)方面
1、機器學習需要的執(zhí)行時間遠少于深度學習
2、深度學習參數(shù)往往很龐大,需要通過大量數(shù)據(jù)的多次優(yōu)化來訓練參數(shù)。
(三)算法方面
1、?機器學習
代表:K-Means、決策樹、線性回歸等
2、?深度學習
代表:神經(jīng)網(wǎng)絡
(四)深度學習應用場景
1、?圖像識別
物體識別
車型識別
人臉檢測跟蹤
人臉身份認證
2、?自然語言處理技術
機器翻譯
聊天對話
3、?語音技術
語音識別
(五)常用的深度學習框架
1、?Caffe
2、Torch
3、?Theano
4、TensorFlow
5、?MXNet
6、?PaddlePaddle--百度飛漿
二、TensorFlow 框架 簡介
1、高度靈活(Deep Flexibility)
它不僅是可以用來做神經(jīng)網(wǎng)絡算法研究,也可以用來做普通的機器學習算
法,甚至是只要你能夠把計算表示成數(shù)據(jù)流圖,都可以用 TensorFlow。
2、語言多樣(Language Options)
TensorFlow 使用 C++實現(xiàn)的,然后用 Python 封裝。
3、設備支持
TensorFlow 可以運行在各種硬件上,同時根據(jù)計算的需要,合理將運算分配
到相應的設備,比如卷積就分配到 GPU 上,也允許在 CPU 和 GPU 上的計算分
布,甚至支持使用 gRPC 進行水平擴展。
4、Tensorboard 可視化
TensorBoard 是 TensorFlow 的一組 Web 應用,用來監(jiān)控 TensorFlow 運行過
程,或可視化 Computation Graph。
三、tensorflow數(shù)據(jù)流圖基礎知識點
1、什么是tensorflow數(shù)據(jù)流圖(Data Flow Graph):
官方的解釋為:數(shù)據(jù)流圖用“結點”(nodes)和“線”(edges)的有向圖來描述數(shù)學計算。“節(jié)點” 一般用來表示施加的數(shù)學操作,但也可以表示數(shù)據(jù)輸入(feed in)的起點/輸出(push out)的終點,或者是讀取/寫入持久變量(persistent variable)的終點?!熬€”表示“節(jié)點”之間的輸入/輸出關系。這些數(shù)據(jù)“線”可以輸運“size可動態(tài)調整”的多維數(shù)據(jù)數(shù)組,即“張量”(tensor)。張量從圖中流過的直觀圖像是這個工具取名為“Tensorflow”的原因。一旦輸入端的所有張量準備好,節(jié)點將被分配到各種計算設備完成異步并行地執(zhí)行運算。
2、tensorflow數(shù)據(jù)流圖如下所示
3、直接打印tensor相加之和,沒有得到相加的結果定義一個op之后得到一個tensor,tensor包含的是op
import tensorflow as tf import oscon_a = tf.constant(3) con_b = tf.constant(4)con_c = tf.add(con_a,con_b)print(con_c) #Tensor("Add:0", shape=(), dtype=int32)
返回的結果為Tensor("Add:0", shape=(), dtype=int32),而不是結果預期的數(shù)值
4、如果我們要得到運行結果,需要進行下面開啟會話執(zhí)行op的代碼
得到的結果為數(shù)值7。
5、會話是什么?
tensorflow底層是c++寫的,而我們寫的代碼是python代碼,所謂會話便是連接python和c++的地方。
6、關于op與tensor
op其實是操作,tensor張量的本質是n維數(shù)組。
7、tensor和session都有grap圖屬性,通過graph來獲取圖屬性,如果不特殊指定,都在默認的圖中執(zhí)行
import tensorflow as tfcon_a = tf.constant(3) con_b = tf.constant(4)con_c = tf.add(con_a,con_b) print(con_a.graph) print(con_b.graph) print(con_c.graph)g = tf.Graph() with tf.Session() as ss:print(ss.graph)''' <tensorflow.python.framework.ops.Graph object at 0x000000000239F390> <tensorflow.python.framework.ops.Graph object at 0x000000000239F390> <tensorflow.python.framework.ops.Graph object at 0x000000000239F390> <tensorflow.python.framework.ops.Graph object at 0x000000000239F390> '''
8、使用get_default_graph()獲取默認圖的地址
9、使用tf.Graph()創(chuàng)建自定義圖來運行數(shù)據(jù)
在這里我們要先創(chuàng)建圖,創(chuàng)建完成后在圖中定義tensor和op,之后使用with tf.Session(graph=g) as ss來開啟graph指定要運行的圖。
10、在上述代碼大體分成兩個階段
1.構建圖階段
2.執(zhí)行圖階段
11、關于結果標紅問題
代碼運行可能出現(xiàn)下面的結果:I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
這時候加入下面兩句話即可解決這個問題:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
?
?
總結
以上是生活随笔為你收集整理的深度学习tensorflow数据流图基础知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于线性回归的波士顿房价预测
- 下一篇: 人工智能tensorflow图的可视化