caffe學習筆記(五)--使用自己的資料集第一次進行訓練
接著上一篇博文:製作自己的資料集
在製作好我們自己的LMDB格式的資料集後,我們就可以依照前面mnist的例程來對LeNet模型進行訓練啦,有木有很激動(≧▽≦)/ (雖然現在對模型而是一片懵懂)
簡單的說下步驟:
- 從caffe root/exmples/mnist資料夾中複製過來我需要的solver.prototxt和train_test.prototxt檔案,將其重新命名為my_solver.prototxt my_train_test.prototxt檔案,並修改其中需要修改的引數
- 進行訓練
1 solver.prototxt和train_test.prototxt檔案,修改其中的引數
先看下train_test.prototxt檔案,這個檔案是LeNet的模型配置檔案,裡面有輸入層、卷積層、池化層和全連層的定義,在這裡我們只需要對輸入層中的兩個位置進行修改。
還有一個問題就是,在輸出的時候,由於LeNet是對10個字元進行輸出的,也就是10類,這裡我分的是3類,不知道不修改的有沒有影響,和群裡的同學交流也說碰到了這種情況,但是好像不影響。此處是個問題,還得繼續研究
name: "LeNet"
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
scale: 0.00390625
}
data_param {
source: "myfile/build_lmdb/train_lmdb" //需要修改路徑
batch_size: 64
backend: LMDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
scale: 0.00390625
}
data_param {
source: "myfile/build_lmdb/val_lmdb" //需要修改路徑
batch_size: 100
backend: LMDB
}
}
再看下solver.prototxt檔案,其中:
1. net的路徑需要修改為自己的
2. snapshot_prefix的路徑是生成的模型放在哪裡
3. solver_mode: CPU 選擇CPU模式
4. 其餘的就根據自己的需要調整引數
# The train/test net protocol buffer definition
net: "myfile/build_lmdb/my_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 2
# Carry out testing every 500 training iterations.
test_interval: 5
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 2
# The maximum number of iterations
max_iter: 80
# snapshot intermediate results
snapshot: 150
snapshot_prefix: "myfile/build_lmdb/"
# solver mode: CPU or GPU
solver_mode: CPU
使用下面的train_mynet.sh檔案來訓練LeNet模型,將其中的 –solver後面改成自己的路徑
#!/usr/bin/env sh
set -e
./build/tools/caffe train --solver=myfile/build_lmdb/my_solver.prototxt [email protected]
2 進行訓練
在Linux終端下輸入下面的程式碼進行訓練
CD caffe
./examples/mnist/train_mynet.sh
可以看到在40次的時候,accuracy就為1了,網路應該是訓練成功了,但是此時訓練的模型可能並不是最好的,因為還有過擬合,樣本小的影響等
接下來就是要對訓練好的模型,進行使用,下次接著實驗,先吃飯~
相關推薦
caffe學習筆記(五)--使用自己的資料集第一次進行訓練
接著上一篇博文:製作自己的資料集 在製作好我們自己的LMDB格式的資料集後,我們就可以依照前面mnist的例程來對LeNet模型進行訓練啦,有木有很激動(≧▽≦)/ (雖然現在對模型而是一片懵懂) 簡單的說下步驟: 從caffe root/exmples
PostgreSQL學習筆記(五):資料操作
1 資料操作 1.1 插入資料 insert into <tablename> values (a,b,c,d,...); insert into <tablename>(columnname1,columnname2,...) values(a,b,...)
TensorFlow學習筆記(五)—— MNIST —— 資料下載,讀取
MNIST資料下載 本教程的目標是展示如何下載用於手寫數字分類問題所要用到的(經典)MNIST資料集。 教程 檔案 本教程需要使用以下檔案: 檔案 目的 下載用於訓練和測試的MNIST資料集的原始碼 備註: input_data.py
Windows Caffe 學習筆記(三)在Caffe上訓練和測試自己的資料
本文是學習Caffe官方文件"ImageNet Tutorial"時做的,同樣由於是Windows版本的原因,很多shell指令碼不能直接使用,走了不少彎路,但是收穫也不少。比如:如何讓shell指令
caffe學習筆記(四)--製作自己的資料集train.txt和val.txt,生成LMDB檔案
在深度學習的實際應用中,我們經常用到的原始資料是圖片檔案,如jpg,png,tif等格式的,而且有可能圖片的大小還不一致。 我今天嘗試製作一個自己的訓練資料集,主要步驟為: 1.用MATLAB截圖得到訓練集的圖片 2.生成標籤檔案列表,即生成 train.
Caffe學習筆記(六)—— Windows下訓練自己的資料
本文主要介紹:Windows下,根據自己的資料訓練自己的網路模型。 1. 影象資料轉化為lmdb格式 comput_image_mean.bat,生成兩個mldb資料夾:mytrainldb 和 myvalldb; 2.計算訓練樣本均值 (1)編譯caffe-windo
React 學習筆記 (五)(獲取伺服器API介面資料:axios、fetchJSONP)
axios 1.安裝 axios模組 npm install axios --save 2.引用 哪裡使用引哪裡 import axios from 'axios' 3.使用 import React, { Component } from 'react';
大資料Hadoop學習筆記(五)
分散式部署 本地模式Local Mode 分散式Distribute Mode 偽分散式 一臺機器執行所有的守護程序 從節點DN和NM只有一個 完全分散式
《自己動手寫java虛擬機器》學習筆記(五)-----解析class檔案(go)
專案地址:https://github.com/gongxianshengjiadexiaohuihui 上一節,我們已經通過路徑找到了指定的class檔案,這一節,我們開始解析class檔案,我們知道class檔
資料探勘基礎導論學習筆記(五)
第五章 分類 其他分類 貝葉斯分類器 貝葉斯定理:把類的先驗知識和從資料中收集的新證據相結合的統計原理。 公式: P(Y|X)=P(X|Y)*P(Y)/P(X) X是屬性集,Y是類變數 把X和Y看成隨機變數,用P(Y|X)以概率的方式捕捉二者之間的關係,這個條件
Pytorch學習筆記(二)自己載入單通道圖片用作資料集訓練
作者:灰色橡皮擦 pytorch 在torchvision包裡面有很多的的打包好的資料集,例如minist,Imagenet-12,CIFAR10 和CIFAR100。在torchvision的dataset包裡面,用的時候直接呼叫就行了。具體的呼叫格
Caffe學習筆記(1):簡單的資料視覺化
caffe的底層是c++寫的,如果要進行資料視覺化,需要藉助其它的庫或者是介面,如opencv,python或者是matlab,python的環境需要自行配置,因為我使用的都是網管同志已經配置好的深度學習伺服器,所以不用管底層的一些配置問題,如果需要自行配置自己
tensorflow學習筆記(五):TensorFlow變數共享和資料讀取
這一節我們提及了三個內容:變數共享、執行緒和佇列和資料讀取,這些都是TensorFlow官方指導中的內容。會在程式中經常遇到所以放在一起進行敘述。前面都是再利用已有的資料進行tensorflow的學習,這一節我們要學習怎麼從檔案中讀取我們需要的各類資料。
《自己動手寫Java虛擬機器》學習筆記(五)指令集和直譯器
第五章 指令集和直譯器 本章基於第三章(解析.class檔案)和第四章(執行時資料區),編寫一個建議的直譯器。 5.1 位元組碼和指令集 每一個類或者介面都可以被Java編譯器編譯成為一個.class檔案,類或介面的方法資訊就放在.class檔案的method_info
Android學習筆記(五)——通過全域性變數傳遞資料
1、全域性物件是Activity之間傳遞資料的一種比較實用的方式,比如在JavaWeb中有四個作用域,這四個作用域從小到大分別是Page、Request、Session和Application,其中Application域在應用程式的任何地方都可以使用和訪問,除非是Web伺
數據結構學習筆記(五) 樹的創建和遍歷
一個 後序遍歷 for -1 堆棧 nor ext cnblogs 復制 創建(先序創建和根據先序和中序進行創建)和遍歷(先序遍歷、中序遍歷、後序遍歷、非遞歸堆棧遍歷、層次遍歷): package tree; public class XianCreateTree
最優化學習筆記(五)牛頓法及擬牛頓法
div size -a article fonts alt water src jsb 最優化學習筆記(五)牛頓法及擬牛頓法
javascript學習筆記(五):異常捕獲和事件處理
log 類型 按鈕 輸入 button lan yellow logs 代碼 異常捕獲 Try{ 發生異常的代碼塊 }catch(err){ 異常信息處理 } 1 <!DOCTYPE html> 2 <html> 3 <head
Spring 學習筆記(五)—— Bean之間的關系、作用域、自動裝配
mar byname pps etc 有時 sysman 對象實例 構造 encoding 繼承 Spring提供了配置信息的繼承機制,可以通過為<bean>元素指定parent值重用已有的<bean>元素的配置信息。 <?xml
Go語言學習筆記(五)文件操作
see 大小 unix rdo 筆記 不能 hid code lag 加 Golang學習 QQ群共同學習進步成家立業工作 ^-^ 群號:96933959 文件讀取 os.File 封裝了文件相關操作 type File File代表一個打開的文件對象。