1. 程式人生 > >第19章有錯誤嗎? matlab 神經網路43個案例分析

第19章有錯誤嗎? matlab 神經網路43個案例分析

按照要求配置了libsvm-3.1-[FarutoUltimate3.1],然後出現這個錯誤,求解救。

function Chapter_CharacterRecognitionUsingLibsvm
%% Matlab神經網路43個案例分析

% 基於SVM的手寫字型識別
% by 李洋(faruto)
% http://www.matlabsky.com
% Email:[email protected]
% http://weibo.com/faruto 
% http://blog.sina.com.cn/faruto
% 2013.01.01
%% A Little Clean Work
close all;
clear;
clc;
format compact;
%% 載入訓練資料

% 利用uigetfile函式互動式選取訓練樣本
[FileName,PathName,FilterIndex] = uigetfile( ...
    {'*.jpg';'*.bmp'},'請匯入訓練圖片','*.jpg','MultiSelect','on');
if ~FilterIndex
    return;
end
num_train = length(FileName);
TrainData = zeros(num_train,16*16);
TrainLabel = zeros(num_train,1);
for k = 1:num_train
    pic = imread([PathName,FileName{k}]);
    pic = pic_preprocess(pic);
    
    % 將標準化影象按列拉成一個向量並轉置,生成50*256的訓練樣本矩陣
    TrainData(k,:) = double(pic(:)');
    % 樣本標籤為樣本所對應的數字
    TrainLabel(k) = str2double(FileName{k}(4));
end
%% 建立支援向量機
% [bestCVaccuracy,bestc,bestg] = ...
%     SVMcgForClass(TrainLabel,TrainData,-8,8,-8,8,10,0.8,0.8,4.5)

% 設定GA相關引數
    ga_option.maxgen = 100;
    ga_option.sizepop = 20;
    ga_option.cbound = [0,100];
    ga_option.gbound = [0,100];
    ga_option.v = 10;
    ga_option.ggap = 0.9;
    [bestCVaccuracy,bestc,bestg] = ...
    gaSVMcgForClass(TrainLabel,TrainData,ga_option);
disp('列印選擇結果');
str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestCVaccuracy,bestc,bestg);
% 訓練
cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg)];
model = svmtrain(TrainLabel, TrainData, cmd);
% 在訓練集上檢視識別能力
preTrainLabel = svmpredict(TrainLabel, TrainData, model);
%% 載入測試樣本
[FileName,PathName,FilterIndex] = uigetfile( ...
    {'*.jpg';'*.bmp'},'請匯入測試圖片','*.bmp','MultiSelect','on');
if ~FilterIndex
    return;
