構造文件名隊列(string_input_producer)不管任何形式的文件(csv,圖片,二進制)都會使用此API來構造文件名的隊列
tf.train.string_input_producer(string_tensor,shuffle=True)
string_tensor:含有文件名的1階張量
列表裡面含有各個文件的路徑+文件名
可直接傳入列表,會將其轉換成一階張量
num_epochs:
當讀入的量比較少時,且批處理隊列所需要的數據量比較大時,會重複的使用已經讀取過的文件
預設是過無限次的數據,直到滿足批處理隊列的大小為止,或者可限定讀取次數
shuffle:bool值,是否亂序讀取,預設為True
返回一個具有路徑+檔名的字符串隊列
將輸出字符串(例如:文件名)輸入到管道隊列
深度學習-tensorflow基礎-讀取數據-文件讀取流程
Introduction
在tensorflow中讀取文件有既定的流程
不同的文件格式(csv,jpeg,binary_file),在tensorflow中有不同讀取的API可以使用
深度學習-tensorflow基礎-讀取數據-異步讀取
Introduction當數據量很大時,入隊列操作從硬盤讀取數據,放入內存中,主線程須等待入隊列操作完成,才能進行訓練,此時會話裡可以運行多個線程,實現異步讀取
深度學習-tensorflow基礎-讀取數據-隊列與線程
Introduction在訓練model時最重要的就是數據,數據通常儲存於文件當中,早期在機器學習章程,我們使用pandas讀取數據但在tensorflow中,提供的各種優化的方式來讀取數據
深度學習-tensorflow基礎-自定義命令行參數
Introduction可在程序運行前在不修改程序的情況下,去實時修改一些我們定義好可改變的參數
類似於sys.argv的功能
tensorflow本身自帶一樣的功能
常應用在設定訓練次數或是學習率
流程:
首先定義有哪些參數需要在運行時指定
程序當中獲取定義命令行參數
替換要改變的參數
深度學習-tensorflow基礎-模型的保存與加載
Introduction
可保存目前為止訓練的結果,等待繼續訓練或使用
完整模型儲存的方式應該每訓練一段步數後就保存一些成果,例如權重、偏置等變量
模型的保存與加載預設也是保存及加載變量值
深度學習-tensorflow基礎-變量顯示
Introduction
目的是為了觀察模型的參數(權重、偏置),損失值等變量值的變化
觀察訓練情形如何,可以實時的於tensorboard中以圖形化的方式顯示
在大量資料且長時間的訓練能快速掌握目前訓練的情況
因此需添加變量在tensorboard中,觀察其變化狀況
收集變量
合併變量寫入事件文件中
Python-多任務執行-多線程(threading)
Preface:
要同時間執行兩個以上的函數,需用到多任務執行的模塊,例如threading模塊
線程(Thread)是實現多任務的一種手段
Introduction:
python的thread模塊是比較底層的模塊,python的threading模塊是對thread做了一些包裝,可以更加方便的被使用