?? trainnn.m
字號:
% Author: Scott Sanner% Email: ssanner@cs.stanford.edu% Course: CS223B, Winter% Desc: Trains a neural net given a training set with target values% and randomly selects training and validation data, training% either for the max number of networks, network convergence,% or increase in validation error. Returns network and% performance. % % [NET,PERF, ERR] = trainnn(NET,IMVECTOR,TVECTOR,percent_val,iter)function [NET,PERF, ERR] = trainnn(NET,IMVECTOR,TVECTOR,percent_val,iter)% Setup validation and test setsN_IMS = size(IMVECTOR,2);CHOICE = rand(1,N_IMS) > percent_val;V_TRAIN = find(CHOICE);V_VALID = find(1-CHOICE);IM_TRAIN_V = IMVECTOR(:,V_TRAIN);IM_TRAIN_R = TVECTOR (:,V_TRAIN);IM_VALID_V = IMVECTOR(:,V_VALID);IM_VALID_R = TVECTOR (:,V_VALID);fprintf(1,'Training set quantity: #%d\n', size(IM_TRAIN_V,2));fprintf(1,'Validation set quantity: #%d\n', size(IM_VALID_V,2));% Setup net parametersNET.trainParam.epochs = 1;NET.trainParam.goal = 0.0001;TRAIN_OUT = simnn(NET,IM_TRAIN_V);VALID_OUT = simnn(NET,IM_VALID_V);PERF = [];ERR = [];PERF = [PERF; 0, (1-(sum(abs(TRAIN_OUT-IM_TRAIN_R)./1.8)./(size(TRAIN_OUT,2)))), ... (1-(sum(abs(VALID_OUT-IM_VALID_R)./1.8)./(size(VALID_OUT,2))))];ERR = [ERR; 0, ((sum(abs(TRAIN_OUT-IM_TRAIN_R))./(size(TRAIN_OUT,2))).^2), ... ((sum(abs(VALID_OUT-IM_VALID_R))./(size(VALID_OUT,2))).^2)];% Train for specified number of iterationsfor i=1:iter, fprintf(1,'Starting iteration %d\n', i); drawnow; [NET, TR] = train(NET, IM_TRAIN_V, IM_TRAIN_R); TRAIN_OUT = simnn(NET,IM_TRAIN_V); VALID_OUT = simnn(NET,IM_VALID_V); %[TRAIN_OUT; IM_TRAIN_R] %[VALID_OUT; IM_VALID_R] PERF = [PERF; i, (1-(sum(abs(TRAIN_OUT-IM_TRAIN_R)./1.8)./(size(TRAIN_OUT,2)))), ... (1-(sum(abs(VALID_OUT-IM_VALID_R)./1.8)./(size(VALID_OUT,2))))]; ERR = [ERR; i, ((sum(abs(TRAIN_OUT-IM_TRAIN_R))./(size(TRAIN_OUT,2))).^2), ... ((sum(abs(VALID_OUT-IM_VALID_R))./(size(VALID_OUT,2))).^2)];end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -