一般來說,跑乙個資料集需要以下步驟:1 把資料集轉換成leveldb格式。例子
教程中的get_mnist.sh 是得到2個mnist data檔案,乙個用於訓練,乙個用於測試,而後create_mnist.sh是利用caffe-master/build/examples/mnist/的convert_mnist_data.bin工具,將mnist date轉化為可用的leveldb 格式的檔案。並將新生成的2個檔案放於create_mnist.sh同目錄下。
2 寫網路配置檔案,train.prototxt和test.prototxt,還有solver.prototxt。
在lenet_solver.prototxt除去注釋的最前兩行即為
train_net: "lenet_train.prototxt"和test_net: "lenet_test.prototxt",另外再加上別的權重、閾值、gpu選擇等引數。在lenet_train.prototxt和lenet_test.prototxt中分別寫好網路結構和引數,兩者有很多相同部分。
在/examples/mnist/下的train_lenet.sh檔案中僅用兩句話,
tools=../../build/tools
glog_logtostderr=1 $tools/train_net.bin lenet_solver.prototxt
實現用train_net.bin 訓練網路的功能,我們所做的就是寫好需要的編譯檔案,或者修改,或者重寫。train_net.cpp中有些地方沒看太懂。
4 測試:類似訓練。
最後測試玩之後的模型作為二進位制protobuf儲存在lenet_iter_1000中。特徵儲存在master/example/_temp/features。softmax_loss層同時實現了softmax和多次logistic損失。
caffe
用到了第三方的數學函式庫(cublas
和mkl
)來做矩陣操作。caffe採用了向量化程式設計的方法,向量化程式設計是提高演算法速度的一種有效方法。為了提公升特定數值運算操作(如矩陣相乘、矩陣相加、矩陣-
向量乘法等)的速度,數值計算和平行計算的研究人員已經努力了幾十年。向量化程式設計的思想就是盡量使用這些被高度優化的數值運算操作來實現我們的學習演算法。
方法1:找到比cublas
更快的數學庫。
方法 2
:精通 gpu
程式設計,研究
cublas
等原始碼,提高資料的利用率。
頂 0 踩
人工智慧學習(1)MNIST入門
好久沒有用到tensorflow了,把機器學習和深度學習扔了有一年了,今天撿起來發現自己還是如此有興趣,決定從頭開始學習的過程中來重新撿起快遺忘的知識。首先開始 從mnist手寫識別開始,我是通過tensorflow中文社群的教程學習的,總結一下這個過程中遇到的問題。tensorflow已經出到2....
Keras入門實戰(1) MNIST手寫數字分類
目錄 1 首先我們載入keras中的資料集 2 網路架構 3 選擇編譯 compile引數 4 準備影象資料 5 訓練模型 6 測試資料 前面的部落格中已經介紹了如何在ubuntu下安裝keras深度學習框架。現在我們使用 keras 庫來學習手寫數字分類。我們這裡要解決的問題是 將手寫數字的灰度影...
DL學習筆記 1 執行CAFFE程式
按照大神的 中的教程安裝就好啦 然後我這裡簡要寫一點點自己安裝過程中的問題和簡要的安裝過程 1 安裝vs2012 2 安裝cuda6.5 3 按照教程配置各種變數等 其中系統目錄是指環境變數 系統變數 path 然後成功安裝之後就是閃退啦,用命令列執行會出現這幾條語句 如果不需要編譯 就是根據c 程...