end
num_train = length(FileName);
TestData = zeros(num_train,16*16);
TestLabel = zeros(num_train,1);
for k = 1:num_train
    pic = imread([PathName,FileName{k}]);
    pic = pic_preprocess(pic);
    
    TestData(k,:) = double(pic(:)');
    TestLabel(k) = str2double(FileName{k}(4));
end
%% 對測試樣本進行分類
preTestLabel = svmpredict(TestLabel, TestData, model);
assignin('base','TestLabel',TestLabel);
assignin('base','preTestLabel',preTestLabel);
TestLabel'
preTestLabel'
%% sub function of pre-processing pic
function pic_preprocess = pic_preprocess(pic)
% 圖片預處理子函式
% 影象反色處理
pic = 255-pic;
% 設定閾值,將反色影象轉成二值影象
pic = im2bw(pic,0.4);
% 查詢數字上所有畫素點的行標y和列標x
[y,x] = find(pic == 1);
% 擷取包含完整數字的最小區域
pic_preprocess = pic(min(y):max(y), min(x):max(x));
% 將擷取的包含完整數字的最小區域影象轉成16*16的標準化影象
pic_preprocess = imresize(pic_preprocess,[16,16]);
 

相關推薦

19錯誤? matlab 神經網路43案例分析

按照要求配置了libsvm-3.1-[FarutoUltimate3.1],然後出現這個錯誤,求解救。 function Chapter_CharacterRecognitionUsingLibsvm %% Matlab神經網路43個案例分析 % 基於SVM的手寫字型

MATLAB神經網路43案例分析

AI菌連結:http://pan.baidu.com/s/1o79BrPg 密碼:5cpx內容簡

matlab安裝軟體 Matlab視訊教程李大勇 MATLAB程式開發入門課程 MATLAB神經網路30案例分析及源程式

數學建模10大演算法詳解_程式原始碼打包 matlab安裝軟體  Matlab視訊教程李大勇 MATLAB程式開發入門課程 MATLAB神經網路30個案例分析及源程式 百度雲連結  http://download.csdn.net/download/wocao1226/10

MATLAB神經網路30案例分析》學習筆記

《MATLAB神經網路30個案例分析》學習記錄(待更新):1.      資料分類,分類——多個輸出,向量表示 [1 0 0] [0 1 0] [0 0 1]這樣2.      分線性系統建模,擬合引數

深度學習花書學習筆記 序列建模:迴圈神經網路

展開計算圖 就是將迴圈圖展開成展開圖而已。 迴圈神經網路   就是如上網路,將某一層不斷重複,輸出重新作為輸入的一部分。 雙向RNN 應用於上下文環境都影響結果的場景,如語音識別,文章翻譯等 基於編碼-解碼的序列到序列架構 可以將可變長度的輸入轉

【西瓜書 5】用例項理解神經網路前向傳播和反向傳播

感覺寫部落格編輯公式什麼的好麻煩~ 因此就把學習記錄用筆記圖片的形式展現啦>_< 首先先了解一下梯度下降(emmm 不知道為什麼當時就寫斜了,就當活動脖子了hhh): 然後下面是一個三層的神經網路,每個神經元內部可以看作有兩部分組成,比如對於h1來說,包含neth1和o

RTX——19 SVC 中斷方式調用用戶函數(後期補歷程)

相關 系統 call 指令 條件跳轉 mage fun sof 編程 本章節為大家講解如何采用 SVC 中斷方式調用用戶函數。 當用戶將 RTX 任務設置為工作在非特權級模式時,任務中是不允許訪問特權級寄存器的,這個時候使用 SVC 中斷,此問題就迎刃而解了。 SVC 功

圖論引導筆記 向圖

競賽 一個 頂點 圖論 euler 弱連通 第七章 出現 等於 7.1 強有向圖 定義: 1、弧/有向邊:有向圖的集合E中的元素,E中元素為不同頂點的有序對。 2、定向圖:(u,v)與(v,u)至多有一個是有向圖D的弧的有向圖。定向圖可以是給無向圖G的每一條邊定下一

apue 19 偽終端

fcntl 文件 分享 奇偶校驗 solaris file 訪問 tde for 偽終端是指對於一個應用程序而言,他看上去像一個終端,但事實上它並不是一個真正的終端。 進程打開偽終端設備,然後fork。子進程建立一個新的會話,打開一個相應的偽終端從設備。復制輸入、輸出和

Linux命令應用大詞典-19 文件系統管理

mount 系統參數 e2fs 格式 AD 查找 mkfs.ext3 log 禁用 19.1 mkfs:創建Linux文件系統 19.2 mke2fs:創建ext2、3、4文件系統 19.3 mkfs.ext4:創建ext4文件系統 19.4 mkfs.ext3:創建ex

19,運維自動化之系統安裝

imp hat 如果 發型 disco mini 設備 umount main 更多內容請點擊:Linux學習從入門到打死也不放棄,完全筆記整理(持續更新,求收藏,求點贊~~~~) http://blog.51cto.com/13683480/2095439第19章,運維自

19-使用Spring發送Email

pos resolve 上下文 這一 helper gte thymeleaf 復數 .com 1 配置Spring發送郵件 Spring Email抽象的核心是MailSender接口。顧名思義,MailSender的實現能夠通過連接Email服務器實現郵件發送的功能,

Django入門與實踐-19:主題回復(完結)

borde comm object created ade tro blank type temp http://127.0.0.1:8000/boards/1/topics/1/reply/ http://127.0.0.1:8000/boards/1/topics/1

CLR via C#學習筆記--參屬性

get 類型參數 第十章 自動 spa ... ring 歧義 訪問性 10.2 有參屬性 屬性的get訪問器不接受參數,因此稱為無參屬性。 C#還支持有參屬性,他的get訪問器方法接受一個或多個參數,set訪問器方法接收兩個或多個參數,C#稱之為索引器。 C#使用數組風格

【練習題】--返回值的函式(Think Python)

增量式開發(incremental development): 這個過程的核心如下: 一定要用一個能工作的程式來開始,每次逐漸新增一些細小增補。在任何時候遇到錯誤,都應該弄明白錯誤的位置。 用一些變數來儲存中間值,這樣你可以顯示一下這些值,來檢查一下。 程式一旦能

INSPIRED啟示錄 讀書筆記 - 19 用戶體驗設計與實現

高保真 設計軟件 開發階段 階段 工作 完成 軟件開發 用戶 一點 先定義用戶體驗再動手開發 在軟件開發過程中,有很多工作可以同時進行。比如,需求調研和產品設計(用戶體驗設計)、開發與測試 盡管如此,用戶體驗設計和軟件開發就不能同時進行,原因有五點 1、與軟件

時間觸發嵌入式系統設計模式 19 筆記 按鍵開關

時間觸發嵌入式系統設計模式 第19章 筆記 按鍵開關 E:\Nu_LB_Nuc140\Nu_LB_NUC140_BSP\SampleCode\Nu-LB-NUC140\Sched_LED_SWITCH\KEIL 程式碼: // // GPIO_LED : G

19 列舉型別

列舉型別 public enum Spiciness { /** * 具名值,列舉型別的例項,常量 * 按照常量書寫的慣例它們都用大寫字母表示 */ NOT, MID, MEDIUM, HOT, FLAMING } import org

Java程式設計思想(六)19-列舉型別

目錄: 19.4 values()的神祕之處   通過反編譯列舉類,values()是由編譯器新增的static()方法。編譯器將列舉類(enum)標記為final類,所以enum類無法被繼承。 19.5 實現而非繼承   所有的enum類都繼承自java.lan

19 用ETS和DETS儲存資料

可以用來搞笑儲存海量的Erlang資料,提供大型的鍵值查詢表,ETS常駐記憶體,DETS則常駐磁碟,ETS表查詢速度更快,而DETS執行時佔用的記憶體更小 1.表的型別 儲存的是元組,元組裡的某一個元素(預設是第一個)被稱為該表的鍵.通過鍵可以向表裡插入和提取元組.分為連個基本的表型別