1. 程式人生 > >caffe學習筆記(五)--使用自己的資料集第一次進行訓練

caffe學習筆記(五)--使用自己的資料集第一次進行訓練

接著上一篇博文:製作自己的資料集
在製作好我們自己的LMDB格式的資料集後,我們就可以依照前面mnist的例程來對LeNet模型進行訓練啦,有木有很激動(≧▽≦)/ (雖然現在對模型而是一片懵懂)
簡單的說下步驟:

  1. 從caffe root/exmples/mnist資料夾中複製過來我需要的solver.prototxt和train_test.prototxt檔案,將其重新命名為my_solver.prototxt my_train_test.prototxt檔案,並修改其中需要修改的引數
  2. 進行訓練

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代表一個打開的文件對象。